]> git.uio.no Git - u/mrichter/AliRoot.git/blame - DPMJET/dpmjet3.0-5.f
Count number of diffractive collisions
[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
2102 IF ((IP.GT.1).AND.(MKCRON.GT.0)) THEN
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
3362 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
3363 & (ISTHKK(I).EQ.1001)) THEN
3364 CALL DT_MYTRAN(1,PHKK(1,I),PHKK(2,I),PHKK(3,I),
3365 & COD,SID,COF,SIF,PXCMS,PYCMS,PZCMS)
3366 PECMS = PHKK(4,I)
3367 CALL DT_DALTRA(BGE,BGX,BGY,BGZ,PXCMS,PYCMS,PZCMS,PECMS,
3368 & PTOT,PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I))
3369 ENDIF
3370 20 CONTINUE
3371 ELSE
3372 MODE = -1
3373 ENDIF
3374
3375 RETURN
3376 END
3377
3378*$ CREATE DT_REJUCO.FOR
3379*COPY DT_REJUCO
3380*
3381*===rejuco=============================================================*
3382*
3383 SUBROUTINE DT_REJUCO(MODE,IREJ)
3384
3385************************************************************************
3386* REJection of Unphysical COnfigurations *
3387* MODE = 1 rejection of particles with unphysically large energy *
3388* *
3389* This version dated 27.12.2006 is written by S. Roesler. *
3390************************************************************************
3391
3392 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3393 SAVE
3394
3395 PARAMETER ( LINP = 10 ,
3396 & LOUT = 6 ,
3397 & LDAT = 9 )
3398 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
3399 PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
3400
3401* maximum x_cms of final state particle
3402 PARAMETER (XCMSMX = 1.4D0)
3403
3404* event history
3405 PARAMETER (NMXHKK=200000)
3406 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3407 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3408 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3409* extended event history
3410 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3411 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3412 & IHIST(2,NMXHKK)
3413* Lorentz-parameters of the current interaction
3414 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
3415 & UMO,PPCM,EPROJ,PPROJ
3416
3417 IREJ = 0
3418
3419 IF (MODE.EQ.1) THEN
3420 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
3421 ECMHLF = UMO/2.0D0
3422 DO 10 I=NPOINT(4),NHKK
3423 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDHKK(I).NE.80000)) THEN
3424 XCMS = ABS(PHKK(4,I))/ECMHLF
3425 IF (XCMS.GT.XCMSMX) GOTO 9999
3426 ENDIF
3427 10 CONTINUE
3428 ENDIF
3429
3430 RETURN
3431 9999 CONTINUE
3432 IREJ = 1
3433 RETURN
3434 END
3435
3436*$ CREATE DT_EVENTB.FOR
3437*COPY DT_EVENTB
3438*
3439*===eventb=============================================================*
3440*
3441 SUBROUTINE DT_EVENTB(NCSY,IREJ)
3442
3443************************************************************************
3444* Treatment of nucleon-nucleon interactions with full two-component *
3445* Dual Parton Model. *
3446* NCSY number of nucleon-nucleon interactions *
3447* IREJ rejection flag *
3448* This version dated 14.01.2000 is written by S. Roesler *
3449************************************************************************
3450
3451 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3452 SAVE
3453 PARAMETER ( LINP = 10 ,
3454 & LOUT = 6 ,
3455 & LDAT = 9 )
3456 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
3457
3458* event history
3459 PARAMETER (NMXHKK=200000)
3460 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3461 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3462 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3463* extended event history
3464 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3465 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3466 & IHIST(2,NMXHKK)
3467*! uncomment this line for internal phojet-fragmentation
3468C #include "dtu_dtevtp.inc"
3469* particle properties (BAMJET index convention)
3470 CHARACTER*8 ANAME
3471 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
3472 & IICH(210),IIBAR(210),K1(210),K2(210)
3473* flags for input different options
3474 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
3475 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
3476 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
3477* rejection counter
3478 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
3479 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
3480 & IREXCI(3),IRDIFF(2),IRINC
3481* properties of interacting particles
3482 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
3483* properties of photon/lepton projectiles
3484 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
3485* various options for treatment of partons (DTUNUC 1.x)
3486* (chain recombination, Cronin,..)
3487 LOGICAL LCO2CR,LINTPT
3488 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
3489 & LCO2CR,LINTPT
3490* statistics
3491 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
3492 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
3493 & ICEVTG(8,0:30)
3494* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
3495 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
3496* Glauber formalism: collision properties
3497 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
3498 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
3499* flags for diffractive interactions (DTUNUC 1.x)
3500 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
3501* statistics: double-Pomeron exchange
3502 COMMON /DTFLG2/ INTFLG,IPOPO
3503* flags for particle decays
3504 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
3505 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
3506 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
3507* nucleon-nucleon event-generator
3508 CHARACTER*8 CMODEL
3509 LOGICAL LPHOIN
3510 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
3511C nucleon-nucleus / nucleus-nucleus interface to DPMJET
3512 INTEGER IDEQP,IDEQB,IHFLD,IHFLS
3513 DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
3514 COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
3515 & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
3516C model switches and parameters
3517 CHARACTER*8 MDLNA
3518 INTEGER ISWMDL,IPAMDL
3519 DOUBLE PRECISION PARMDL
3520 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
3521C initial state parton radiation (internal part)
3522 INTEGER MXISR3,MXISR4
3523 PARAMETER ( MXISR3 = 50, MXISR4 = 100 )
3524 INTEGER IFL1,IFL2,IBRA,IFANO,ISH,NACC
3525 DOUBLE PRECISION Q2SH,PT2SH,XPSH,ZPSH,THSH,SHAT
3526 COMMON /POINT6/ Q2SH(2,MXISR3),PT2SH(2,MXISR3),XPSH(2,MXISR3),
3527 & ZPSH(2,MXISR3),THSH(2,MXISR3),SHAT(MXISR3),
3528 & IFL1(2,MXISR3),IFL2(2,MXISR3),
3529 & IBRA(2,MXISR4),IFANO(2),ISH(2),NACC
3530C event debugging information
3531 INTEGER NMAXD
3532 PARAMETER (NMAXD=100)
3533 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
3534 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3535 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
3536 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3537C general process information
3538 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
3539 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
3540
3541 DIMENSION PP(4),PT(4),PTOT(4),PP1(4),PP2(4),PT1(4),PT2(4),
3542 & PPNN(4),PTNN(4),PTOTNN(4),PPSUB(4),PTSUB(4),
3543 & PPTCMS(4),PTTCMS(4),PPTMP(4),PTTMP(4),
3544 & KPRON(15),ISINGL(2000)
3545
3546* initial values for max. number of phojet scatterings and dtunuc chains
3547* to be fragmented with one pyexec call
3548 DATA MXPHFR,MXDTFR /10,100/
3549
3550 IREJ = 0
3551* pointer to first parton of the first chain in dtevt common
3552 NPOINT(3) = NHKK+1
3553* special flag for double-Pomeron statistics
3554 IPOPO = 1
3555* counter for low-mass (DTUNUC) interactions
3556 NDTUSC = 0
3557* counter for interactions treated by PHOJET
3558 NPHOSC = 0
3559
3560* scan interactions for single nucleon-nucleon interactions
3561* (this has to be checked here because Cronin modifies parton momenta)
3562 NC = NPOINT(2)
3563 IF (NCSY.GT.2000) STOP ' DT_EVENTB: NCSY > 2000 ! '
3564 DO 8 I=1,NCSY
3565 ISINGL(I) = 0
3566 MOP = JMOHKK(1,NC)
3567 MOT = JMOHKK(1,NC+1)
3568 DIFF1 = ABS(PHKK(4,MOP)-PHKK(4, NC)-PHKK(4,NC+2))
3569 DIFF2 = ABS(PHKK(4,MOT)-PHKK(4,NC+1)-PHKK(4,NC+3))
3570 IF ((DIFF1.LT.TINY10).AND.(DIFF2.LT.TINY10)) ISINGL(I) = 1
3571 NC = NC+4
3572 8 CONTINUE
3573
3574* multiple scattering of chain ends
3575 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
3576 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
3577
3578* switch to PHOJET-settings for JETSET parameter
3579 CALL DT_INITJS(1)
3580
3581* loop over nucleon-nucleon interaction
3582 NC = NPOINT(2)
3583 DO 2 I=1,NCSY
3584*
3585* pick up one nucleon-nucleon interaction from DTEVT1
3586* ppnn / ptnn - momenta of the interacting nucleons (cms)
3587* ptotnn - total momentum of the interacting nucleons (cms)
3588* pp1,2 / pt1,2 - momenta of the four partons
3589* pp / pt - total momenta of the proj / targ partons
3590* ptot - total momentum of the four partons
3591 MOP = JMOHKK(1,NC)
3592 MOT = JMOHKK(1,NC+1)
3593 DO 3 K=1,4
3594 PPNN(K) = PHKK(K,MOP)
3595 PTNN(K) = PHKK(K,MOT)
3596 PTOTNN(K) = PPNN(K)+PTNN(K)
3597 PP1(K) = PHKK(K,NC)
3598 PT1(K) = PHKK(K,NC+1)
3599 PP2(K) = PHKK(K,NC+2)
3600 PT2(K) = PHKK(K,NC+3)
3601 PP(K) = PP1(K)+PP2(K)
3602 PT(K) = PT1(K)+PT2(K)
3603 PTOT(K) = PP(K)+PT(K)
3604 3 CONTINUE
3605*
3606*-----------------------------------------------------------------------
3607* this is a complete nucleon-nucleon interaction
3608*
3609 IF (ISINGL(I).EQ.1) THEN
3610*
3611* initialize PHOJET-variables for remnant/valence-partons
3612 IHFLD(1,1) = 0
3613 IHFLD(1,2) = 0
3614 IHFLD(2,1) = 0
3615 IHFLD(2,2) = 0
3616 IHFLS(1) = 1
3617 IHFLS(2) = 1
3618* save current settings of PHOJET process and min. bias flags
3619 DO 9 K=1,11
3620 KPRON(K) = IPRON(K,1)
3621 9 CONTINUE
3622 ISWSAV = ISWMDL(2)
3623*
3624* check if forced sampling of diffractive interaction requested
3625 IF (ISINGD.LT.-1) THEN
3626 DO 90 K=1,11
3627 IPRON(K,1) = 0
3628 90 CONTINUE
3629 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-3)) IPRON(5,1) = 1
3630 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-4)) IPRON(6,1) = 1
3631 IF (ISINGD.EQ.-5) IPRON(4,1) = 1
3632 ENDIF
3633*
3634* for photons: a direct/anomalous interaction is not sampled
3635* in PHOJET but already in Glauber-formalism. Here we check if such
3636* an interaction is requested
3637 IF (IJPROJ.EQ.7) THEN
3638* first switch off direct interactions
3639 IPRON(8,1) = 0
3640* this is a direct interactions
3641 IF (IDIREC.EQ.1) THEN
3642 DO 12 K=1,11
3643 IPRON(K,1) = 0
3644 12 CONTINUE
3645 IPRON(8,1) = 1
3646* this is an anomalous interactions
3647* (iswmdl(2) = 0 only hard int. generated ( = 1 min. bias) )
3648 ELSEIF (IDIREC.EQ.2) THEN
3649 ISWMDL(2) = 0
3650 ENDIF
3651 ELSE
3652 IF (IDIREC.NE.0) STOP ' DT_EVENTB: IDIREC > 0 ! '
3653 ENDIF
3654*
3655* make sure that total momenta of partons, pp and pt, are on mass
3656* shell (Cronin may have srewed this up..)
3657 CALL DT_MASHEL(PP,PT,PHKK(5,MOP),PHKK(5,MOT),PPNN,PTNN,IR1)
3658 IF (IR1.NE.0) THEN
3659 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A)')
3660 & 'EVENTB: mass shell correction rejected'
3661 GOTO 9999
3662 ENDIF
3663*
3664* initialize the incoming particles in PHOJET
3665 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3666 CALL PHO_SETPAR(1,22,0,VIRT)
3667 ELSE
3668 CALL PHO_SETPAR(1,IDHKK(MOP),0,ZERO)
3669 ENDIF
3670 CALL PHO_SETPAR(2,IDHKK(MOT),0,ZERO)
3671*
3672* initialize rejection loop counter for anomalous processes
3673 IRJANO = 0
3674 800 CONTINUE
3675 IRJANO = IRJANO+1
3676*
3677* temporary fix for ifano problem
3678 IFANO(1) = 0
3679 IFANO(2) = 0
3680*
3681* generate complete hadron/nucleon/photon-nucleon event with PHOJET
3682 CALL PHO_EVENT(2,PPNN,PTNN,DUM,IREJ1)
3683*
3684* for photons: special consistency check for anomalous interactions
3685 IF (IJPROJ.EQ.7) THEN
3686 IF (IRJANO.LT.30) THEN
3687 IF (IFANO(1).NE.0) THEN
3688* here, an anomalous interaction was generated. Check if it
3689* was also requested. Otherwise reject this event.
3690 IF (IDIREC.EQ.0) GOTO 800
3691 ELSE
3692* here, an anomalous interaction was not generated. Check if it
3693* was requested in which case we need to reject this event.
3694 IF (IDIREC.EQ.2) GOTO 800
3695 ENDIF
3696 ELSE
3697 WRITE(LOUT,*) ' DT_EVENTB: Warning! IRJANO > 30 ',
3698 & IRJANO,IDIREC,NEVHKK
3699 ENDIF
3700 ENDIF
3701*
3702* copy back original settings of PHOJET process and min. bias flags
3703 DO 10 K=1,11
3704 IPRON(K,1) = KPRON(K)
3705 10 CONTINUE
3706 ISWMDL(2) = ISWSAV
3707*
3708* check if PHOJET has rejected this event
3709 IF (IREJ1.NE.0) THEN
3710C IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3711 WRITE(LOUT,'(1X,A,I4)')
3712 & 'EVENTB: chain system rejected',IDIREC
3713 CALL PHO_PREVNT(0)
3714 GOTO 9999
3715 ENDIF
3716*
3717* copy partons and strings from PHOJET common back into DTEVT for
3718* external fragmentation
3719 MO1 = NC
3720 MO2 = NC+3
3721*! uncomment this line for internal phojet-fragmentation
3722C CALL DT_GETFSP(MO1,MO2,PPNN,PTNN,-1)
3723 NPHOSC = NPHOSC+1
3724 CALL DT_GETPJE(MO1,MO2,PPNN,PTNN,-1,NPHOSC,IREJ1)
3725 IF (IREJ1.NE.0) THEN
3726 IF (IOULEV(1).GT.0)
3727 & WRITE(LOUT,'(1X,A,I4)') 'EVENTB: chain system rejected 1'
3728 GOTO 9999
3729 ENDIF
3730*
3731* update statistics counter
3732 ICEVTG(IDCH(NC),29) = ICEVTG(IDCH(NC),29)+1
3733*
3734*-----------------------------------------------------------------------
3735* this interaction involves "remnants"
3736*
3737 ELSE
3738*
3739* total mass of this system
3740 PPTOT = SQRT(PTOT(1)**2+PTOT(2)**2+PTOT(3)**2)
3741 AMTOT2 = (PTOT(4)-PPTOT)*(PTOT(4)+PPTOT)
3742 IF (AMTOT2.LT.ZERO) THEN
3743 AMTOT = ZERO
3744 ELSE
3745 AMTOT = SQRT(AMTOT2)
3746 ENDIF
3747*
3748* systems with masses larger than elojet are treated with PHOJET
3749 IF (AMTOT.GT.ELOJET) THEN
3750*
3751* initialize PHOJET-variables for remnant/valence-partons
3752* projectile parton flavors and valence flag
3753 IHFLD(1,1) = IDHKK(NC)
3754 IHFLD(1,2) = IDHKK(NC+2)
3755 IHFLS(1) = 0
3756 IF ((IDCH(NC).EQ.6).OR.(IDCH(NC).EQ.7)
3757 & .OR.(IDCH(NC).EQ.8)) IHFLS(1) = 1
3758* target parton flavors and valence flag
3759 IHFLD(2,1) = IDHKK(NC+1)
3760 IHFLD(2,2) = IDHKK(NC+3)
3761 IHFLS(2) = 0
3762 IF ((IDCH(NC).EQ.4).OR.(IDCH(NC).EQ.5)
3763 & .OR.(IDCH(NC).EQ.8)) IHFLS(2) = 1
3764* flag signalizing PHOJET how to treat the remnant:
3765* iremn = -1 sea-quark remnant: PHOJET takes flavors from ihfld
3766* iremn > -1 valence remnant: PHOJET assumes flavors according
3767* to mother particle
3768 IREMN1 = IHFLS(1)-1
3769 IREMN2 = IHFLS(2)-1
3770*
3771* initialize the incoming particles in PHOJET
3772 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3773 CALL PHO_SETPAR(1,22,IREMN1,VIRT)
3774 ELSE
3775 CALL PHO_SETPAR(1,IDHKK(MOP),IREMN1,ZERO)
3776 ENDIF
3777 CALL PHO_SETPAR(2,IDHKK(MOT),IREMN2,ZERO)
3778*
3779* calculate Lorentz parameter of the nucleon-nucleon cm-system
3780 PPTOTN = SQRT(PTOTNN(1)**2+PTOTNN(2)**2+PTOTNN(3)**2)
3781 AMNN = SQRT( (PTOTNN(4)-PPTOTN)*(PTOTNN(4)+PPTOTN) )
3782 BGX = PTOTNN(1)/AMNN
3783 BGY = PTOTNN(2)/AMNN
3784 BGZ = PTOTNN(3)/AMNN
3785 GAM = PTOTNN(4)/AMNN
3786* transform interacting nucleons into nucleon-nucleon cm-system
3787 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3788 & PPNN(1),PPNN(2),PPNN(3),PPNN(4),PPCMS,
3789 & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4))
3790 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3791 & PTNN(1),PTNN(2),PTNN(3),PTNN(4),PTCMS,
3792 & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4))
3793* transform (total) momenta of the proj and targ partons into
3794* nucleon-nucleon cm-system
3795 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3796 & PP(1),PP(2),PP(3),PP(4),
3797 & PPTSUB,PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4))
3798 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3799 & PT(1),PT(2),PT(3),PT(4),
3800 & PTTSUB,PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4))
3801* energy fractions of the proj and targ partons
3802 XPSUB = MIN(PPSUB(4)/PPTCMS(4),ONE)
3803 XTSUB = MIN(PTSUB(4)/PTTCMS(4),ONE)
3804***
3805* testprint
3806c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3807c & (PPTCMS(2)+PTTCMS(2))**2 +
3808c & (PPTCMS(3)+PTTCMS(3))**2 )
3809c EOLDCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3810c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3811c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3812c & (PPSUB(2)+PTSUB(2))**2 +
3813c & (PPSUB(3)+PTSUB(3))**2 )
3814c EOLDSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3815c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3816***
3817*
3818* save current settings of PHOJET process and min. bias flags
3819 DO 7 K=1,11
3820 KPRON(K) = IPRON(K,1)
3821 7 CONTINUE
3822* disallow direct photon int. (does not make sense here anyway)
3823 IPRON(8,1) = 0
3824* disallow double pomeron processes (due to technical problems
3825* in PHOJET, needs to be solved sometime)
3826 IPRON(4,1) = 0
3827* disallow diffraction for sea-diquarks
3828 IF ((IABS(IHFLD(1,1)).GT.1100).AND.
3829 & (IABS(IHFLD(1,2)).GT.1100)) THEN
3830 IPRON(3,1) = 0
3831 IPRON(6,1) = 0
3832 ENDIF
3833 IF ((IABS(IHFLD(2,1)).GT.1100).AND.
3834 & (IABS(IHFLD(2,2)).GT.1100)) THEN
3835 IPRON(3,1) = 0
3836 IPRON(5,1) = 0
3837 ENDIF
3838*
3839* we need massless partons: transform them on mass shell
3840 XMP = ZERO
3841 XMT = ZERO
3842 DO 6 K=1,4
3843 PPTMP(K) = PPSUB(K)
3844 PTTMP(K) = PTSUB(K)
3845 6 CONTINUE
3846 CALL DT_MASHEL(PPTMP,PTTMP,XMP,XMT,PPSUB,PTSUB,IREJ1)
3847 PPSUTO = SQRT(PPSUB(1)**2+PPSUB(2)**2+PPSUB(3)**2)
3848 PTSUTO = SQRT(PTSUB(1)**2+PTSUB(2)**2+PTSUB(3)**2)
3849 PSUTOT = SQRT((PPSUB(1)+PTSUB(1))**2+
3850 & (PPSUB(2)+PTSUB(2))**2+(PPSUB(3)+PTSUB(3))**2)
3851* total energy of the subsysten after mass transformation
3852* (should be the same as before..)
3853 SECM = SQRT( (PPSUB(4)+PTSUB(4)-PSUTOT)*
3854 & (PPSUB(4)+PTSUB(4)+PSUTOT) )
3855*
3856* after mass shell transformation the x_sub - relation has to be
3857* corrected. We therefore create "pseudo-momenta" of mother-nucleons.
3858*
3859* The old version was to scale based on the original x_sub and the
3860* 4-momenta of the subsystem. At very high energy this could lead to
3861* "pseudo-cm energies" of the parent system considerably exceeding
3862* the true cm energy. Now we keep the true cm energy and calculate
3863* new x_sub instead.
3864C old version PPTCMS(4) = PPSUB(4)/XPSUB
3865 PPTCMS(4) = MAX(PPTCMS(4),PPSUB(4))
3866 XPSUB = PPSUB(4)/PPTCMS(4)
3867 IF (IJPROJ.EQ.7) THEN
3868 AMP2 = PHKK(5,MOT)**2
3869 PTOT1 = SQRT(PPTCMS(4)**2-AMP2)
3870 ELSE
3871*???????
3872 PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOP))
3873 & *(PPTCMS(4)+PHKK(5,MOP)))
3874C PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOT))
3875C & *(PPTCMS(4)+PHKK(5,MOT)))
3876 ENDIF
3877C old version PTTCMS(4) = PTSUB(4)/XTSUB
3878 PTTCMS(4) = MAX(PTTCMS(4),PTSUB(4))
3879 XTSUB = PTSUB(4)/PTTCMS(4)
3880 PTOT2 = SQRT((PTTCMS(4)-PHKK(5,MOT))
3881 & *(PTTCMS(4)+PHKK(5,MOT)))
3882 DO 4 K=1,3
3883 PPTCMS(K) = PTOT1*PPSUB(K)/PPSUTO
3884 PTTCMS(K) = PTOT2*PTSUB(K)/PTSUTO
3885 4 CONTINUE
3886***
3887* testprint
3888*
3889* ppnn / ptnn - momenta of the int. nucleons (cms, negl. Fermi)
3890* ptotnn - total momentum of the int. nucleons (cms, negl. Fermi)
3891* pptcms/ pttcms - momenta of the interacting nucleons (cms)
3892* pp1,2 / pt1,2 - momenta of the four partons
3893*
3894* pp / pt - total momenta of the pr/ta partons (cms, negl. Fermi)
3895* ptot - total momentum of the four partons (cms, negl. Fermi)
3896* ppsub / ptsub - total momenta of the proj / targ partons (cms)
3897*
3898c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3899c & (PPTCMS(2)+PTTCMS(2))**2 +
3900c & (PPTCMS(3)+PTTCMS(3))**2 )
3901c ENEWCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3902c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3903c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3904c & (PPSUB(2)+PTSUB(2))**2 +
3905c & (PPSUB(3)+PTSUB(3))**2 )
3906c ENEWSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3907c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3908c IF (ENEWCM/EOLDCM.GT.1.1D0) THEN
3909c WRITE(*,*) ' EOLDCM, ENEWCM : ',EOLDCM,ENEWCM
3910c WRITE(*,*) ' EOLDSU, ENEWSU : ',EOLDSU,ENEWSU
3911c WRITE(*,*) ' XPSUB, XTSUB : ',XPSUB,XTSUB
3912c ENDIF
3913c BBGX = (PPTCMS(1)+PTTCMS(1))/ENEWCM
3914c BBGY = (PPTCMS(2)+PTTCMS(2))/ENEWCM
3915c BBGZ = (PPTCMS(3)+PTTCMS(3))/ENEWCM
3916c BGAM = (PPTCMS(4)+PTTCMS(4))/ENEWCM
3917* transform interacting nucleons into nucleon-nucleon cm-system
3918c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3919c & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4),PPTOT,
3920c & PPNEW1,PPNEW2,PPNEW3,PPNEW4)
3921c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3922c & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4),PTTOT,
3923c & PTNEW1,PTNEW2,PTNEW3,PTNEW4)
3924c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3925c & PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4),PPTOT,
3926c & PPSUB1,PPSUB2,PPSUB3,PPSUB4)
3927c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3928c & PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4),PTTOT,
3929c & PTSUB1,PTSUB2,PTSUB3,PTSUB4)
3930c PTSTCM = SQRT( (PPNEW1+PTNEW1)**2 +
3931c & (PPNEW2+PTNEW2)**2 +
3932c & (PPNEW3+PTNEW3)**2 )
3933c ETSTCM = SQRT( (PPNEW4+PTNEW4-PTSTCM) *
3934c & (PPNEW4+PTNEW4+PTSTCM) )
3935c PTSTSU = SQRT( (PPSUB1+PTSUB1)**2 +
3936c & (PPSUB2+PTSUB2)**2 +
3937c & (PPSUB3+PTSUB3)**2 )
3938c ETSTSU = SQRT( (PPSUB4+PTSUB4-PTSTSU) *
3939c & (PPSUB4+PTSUB4+PTSTSU) )
3940C WRITE(*,*) ' mother cmE :'
3941C WRITE(*,*) ETSTCM,ENEWCM
3942C WRITE(*,*) ' subsystem cmE :'
3943C WRITE(*,*) ETSTSU,ENEWSU
3944C WRITE(*,*) ' projectile mother :'
3945C WRITE(*,*) PPNEW1,PPNEW2,PPNEW3,PPNEW4
3946C WRITE(*,*) ' target mother :'
3947C WRITE(*,*) PTNEW1,PTNEW2,PTNEW3,PTNEW4
3948C WRITE(*,*) ' projectile subsystem:'
3949C WRITE(*,*) PPSUB1,PPSUB2,PPSUB3,PPSUB4
3950C WRITE(*,*) ' target subsystem:'
3951C WRITE(*,*) PTSUB1,PTSUB2,PTSUB3,PTSUB4
3952C WRITE(*,*) ' projectile subsystem should be:'
3953C WRITE(*,*) ZERO,ZERO,XPSUB*ETSTCM/2.0D0,
3954C & XPSUB*ETSTCM/2.0D0
3955C WRITE(*,*) ' target subsystem should be:'
3956C WRITE(*,*) ZERO,ZERO,-XTSUB*ETSTCM/2.0D0,
3957C & XTSUB*ETSTCM/2.0D0
3958C WRITE(*,*) ' subsystem cmE should be: '
3959C WRITE(*,*) SQRT(XPSUB*XTSUB)*ETSTCM,XPSUB,XTSUB
3960***
3961*
3962* generate complete remnant - nucleon/remnant event with PHOJET
3963 CALL PHO_EVENT(3,PPTCMS,PTTCMS,DUM,IREJ1)
3964*
3965* copy back original settings of PHOJET process flags
3966 DO 11 K=1,11
3967 IPRON(K,1) = KPRON(K)
3968 11 CONTINUE
3969*
3970* check if PHOJET has rejected this event
3971 IF (IREJ1.NE.0) THEN
3972 IF (IOULEV(1).GT.0)
3973 & WRITE(LOUT,'(1X,A)') 'EVENTB: chain system rejected'
3974 WRITE(LOUT,*)
3975 & 'XPSUB,XTSUB,SECM ',XPSUB,XTSUB,SECM,AMTOT
3976 CALL PHO_PREVNT(0)
3977 GOTO 9999
3978 ENDIF
3979*
3980* copy partons and strings from PHOJET common back into DTEVT for
3981* external fragmentation
3982 MO1 = NC
3983 MO2 = NC+3
3984*! uncomment this line for internal phojet-fragmentation
3985C CALL DT_GETFSP(MO1,MO2,PP,PT,1)
3986 NPHOSC = NPHOSC+1
3987 CALL DT_GETPJE(MO1,MO2,PP,PT,1,NPHOSC,IREJ1)
3988 IF (IREJ1.NE.0) THEN
3989 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3990 & 'EVENTB: chain system rejected 2'
3991 GOTO 9999
3992 ENDIF
3993*
3994* update statistics counter
3995 ICEVTG(IDCH(NC),2) = ICEVTG(IDCH(NC),2)+1
3996*
3997*-----------------------------------------------------------------------
3998* two-chain approx. for smaller systems
3999*
4000 ELSE
4001*
4002 NDTUSC = NDTUSC+1
4003* special flag for double-Pomeron statistics
4004 IPOPO = 0
4005*
4006* pick up flavors at the ends of the two chains
4007 IFP1 = IDHKK(NC)
4008 IFT1 = IDHKK(NC+1)
4009 IFP2 = IDHKK(NC+2)
4010 IFT2 = IDHKK(NC+3)
4011* ..and the indices of the mothers
4012 MOP1 = NC
4013 MOT1 = NC+1
4014 MOP2 = NC+2
4015 MOT2 = NC+3
4016 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
4017 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
4018*
4019* check if this chain system was rejected
4020 IF (IREJ1.GT.0) THEN
4021 IF (IOULEV(1).GT.0) THEN
4022 WRITE(LOUT,*) 'rejected 1 in EVENTB'
4023 WRITE(LOUT,'(1X,4(I6,4E12.3,/),E12.3)')
4024 & IFP1,PP1,IFT1,PT1,IFP2,PP2,IFT2,PT2,AMTOT
4025 ENDIF
4026 IRHHA = IRHHA+1
4027 GOTO 9999
4028 ENDIF
4029* the following lines are for sea-sea chains rejected in GETCSY
4030 IF (IREJ1.EQ.-1) NDTUSC = NDTUSC-1
4031 ICEVTG(IDCH(NC),1) = ICEVTG(IDCH(NC),1)+1
4032 ENDIF
4033*
4034 ENDIF
4035*
4036* update statistics counter
4037 ICEVTG(IDCH(NC),0) = ICEVTG(IDCH(NC),0)+1
4038*
4039 NC = NC+4
4040*
4041 2 CONTINUE
4042*
4043*-----------------------------------------------------------------------
4044* treatment of low-mass chains (if there are any)
4045*
4046 IF (NDTUSC.GT.0) THEN
4047*
4048* correct chains of very low masses for possible resonances
4049 IF (IRESCO.EQ.1) THEN
4050 CALL DT_EVTRES(IREJ1)
4051 IF (IREJ1.GT.0) THEN
4052 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2a in EVENTB'
4053 IRRES(1) = IRRES(1)+1
4054 GOTO 9999
4055 ENDIF
4056 ENDIF
4057* fragmentation of low-mass chains
4058*! uncomment this line for internal phojet-fragmentation
4059* (of course it will still be fragmented by DPMJET-routines but it
4060* has to be done here instead of further below)
4061C CALL DT_EVTFRA(IREJ1)
4062C IF (IREJ1.GT.0) THEN
4063C IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2b in EVENTB'
4064C IRFRAG = IRFRAG+1
4065C GOTO 9999
4066C ENDIF
4067 ELSE
4068*! uncomment this line for internal phojet-fragmentation
4069C NPOINT(4) = NHKK+1
4070 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
4071 ENDIF
4072*
4073*-----------------------------------------------------------------------
4074* new di-quark breaking mechanisms
4075*
4076 MXLEFT = 2
4077 CALL DT_CHASTA(0)
4078 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
4079 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
4080 CALL DT_DIQBRK
4081 MXLEFT = 4
4082 ENDIF
4083*
4084*-----------------------------------------------------------------------
4085* hadronize this event
4086*
4087* hadronize PHOJET chain systems
4088 NPYMAX = 0
4089 NPJE = NPHOSC/MXPHFR
4090 IF (MXPHFR.LT.MXLEFT) MXLEFT = 2
4091 IF (NPJE.GT.1) THEN
4092 NLEFT = NPHOSC-NPJE*MXPHFR
4093 DO 20 JFRG=1,NPJE
4094 NFRG = JFRG*MXPHFR
4095 IF ((JFRG.EQ.NPJE).AND.(NLEFT.LE.MXLEFT)) THEN
4096 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4097 IF (IREJ1.GT.0) GOTO 22
4098 NLEFT = 0
4099 ELSE
4100 CALL DT_EVTFRG(1,NFRG,NPYMEM,IREJ1)
4101 IF (IREJ1.GT.0) GOTO 22
4102 ENDIF
4103 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4104 20 CONTINUE
4105 IF (NLEFT.GT.0) THEN
4106 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4107 IF (IREJ1.GT.0) GOTO 22
4108 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4109 ENDIF
4110 ELSE
4111 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4112 IF (IREJ1.GT.0) GOTO 22
4113 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4114 ENDIF
4115*
4116* check max. filling level of jetset common and
4117* reduce mxphfr if necessary
4118 IF (NPYMAX.GT.3000) THEN
4119 IF (NPYMAX.GT.3500) THEN
4120 MXPHFR = MAX(1,MXPHFR-2)
4121 ELSE
4122 MXPHFR = MAX(1,MXPHFR-1)
4123 ENDIF
4124C WRITE(LOUT,*) ' EVENTB: Mxphfr reduced to ',MXPHFR
4125 ENDIF
4126*
4127* hadronize DTUNUC chain systems
4128 23 CONTINUE
4129 IBACK = MXDTFR
4130 CALL DT_EVTFRG(2,IBACK,NPYMEM,IREJ2)
4131 IF (IREJ2.GT.0) GOTO 22
4132*
4133* check max. filling level of jetset common and
4134* reduce mxdtfr if necessary
4135 IF (NPYMEM.GT.3000) THEN
4136 IF (NPYMEM.GT.3500) THEN
4137 MXDTFR = MAX(1,MXDTFR-20)
4138 ELSE
4139 MXDTFR = MAX(1,MXDTFR-10)
4140 ENDIF
4141C WRITE(LOUT,*) ' EVENTB: Mxdtfr reduced to ',MXDTFR
4142 ENDIF
4143*
4144 IF (IBACK.EQ.-1) GOTO 23
4145*
4146 22 CONTINUE
4147C CALL DT_EVTFRG(1,IREJ1)
4148C CALL DT_EVTFRG(2,IREJ2)
4149 IF ((IREJ1.GT.0).OR.(IREJ2.GT.0)) THEN
4150 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTB'
4151 IRFRAG = IRFRAG+1
4152 GOTO 9999
4153 ENDIF
4154*
4155* get final state particles from /DTEVTP/
4156*! uncomment this line for internal phojet-fragmentation
4157C CALL DT_GETFSP(IDUM,IDUM,PP,PT,2)
4158
4159 IF (IJPROJ.NE.7)
4160 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,88,IREJ3)
4161C IF (IREJ3.NE.0) GOTO 9999
4162
4163 RETURN
4164
4165 9999 CONTINUE
4166 IREVT = IREVT+1
4167 IREJ = 1
4168 RETURN
4169 END
4170
4171*$ CREATE DT_GETPJE.FOR
4172*COPY DT_GETPJE
4173*
4174*===getpje=============================================================*
4175*
4176 SUBROUTINE DT_GETPJE(MO1,MO2,PP,PT,MODE,IPJE,IREJ)
4177
4178************************************************************************
4179* This subroutine copies PHOJET partons and strings from POEVT1 into *
4180* DTEVT1. *
4181* MO1,MO2 indices of first and last mother-parton in DTEVT1 *
4182* PP,PT 4-momenta of projectile/target being handled by *
4183* PHOJET *
4184* This version dated 11.12.99 is written by S. Roesler *
4185************************************************************************
4186
4187 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4188 SAVE
4189 PARAMETER ( LINP = 10 ,
4190 & LOUT = 6 ,
4191 & LDAT = 9 )
4192 PARAMETER (TINY10=1.0D-10,TINY1=1.0D-1,
4193 & ZERO=0.0D0,ONE=1.0D0,OHALF=0.5D0)
4194
4195 LOGICAL LFLIP
4196
4197* event history
4198 PARAMETER (NMXHKK=200000)
4199 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4200 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4201 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4202* extended event history
4203 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4204 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4205 & IHIST(2,NMXHKK)
4206* Lorentz-parameters of the current interaction
4207 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4208 & UMO,PPCM,EPROJ,PPROJ
4209* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
4210 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
4211* flags for input different options
4212 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4213 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4214 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4215* statistics: double-Pomeron exchange
4216 COMMON /DTFLG2/ INTFLG,IPOPO
4217* statistics
4218 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
4219 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
4220 & ICEVTG(8,0:30)
4221* rejection counter
4222 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
4223 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
4224 & IREXCI(3),IRDIFF(2),IRINC
4225C standard particle data interface
4226 INTEGER NMXHEP
4227 PARAMETER (NMXHEP=4000)
4228 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
4229 DOUBLE PRECISION PHEP,VHEP
4230 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
4231 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
09b429a4 4232 & VHEP(4,NMXHEP), NSD1, NSD2, NDD
9aaba0d6 4233C extension to standard particle data interface (PHOJET specific)
4234 INTEGER IMPART,IPHIST,ICOLOR
4235 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
4236C color string configurations including collapsed strings and hadrons
4237 INTEGER MSTR
4238 PARAMETER (MSTR=500)
4239 INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
4240 COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
4241 & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
4242 & NNCH(MSTR),IBHAD(MSTR),ISTR
4243C general process information
4244 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4245 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4246C model switches and parameters
4247 CHARACTER*8 MDLNA
4248 INTEGER ISWMDL,IPAMDL
4249 DOUBLE PRECISION PARMDL
4250 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4251C event debugging information
4252 INTEGER NMAXD
4253 PARAMETER (NMAXD=100)
4254 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
4255 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4256 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
4257 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4258
4259 DIMENSION PP(4),PT(4)
4260 DATA MAXLOP /10000/
4261
4262 INHKK = NHKK
4263 LFLIP = .TRUE.
4264 1 CONTINUE
4265 NPVAL = 0
4266 NTVAL = 0
4267 IREJ = 0
4268
4269* store initial momenta for energy-momentum conservation check
4270 IF (LEMCCK) THEN
4271 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM1,IDUM2)
4272 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM1,IDUM2)
4273 ENDIF
4274* copy partons and strings from POEVT1 into DTEVT1
4275 DO 11 I=1,ISTR
4276C IF ((NCODE(I).EQ.-99).AND.(IPAMDL(17).EQ.0)) THEN
4277 IF (NCODE(I).EQ.-99) THEN
4278 IDXSTG = NPOS(1,I)
4279 IDSTG = IDHEP(IDXSTG)
4280 PX = PHEP(1,IDXSTG)
4281 PY = PHEP(2,IDXSTG)
4282 PZ = PHEP(3,IDXSTG)
4283 PE = PHEP(4,IDXSTG)
4284 IF (MODE.LT.0) THEN
4285 ISTAT = 70000+IPJE
4286 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PX,PY,PZ,PE,
4287 & 11,IDSTG,0)
4288 IF (LEMCCK) THEN
4289 PX = -PX
4290 PY = -PY
4291 PZ = -PZ
4292 PE = -PE
4293 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4294 ENDIF
4295 ELSE
4296 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4297 & PPX,PPY,PPZ,PPE)
4298 ISTAT = 70000+IPJE
4299 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PPX,PPY,PPZ,PPE,
4300 & 11,IDSTG,0)
4301 IF (LEMCCK) THEN
4302 PX = -PPX
4303 PY = -PPY
4304 PZ = -PPZ
4305 PE = -PPE
4306 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4307 ENDIF
4308 ENDIF
4309 NOBAM(NHKK) = 0
4310 IHIST(1,NHKK) = IPHIST(1,IDXSTG)
4311 IHIST(2,NHKK) = 0
4312 ELSEIF (NCODE(I).GE.0) THEN
4313* indices of partons and string in POEVT1
4314 IDX1 = ABS(JMOHEP(1,NPOS(1,I)))
4315 IDX2 = ABS(JMOHEP(2,NPOS(1,I)))
4316 IF ((IDX1.GT.IDX2).OR.(JMOHEP(2,NPOS(1,I)).GT.0)) THEN
4317 WRITE(LOUT,*) ' GETPJE: IDX1.GT.IDX2 ',IDX1,IDX2,
4318 & ' or JMOHEP(2,NPOS(1,I)).GT.0 ',JMOHEP(2,NPOS(1,I)),' ! '
4319 STOP ' GETPJE 1'
4320 ENDIF
4321 IDXSTG = NPOS(1,I)
4322* find "mother" string of the string
4323 IDXMS1 = ABS(JMOHEP(1,IDX1))
4324 IDXMS2 = ABS(JMOHEP(1,IDX2))
4325 IF (IDXMS1.NE.IDXMS2) THEN
4326 IDXMS1 = IDXSTG
4327 IDXMS2 = IDXSTG
4328C STOP ' GETPJE: IDXMS1.NE.IDXMS2 !'
4329 ENDIF
4330* search POEVT1 for the original hadron of the parton
4331 ILOOP = 0
4332 IPOM1 = 0
4333 14 CONTINUE
4334 ILOOP = ILOOP+1
4335 IF (IDHEP(IDXMS1).EQ.990) IPOM1 = 1
4336 IDXMS1 = ABS(JMOHEP(1,IDXMS1))
4337 IF ((IDXMS1.NE.1).AND.(IDXMS1.NE.2).AND.
4338 & (ILOOP.LT.MAXLOP)) GOTO 14
4339 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 1 ! '
4340 IPOM2 = 0
4341 ILOOP = 0
4342 15 CONTINUE
4343 ILOOP = ILOOP+1
4344 IF (IDHEP(IDXMS2).EQ.990) IPOM2 = 1
4345 IF ((ILOOP.EQ.1).OR.(IDHEP(IDXMS2).GE.7777)) THEN
4346 IDXMS2 = ABS(JMOHEP(2,IDXMS2))
4347 ELSE
4348 IDXMS2 = ABS(JMOHEP(1,IDXMS2))
4349 ENDIF
4350 IF ((IDXMS2.NE.1).AND.(IDXMS2.NE.2).AND.
4351 & (ILOOP.LT.MAXLOP)) GOTO 15
4352 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 5 ! '
4353* parton 1
4354 IF (IDXMS1.EQ.1) THEN
4355 ISPTN1 = ISTHKK(MO1)
4356 M1PTN1 = MO1
4357 M2PTN1 = MO1+2
4358 ELSE
4359 ISPTN1 = ISTHKK(MO2)
4360 M1PTN1 = MO2-2
4361 M2PTN1 = MO2
4362 ENDIF
4363* parton 2
4364 IF (IDXMS2.EQ.1) THEN
4365 ISPTN2 = ISTHKK(MO1)
4366 M1PTN2 = MO1
4367 M2PTN2 = MO1+2
4368 ELSE
4369 ISPTN2 = ISTHKK(MO2)
4370 M1PTN2 = MO2-2
4371 M2PTN2 = MO2
4372 ENDIF
4373* check for mis-identified mothers and switch mother indices if necessary
4374 IF ((IDXMS1.EQ.IDXMS2).AND.(IPROCE.NE.5).AND.(IPROCE.NE.6)
4375 & .AND.((IDHEP(IDX1).NE.21).OR.(IDHEP(IDX2).NE.21)).AND.
4376 & (LFLIP)) THEN
4377 IF (PHEP(3,IDX1).GT.PHEP(3,IDX2)) THEN
4378 ISPTN1 = ISTHKK(MO1)
4379 M1PTN1 = MO1
4380 M2PTN1 = MO1+2
4381 ISPTN2 = ISTHKK(MO2)
4382 M1PTN2 = MO2-2
4383 M2PTN2 = MO2
4384 ELSE
4385 ISPTN1 = ISTHKK(MO2)
4386 M1PTN1 = MO2-2
4387 M2PTN1 = MO2
4388 ISPTN2 = ISTHKK(MO1)
4389 M1PTN2 = MO1
4390 M2PTN2 = MO1+2
4391 ENDIF
4392 ENDIF
4393* register partons in temporary common
4394* parton at chain end
4395 PX = PHEP(1,IDX1)
4396 PY = PHEP(2,IDX1)
4397 PZ = PHEP(3,IDX1)
4398 PE = PHEP(4,IDX1)
4399* flag only partons coming from Pomeron with 41/42
4400C IF ((IPOM1.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4401 IF (IPOM1.NE.0) THEN
4402 ISTX = ABS(ISPTN1)/10
4403 IMO = ABS(ISPTN1)-10*ISTX
4404 ISPTN1 = -(40+IMO)
4405 ELSE
4406 IF ((ICOLOR(2,IDX1).EQ.0).OR.(IDHEP(IDX1).EQ.21)) THEN
4407 ISTX = ABS(ISPTN1)/10
4408 IMO = ABS(ISPTN1)-10*ISTX
4409 IF ((IDHEP(IDX1).EQ.21).OR.
4410 & (ABS(IPHIST(1,IDX1)).GE.100)) THEN
4411 ISPTN1 = -(60+IMO)
4412 ELSE
4413 ISPTN1 = -(50+IMO)
4414 ENDIF
4415 ENDIF
4416 ENDIF
4417 IF (ISPTN1.EQ.-21) NPVAL = NPVAL+1
4418 IF (ISPTN1.EQ.-22) NTVAL = NTVAL+1
4419 IF (MODE.LT.0) THEN
4420 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PX,PY,
4421 & PZ,PE,0,0,0)
4422 ELSE
4423 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4424 & PPX,PPY,PPZ,PPE)
4425 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PPX,PPY,
4426 & PPZ,PPE,0,0,0)
4427 ENDIF
4428 IHIST(1,NHKK) = IPHIST(1,IDX1)
4429 IHIST(2,NHKK) = 0
4430 DO 19 KK=1,4
4431 VHKK(KK,NHKK) = VHKK(KK,M2PTN1)
4432 WHKK(KK,NHKK) = WHKK(KK,M1PTN1)
4433 19 CONTINUE
4434 VHKK(4,NHKK) = VHKK(3,M2PTN1)/BLAB-VHKK(3,M1PTN1)/BGLAB
4435 WHKK(4,NHKK) = -WHKK(3,M1PTN1)/BLAB+WHKK(3,M2PTN1)/BGLAB
4436 M1STRG = NHKK
4437* gluon kinks
4438 NGLUON = IDX2-IDX1-1
4439 IF (NGLUON.GT.0) THEN
4440 DO 17 IGLUON=1,NGLUON
4441 IDX = IDX1+IGLUON
4442 IDXMS = ABS(JMOHEP(1,IDX))
4443 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2)) THEN
4444 ILOOP = 0
4445 16 CONTINUE
4446 ILOOP = ILOOP+1
4447 IDXMS = ABS(JMOHEP(1,IDXMS))
4448 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2).AND.
4449 & (ILOOP.LT.MAXLOP)) GOTO 16
4450 IF (ILOOP.EQ.MAXLOP)
4451 & WRITE(LOUT,*) ' GETPJE: MAXLOP in 3 ! '
4452 ENDIF
4453 IF (IDXMS.EQ.1) THEN
4454 ISPTN = ISTHKK(MO1)
4455 M1PTN = MO1
4456 M2PTN = MO1+2
4457 ELSE
4458 ISPTN = ISTHKK(MO2)
4459 M1PTN = MO2-2
4460 M2PTN = MO2
4461 ENDIF
4462 PX = PHEP(1,IDX)
4463 PY = PHEP(2,IDX)
4464 PZ = PHEP(3,IDX)
4465 PE = PHEP(4,IDX)
4466 IF ((ICOLOR(2,IDX).EQ.0).OR.(IDHEP(IDX).EQ.21)) THEN
4467 ISTX = ABS(ISPTN)/10
4468 IMO = ABS(ISPTN)-10*ISTX
4469 IF ((IDHEP(IDX).EQ.21).OR.
4470 & (ABS(IPHIST(1,IDX)).GE.100)) THEN
4471 ISPTN = -(60+IMO)
4472 ELSE
4473 ISPTN = -(50+IMO)
4474 ENDIF
4475 ENDIF
4476 IF (ISPTN.EQ.-21) NPVAL = NPVAL+1
4477 IF (ISPTN.EQ.-22) NTVAL = NTVAL+1
4478 IF (MODE.LT.0) THEN
4479 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4480 & PX,PY,PZ,PE,0,0,0)
4481 ELSE
4482 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4483 & PPX,PPY,PPZ,PPE)
4484 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4485 & PPX,PPY,PPZ,PPE,0,0,0)
4486 ENDIF
4487 IHIST(1,NHKK) = IPHIST(1,IDX)
4488 IHIST(2,NHKK) = 0
4489 DO 20 KK=1,4
4490 VHKK(KK,NHKK) = VHKK(KK,M2PTN)
4491 WHKK(KK,NHKK) = WHKK(KK,M1PTN)
4492 20 CONTINUE
4493 VHKK(4,NHKK)= VHKK(3,M2PTN)/BLAB-VHKK(3,M1PTN)/BGLAB
4494 WHKK(4,NHKK)= -WHKK(3,M1PTN)/BLAB+WHKK(3,M2PTN)/BGLAB
4495 17 CONTINUE
4496 ENDIF
4497* parton at chain end
4498 PX = PHEP(1,IDX2)
4499 PY = PHEP(2,IDX2)
4500 PZ = PHEP(3,IDX2)
4501 PE = PHEP(4,IDX2)
4502* flag only partons coming from Pomeron with 41/42
4503C IF ((IPOM2.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4504 IF (IPOM2.NE.0) THEN
4505 ISTX = ABS(ISPTN2)/10
4506 IMO = ABS(ISPTN2)-10*ISTX
4507 ISPTN2 = -(40+IMO)
4508 ELSE
4509 IF ((ICOLOR(2,IDX2).EQ.0).OR.(IDHEP(IDX2).EQ.21)) THEN
4510 ISTX = ABS(ISPTN2)/10
4511 IMO = ABS(ISPTN2)-10*ISTX
4512 IF ((IDHEP(IDX2).EQ.21).OR.
4513 & (ABS(IPHIST(1,IDX2)).GE.100)) THEN
4514 ISPTN2 = -(60+IMO)
4515 ELSE
4516 ISPTN2 = -(50+IMO)
4517 ENDIF
4518 ENDIF
4519 ENDIF
4520 IF (ISPTN2.EQ.-21) NPVAL = NPVAL+1
4521 IF (ISPTN2.EQ.-22) NTVAL = NTVAL+1
4522 IF (MODE.LT.0) THEN
4523 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4524 & PX,PY,PZ,PE,0,0,0)
4525 ELSE
4526 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4527 & PPX,PPY,PPZ,PPE)
4528 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4529 & PPX,PPY,PPZ,PPE,0,0,0)
4530 ENDIF
4531 IHIST(1,NHKK) = IPHIST(1,IDX2)
4532 IHIST(2,NHKK) = 0
4533 DO 21 KK=1,4
4534 VHKK(KK,NHKK) = VHKK(KK,M2PTN2)
4535 WHKK(KK,NHKK) = WHKK(KK,M1PTN2)
4536 21 CONTINUE
4537 VHKK(4,NHKK) = VHKK(3,M2PTN2)/BLAB-VHKK(3,M1PTN2)/BGLAB
4538 WHKK(4,NHKK) = -WHKK(3,M1PTN2)/BLAB+WHKK(3,M2PTN2)/BGLAB
4539 M2STRG = NHKK
4540* register string
4541 JSTRG = 100*IPROCE+NCODE(I)
4542 PX = PHEP(1,IDXSTG)
4543 PY = PHEP(2,IDXSTG)
4544 PZ = PHEP(3,IDXSTG)
4545 PE = PHEP(4,IDXSTG)
4546 IF (MODE.LT.0) THEN
4547 ISTAT = 70000+IPJE
4548 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4549 & PX,PY,PZ,PE,0,0,0)
4550 IF (LEMCCK) THEN
4551 PX = -PX
4552 PY = -PY
4553 PZ = -PZ
4554 PE = -PE
4555 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4556 ENDIF
4557 ELSE
4558 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4559 & PPX,PPY,PPZ,PPE)
4560 ISTAT = 70000+IPJE
4561 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4562 & PPX,PPY,PPZ,PPE,0,0,0)
4563 IF (LEMCCK) THEN
4564 PX = -PPX
4565 PY = -PPY
4566 PZ = -PPZ
4567 PE = -PPE
4568 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4569 ENDIF
4570 ENDIF
4571 NOBAM(NHKK) = 0
4572 IHIST(1,NHKK) = 0
4573 IHIST(2,NHKK) = 0
4574 DO 18 KK=1,4
4575 VHKK(KK,NHKK) = VHKK(KK,MO2)
4576 WHKK(KK,NHKK) = WHKK(KK,MO1)
4577 18 CONTINUE
4578 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
4579 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
4580 ENDIF
4581 11 CONTINUE
4582
4583 IF ( ((NPVAL.GT.2).OR.(NTVAL.GT.2)).AND.(LFLIP) ) THEN
4584 NHKK = INHKK
4585 LFLIP = .FALSE.
4586 GOTO 1
4587 ENDIF
4588
4589 IF (LEMCCK) THEN
4590 IF (UMO.GT.1.0D5) THEN
4591 CHKLEV = 1.0D0
4592 ELSE
4593 CHKLEV = TINY1
4594 ENDIF
4595 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,1000,IREJ2)
4596 IF (IREJ2.GT.ZERO) CALL PHO_PREVNT(0)
4597 ENDIF
4598
4599* internal statistics
4600* dble-Po statistics.
4601 IF (IPROCE.NE.4) IPOPO = 0
4602
4603 INTFLG = IPROCE
4604 IDCHSY = IDCH(MO1)
4605 IF ((IPROCE.GE.1).AND.(IPROCE.LE.8)) THEN
4606 ICEVTG(IDCHSY,IPROCE+2) = ICEVTG(IDCHSY,IPROCE+2)+1
4607 ELSE
4608 WRITE(LOUT,1000) IPROCE,NEVHKK,MO1
4609 1000 FORMAT(1X,'GETFSP: warning! incons. process id. (',I2,
4610 & ') at evt(chain) ',I6,'(',I2,')')
4611 ENDIF
4612 IF (IPROCE.EQ.5) THEN
4613 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3)) THEN
4614 ICEVTG(IDCHSY,18+IDIFR1) = ICEVTG(IDCHSY,18+IDIFR1)+1
4615 ELSE
4616C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4617 1001 FORMAT(1X,'GETFSP: warning! incons. diffrac. id. ',
4618 & '(IPROCE,IDIFR1,IDIFR2=',3I3,')')
4619 ENDIF
4620 ELSEIF (IPROCE.EQ.6) THEN
4621 IF ((IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4622 ICEVTG(IDCHSY,21+IDIFR2) = ICEVTG(IDCHSY,21+IDIFR2)+1
4623 ELSE
4624C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4625 ENDIF
4626 ELSEIF (IPROCE.EQ.7) THEN
4627 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3).AND.
4628 & (IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4629 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.1))
4630 & ICEVTG(IDCHSY,25) = ICEVTG(IDCHSY,25)+1
4631 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.2))
4632 & ICEVTG(IDCHSY,26) = ICEVTG(IDCHSY,26)+1
4633 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.2))
4634 & ICEVTG(IDCHSY,27) = ICEVTG(IDCHSY,27)+1
4635 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.1))
4636 & ICEVTG(IDCHSY,28) = ICEVTG(IDCHSY,28)+1
4637 ELSE
4638 WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4639 ENDIF
4640 ENDIF
4641 IF ((IDIFR1+IDIFR2.EQ.0).AND.(KHDIR.GE.1).AND.(KHDIR.LE.3))
4642 & THEN
4643 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4644 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4645 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4646 ENDIF
4647 ICEVTG(IDCHSY,14) = ICEVTG(IDCHSY,14)+KSPOM
4648 ICEVTG(IDCHSY,15) = ICEVTG(IDCHSY,15)+KHPOM
4649 ICEVTG(IDCHSY,16) = ICEVTG(IDCHSY,16)+KSREG
4650 ICEVTG(IDCHSY,17) = ICEVTG(IDCHSY,17)+(KSTRG+KHTRG)
4651 ICEVTG(IDCHSY,18) = ICEVTG(IDCHSY,18)+(KSLOO+KHLOO)
4652
4653 RETURN
4654
4655 9999 CONTINUE
4656 IREJ = 1
4657 RETURN
4658 END
4659
4660*$ CREATE DT_PHOINI.FOR
4661*COPY DT_PHOINI
4662*
4663*===phoini=============================================================*
4664*
4665 SUBROUTINE DT_PHOINI
4666
4667************************************************************************
4668* Initialization PHOJET-event generator for nucleon-nucleon interact. *
4669* This version dated 16.11.95 is written by S. Roesler *
4670* *
4671* Last change 27.12.2006 by S. Roesler. *
4672************************************************************************
4673
4674 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4675 SAVE
4676 PARAMETER ( LINP = 10 ,
4677 & LOUT = 6 ,
4678 & LDAT = 9 )
4679 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
4680
4681* nucleon-nucleon event-generator
4682 CHARACTER*8 CMODEL
4683 LOGICAL LPHOIN
4684 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
4685* particle properties (BAMJET index convention)
4686 CHARACTER*8 ANAME
4687 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
4688 & IICH(210),IIBAR(210),K1(210),K2(210)
4689* Lorentz-parameters of the current interaction
4690 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4691 & UMO,PPCM,EPROJ,PPROJ
4692* properties of interacting particles
4693 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4694* properties of photon/lepton projectiles
4695 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
4696 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
4697* emulsion treatment
4698 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
4699 & NCOMPO,IEMUL
4700* VDM parameter for photon-nucleus interactions
4701 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
4702* nuclear potential
4703 LOGICAL LFERMI
4704 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4705 & EBINDP(2),EBINDN(2),EPOT(2,210),
4706 & ETACOU(2),ICOUL,LFERMI
4707* Glauber formalism: flags and parameters for statistics
4708 LOGICAL LPROD
4709 CHARACTER*8 CGLB
4710 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
4711*
4712* parameters for cascade calculations:
4713* maximum mumber of PDF's which can be defined in phojet (limited
4714* by the dimension of ipdfs in pho_setpdf)
4715 PARAMETER (MAXPDF = 20)
4716* PDF parametrization and number of set for the first 30 hadrons in
4717* the bamjet-code list
4718* negative numbers mean that the PDF is set in phojet,
4719* zero stands for "not a hadron"
4720 DIMENSION IPARPD(30),ISETPD(30)
4721* PDF parametrization
4722 DATA IPARPD /
4723 & -5,-5, 0, 0, 0, 0,-5,-5,-5, 0, 0, 5,-5,-5, 5, 5, 5, 5, 5, 5,
4724 & 5, 5,-5, 5, 5, 0, 0, 0, 0, 0/
4725* number of set
4726 DATA ISETPD /
4727 & -6,-6, 0, 0, 0, 0,-3,-6,-6, 0, 0, 2,-2,-2, 2, 2, 6, 6, 2, 6,
4728 & 6, 6,-2, 2, 2, 0, 0, 0, 0, 0/
4729
4730**PHOJET105a
4731C COMMON /GLOCMS/ XECM,XPCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4732C PARAMETER ( MAXPRO = 16 )
4733C PARAMETER ( MAXTAB = 20 )
4734C COMMON /HAXSEC/ XSECTA(4,-1:MAXPRO,4,MAXTAB),XSECT(6,-1:MAXPRO),
4735C & MXSECT(0:4,-1:MAXPRO,4),ECMSH(4,MAXTAB),ISTTAB
4736C CHARACTER*8 MDLNA
4737C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
4738C COMMON /PROCES/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15)
4739**PHOJET110
4740C global event kinematics and particle IDs
4741 INTEGER IFPAP,IFPAB
4742 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
4743 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4744C hard cross sections and MC selection weights
4745 INTEGER Max_pro_2
4746 PARAMETER ( Max_pro_2 = 16 )
4747 INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
4748 & MH_acc_1,MH_acc_2
4749 DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
4750 COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
4751 & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
4752 & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
4753 & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
4754 & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
4755C model switches and parameters
4756 CHARACTER*8 MDLNA
4757 INTEGER ISWMDL,IPAMDL
4758 DOUBLE PRECISION PARMDL
4759 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4760C general process information
4761 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4762 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4763**
4764 DIMENSION PP(4),PT(4)
4765
4766 LOGICAL LSTART
4767 DATA LSTART /.TRUE./
4768
4769 IJP = IJPROJ
4770 IJT = IJTARG
4771 Q2 = VIRT
4772* lepton-projectiles: initialize real photon instead
4773 IF ((IJP.EQ.3).OR.(IJP.EQ.4).OR.(IJP.EQ.10).OR.(IJP.EQ.11)) THEN
4774 IJP = 7
4775 Q2 = ZERO
4776 ENDIF
4777 IF (LPHOIN) CALL PHO_INIT(-1,LOUT,IDUM)
4778* switch Reggeon off
4779C IPAMDL(3)= 0
4780 IF (IP.EQ.1) THEN
4781 IFPAP(1) = IDT_IPDGHA(IJP)
4782 IFPAB(1) = IJP
4783 ELSE
4784 IFPAP(1) = 2212
4785 IFPAB(1) = IDT_ICIHAD(IFPAP(1))
4786 ENDIF
4787 PMASS(1) = AAM(IFPAB(1))-SQRT(Q2)
4788 PVIRT(1) = PMASS(1)**2
4789 IF (IT.EQ.1) THEN
4790 IFPAP(2) = IDT_IPDGHA(IJT)
4791 IFPAB(2) = IJT
4792 ELSE
4793 IFPAP(2) = 2212
4794 IFPAB(2) = IDT_ICIHAD(IFPAP(2))
4795 ENDIF
4796 PMASS(2) = AAM(IFPAB(2))
4797 PVIRT(2) = ZERO
4798 DO 1 K=1,4
4799 PP(K) = ZERO
4800 PT(K) = ZERO
4801 1 CONTINUE
4802* get max. possible momenta of incoming particles to be used for PHOJET ini.
4803 PPF = ZERO
4804 PTF = ZERO
4805 SCPF= 1.5D0
4806 IF (UMO.GE.1.E5) THEN
4807 SCPF= 5.0D0
4808 ENDIF
4809 IF (NCOMPO.GT.0) THEN
4810 DO 2 I=1,NCOMPO
4811 IF (IT.GT.1) THEN
4812 CALL DT_NCLPOT(IEMUCH(I),IEMUMA(I),ITZ,IT,ZERO,ZERO,0)
4813 ELSE
4814 CALL DT_NCLPOT(IPZ,IP,IEMUCH(I),IEMUMA(I),ZERO,ZERO,0)
4815 ENDIF
4816 PPFTMP = MAX(PFERMP(1),PFERMN(1))
4817 PTFTMP = MAX(PFERMP(2),PFERMN(2))
4818 IF (PPFTMP.GT.PPF) PPF = PPFTMP
4819 IF (PTFTMP.GT.PTF) PTF = PTFTMP
4820 2 CONTINUE
4821 ELSE
4822 CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0)
4823 PPF = MAX(PFERMP(1),PFERMN(1))
4824 PTF = MAX(PFERMP(2),PFERMN(2))
4825 ENDIF
4826 PTF = -PTF
4827 PPF = SCPF*PPF
4828 PTF = SCPF*PTF
4829 IF (IJP.EQ.7) THEN
4830 AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4831 PP(3) = PPCM
4832 PP(4) = SQRT(AMP2+PP(3)**2)
4833 ELSE
4834 EPF = SQRT(PPF**2+PMASS(1)**2)
4835 CALL DT_LTNUC(PPF,EPF,PP(3),PP(4),2)
4836 ENDIF
4837 ETF = SQRT(PTF**2+PMASS(2)**2)
4838 CALL DT_LTNUC(PTF,ETF,PT(3),PT(4),3)
4839 ECMINI = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
4840 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
4841 IF (LSTART) THEN
4842 WRITE(LOUT,1001) IP,IPZ,SCPF,PPF,PP
4843 1001 FORMAT(
4844 & ' DT_PHOINI: PHOJET initialized for projectile A,Z = ',
4845 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4846 IF (NCOMPO.GT.0) THEN
4847 WRITE(LOUT,1002) SCPF,PTF,PT
4848 ELSE
4849 WRITE(LOUT,1003) IT,ITZ,SCPF,PTF,PT
4850 ENDIF
4851 1002 FORMAT(
4852 & ' DT_PHOINI: PHOJET initialized for target emulsion ',
4853 & /,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4854 1003 FORMAT(
4855 & ' DT_PHOINI: PHOJET initialized for target A,Z = ',
4856 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4857 WRITE(LOUT,1004) ECMINI
4858 1004 FORMAT(' E_cm = ',E10.3)
4859 IF (IJP.EQ.8) WRITE(LOUT,1005)
4860 1005 FORMAT(
4861 & ' DT_PHOINI: warning! proton parameters used for neutron',
4862 & ' projectile')
4863 LSTART = .FALSE.
4864 ENDIF
4865* switch off new diffractive cross sections at low energies for nuclei
4866* (temporary solution)
4867 IF ((ISWMDL(30).NE.0).AND.((IP.GT.1).OR.(IT.GT.1))) THEN
4868 WRITE(LOUT,'(1X,A)')
4869 & ' DT_PHOINI: model-switch 30 for nuclei re-set !'
4870 CALL PHO_SETMDL(30,0,1)
4871 ENDIF
4872*
4873C IF (IJP.EQ.7) THEN
4874C AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4875C PP(3) = PPCM
4876C PP(4) = SQRT(AMP2+PP(3)**2)
4877C ELSE
4878C PFERMX = ZERO
4879C IF (IP.GT.1) PFERMX = 0.5D0
4880C EFERMX = SQRT(PFERMX**2+PMASS(1)**2)
4881C CALL DT_LTNUC(PFERMX,EFERMX,PP(3),PP(4),2)
4882C ENDIF
4883C PFERMX = ZERO
4884C IF ((IT.GT.1).OR.(NCOMPO.GT.0)) PFERMX = -0.5D0
4885C EFERMX = SQRT(PFERMX**2+PMASS(2)**2)
4886C CALL DT_LTNUC(PFERMX,EFERMX,PT(3),PT(4),3)
4887**sr 26.10.96
4888 ISAV = IPAMDL(13)
4889 IF ((ISHAD(2).EQ.1).AND.
4890 & ((IJPROJ.EQ. 7).OR.(IJPROJ.EQ.3).OR.(IJPROJ.EQ.4).OR.
4891 & (IJPROJ.EQ.10).OR.(IJPROJ.EQ.11))) IPAMDL(13) = 1
4892**
4893 CALL PHO_EVENT(-1,PP,PT,SIGMAX,IREJ1)
4894**sr 26.10.96
4895 IPAMDL(13) = ISAV
4896**
4897*
4898* patch for cascade calculations:
4899* define parton distribution functions for other hadrons, i.e. other
4900* then defined already in phojet
4901 IF (IOGLB.EQ.100) THEN
4902 WRITE(LOUT,1006)
4903 1006 FORMAT(/,1X,'PHOINI: additional parton distribution functions',
4904 & ' assiged (ID,IPAR,ISET)',/)
4905 NPDF = 0
4906 DO 3 I=1,30
4907 IF (IPARPD(I).NE.0) THEN
4908 NPDF = NPDF+1
4909 IF (NPDF.GT.MAXPDF) STOP ' PHOINI: npdf > maxpdf !'
4910 IF ((IPARPD(I).GT.0).AND.(ISETPD(I).GT.0)) THEN
4911 IDPDG = IDT_IPDGHA(I)
4912 IPAR = IPARPD(I)
4913 ISET = ISETPD(I)
4914 WRITE(LOUT,'(13X,A8,3I6)') ANAME(I),IDPDG,IPAR,ISET
4915 CALL PHO_SETPDF(IDPDG,IDUM,IPAR,ISET,0,0,-1)
4916 ENDIF
4917 ENDIF
4918 3 CONTINUE
4919 ENDIF
4920
4921C CALL PHO_PHIST(-1,SIGMAX)
4922 IF (IREJ1.NE.0) THEN
4923 WRITE(LOUT,1000)
4924 1000 FORMAT(1X,'PHOINI: PHOJET event-initialization failed!')
4925 STOP
4926 ENDIF
4927
4928 RETURN
4929 END
4930
4931*$ CREATE DT_EVENTD.FOR
4932*COPY DT_EVENTD
4933*
4934*===eventd=============================================================*
4935*
4936 SUBROUTINE DT_EVENTD(IREJ)
4937
4938************************************************************************
4939* Quasi-elastic neutrino nucleus scattering. *
4940* This version dated 29.04.00 is written by S. Roesler. *
4941************************************************************************
4942
4943 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4944 SAVE
4945 PARAMETER ( LINP = 10 ,
4946 & LOUT = 6 ,
4947 & LDAT = 9 )
4948 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY5=1.0D-5)
4949 PARAMETER (SQTINF=1.0D+15)
4950
4951 LOGICAL LFIRST
4952
4953* event history
4954 PARAMETER (NMXHKK=200000)
4955 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4956 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4957 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4958* extended event history
4959 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4960 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4961 & IHIST(2,NMXHKK)
4962* flags for input different options
4963 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4964 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4965 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4966 PARAMETER (MAXLND=4000)
4967 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
4968* properties of interacting particles
4969 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4970* Lorentz-parameters of the current interaction
4971 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4972 & UMO,PPCM,EPROJ,PPROJ
4973* nuclear potential
4974 LOGICAL LFERMI
4975 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4976 & EBINDP(2),EBINDN(2),EPOT(2,210),
4977 & ETACOU(2),ICOUL,LFERMI
4978* steering flags for qel neutrino scattering modules
4979 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
4980 COMMON /QNPOL/ POLARX(4),PMODUL
4981 INTEGER PYK
4982
4983 DATA LFIRST /.TRUE./
4984
4985 IREJ = 0
4986
4987 IF (LFIRST) THEN
4988 LFIRST = .FALSE.
4989 CALL DT_MASS_INI
4990 ENDIF
4991
4992* JETSET parameter
4993 CALL DT_INITJS(0)
4994
4995* interacting target nucleon
4996 LTYP = NEUTYP
4997 IF (NEUDEC.LE.9) THEN
4998 IF ((LTYP.EQ.1).OR.(LTYP.EQ.3).OR.(LTYP.EQ.5)) THEN
4999 NUCTYP = 2112
5000 NUCTOP = 2
5001 ELSE
5002 NUCTYP = 2212
5003 NUCTOP = 1
5004 ENDIF
5005 ELSE
5006 RTYP = DT_RNDM(RTYP)
5007 ZFRAC = DBLE(ITZ)/DBLE(IT)
5008 IF (RTYP.LE.ZFRAC) THEN
5009 NUCTYP = 2212
5010 NUCTOP = 1
5011 ELSE
5012 NUCTYP = 2112
5013 NUCTOP = 2
5014 ENDIF
5015 ENDIF
5016
5017* select first nucleon in list with matching id and reset all other
5018* nucleons which have been marked as "wounded" by ININUC
5019 IFOUND = 0
5020 DO 1 I=1,NHKK
5021 IF ((IDHKK(I).EQ.NUCTYP).AND.(IFOUND.EQ.0)) THEN
5022 ISTHKK(I) = 12
5023 IFOUND = 1
5024 IDX = I
5025 ELSE
5026 IF (ISTHKK(I).EQ.12) ISTHKK(I) = 14
5027 ENDIF
5028 1 CONTINUE
5029 IF (IFOUND.EQ.0)
5030 & STOP ' EVENTD: interacting target nucleon not found! '
5031
5032* correct position of proj. lepton: assume position of target nucleon
5033 DO 3 I=1,4
5034 VHKK(I,1) = VHKK(I,IDX)
5035 WHKK(I,1) = WHKK(I,IDX)
5036 3 CONTINUE
5037
5038* load initial momenta for conservation check
5039 IF (LEMCCK) THEN
5040 CALL DT_EVTEMC(ZERO,ZERO,PPROJ,EPROJ,1,IDUM,IDUM)
5041 CALL DT_EVTEMC(PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),PHKK(4,IDX),
5042 & 2,IDUM,IDUM)
5043 ENDIF
5044
5045* quasi-elastic scattering
5046 IF (NEUDEC.LT.9) THEN
5047 CALL DT_QEL_POL(EPROJ,LTYP,PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),
5048 & PHKK(4,IDX),PHKK(5,IDX))
5049* CC event on p or n
5050 ELSEIF (NEUDEC.EQ.10) THEN
5051 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,1,PHKK(1,IDX),PHKK(2,IDX),
5052 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5053* NC event on p or n
5054 ELSEIF (NEUDEC.EQ.11) THEN
5055 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,2,PHKK(1,IDX),PHKK(2,IDX),
5056 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5057 ENDIF
5058
5059* get final state particles from Lund-common and write them into HKKEVT
5060 NPOINT(1) = NHKK+1
5061 NPOINT(4) = NHKK+1
5062 NLINES = PYK(0,1)
5063 NHKK0 = NHKK+1
5064 DO 4 I=4,NLINES
5065 IF (K(I,1).EQ.1) THEN
5066 ID = K(I,2)
5067 PX = P(I,1)
5068 PY = P(I,2)
5069 PZ = P(I,3)
5070 PE = P(I,4)
5071 CALL DT_EVTPUT(1,ID,1,IDX,PX,PY,PZ,PE,0,0,0)
5072 IDBJ = IDT_ICIHAD(ID)
5073 EKIN = PHKK(4,NHKK)-PHKK(5,NHKK)
5074 IF ((IDBJ.EQ.1).OR.(IDBJ.EQ.8)) THEN
5075 IF (EKIN.LE.EPOT(2,IDBJ)) ISTHKK(NHKK) = 16
5076 ENDIF
5077 VHKK(1,NHKK) = VHKK(1,IDX)
5078 VHKK(2,NHKK) = VHKK(2,IDX)
5079 VHKK(3,NHKK) = VHKK(3,IDX)
5080 VHKK(4,NHKK) = VHKK(4,IDX)
5081C IF (I.EQ.4) THEN
5082C WHKK(1,NHKK) = POLARX(1)
5083C WHKK(2,NHKK) = POLARX(2)
5084C WHKK(3,NHKK) = POLARX(3)
5085C WHKK(4,NHKK) = POLARX(4)
5086C ELSE
5087 WHKK(1,NHKK) = WHKK(1,IDX)
5088 WHKK(2,NHKK) = WHKK(2,IDX)
5089 WHKK(3,NHKK) = WHKK(3,IDX)
5090 WHKK(4,NHKK) = WHKK(4,IDX)
5091C ENDIF
5092 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
5093 ENDIF
5094 4 CONTINUE
5095
5096 IF (LEMCCK) THEN
5097 CHKLEV = TINY5
5098 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,778,IREJ1)
5099 IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
5100 ENDIF
5101
5102* transform momenta into cms (as required for inc etc.)
5103 DO 5 I=NHKK0,NHKK
5104 IF (ISTHKK(I).EQ.1) THEN
5105 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,3)
5106 PHKK(3,I) = PZ
5107 PHKK(4,I) = PE
5108 ENDIF
5109 5 CONTINUE
5110
5111 RETURN
5112 END
5113
5114*$ CREATE DT_KKEVNT.FOR
5115*COPY DT_KKEVNT
5116*
5117*===kkevnt=============================================================*
5118*
5119 SUBROUTINE DT_KKEVNT(KKMAT,IREJ)
5120
5121************************************************************************
5122* Treatment of complete nucleus-nucleus or hadron-nucleus scattering *
5123* without nuclear effects (one event). *
5124* This subroutine is an update of the previous version (KKEVT) written *
5125* by J. Ranft/ H.-J. Moehring. *
5126* This version dated 20.04.95 is written by S. Roesler *
5127************************************************************************
5128
5129 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5130 SAVE
5131 PARAMETER ( LINP = 10 ,
5132 & LOUT = 6 ,
5133 & LDAT = 9 )
5134 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10)
5135
5136 PARAMETER ( MAXNCL = 260,
5137 & MAXVQU = MAXNCL,
5138 & MAXSQU = 20*MAXVQU,
5139 & MAXINT = MAXVQU+MAXSQU)
5140* event history
5141 PARAMETER (NMXHKK=200000)
5142 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5143 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5144 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5145* extended event history
5146 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5147 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5148 & IHIST(2,NMXHKK)
5149* flags for input different options
5150 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5151 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5152 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5153* rejection counter
5154 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
5155 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
5156 & IREXCI(3),IRDIFF(2),IRINC
5157* statistics
5158 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5159 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5160 & ICEVTG(8,0:30)
5161* properties of interacting particles
5162 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
5163* Lorentz-parameters of the current interaction
5164 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5165 & UMO,PPCM,EPROJ,PPROJ
5166* flags for diffractive interactions (DTUNUC 1.x)
5167 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5168* interface HADRIN-DPM
5169 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5170* nucleon-nucleon event-generator
5171 CHARACTER*8 CMODEL
5172 LOGICAL LPHOIN
5173 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
5174* coordinates of nucleons
5175 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
5176* interface between Glauber formalism and DPM
5177 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
5178 & INTER1(MAXINT),INTER2(MAXINT)
5179* Glauber formalism: collision properties
5180 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5181 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5182* central particle production, impact parameter biasing
5183 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5184**temporary
5185* statistics: Glauber-formalism
5186 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5187**
5188
5189 DATA NEVOLD,IPOLD,ITOLD,JJPOLD,EPROLD /4*0,0.0D0/
5190
5191 IREJ = 0
5192 ICREQU = ICREQU+1
5193 NC = 0
5194
5195 1 CONTINUE
5196 ICSAMP = ICSAMP+1
5197 NC = NC+1
5198 IF (MOD(NC,10).EQ.0) THEN
5199 WRITE(LOUT,1000) NEVHKK
5200 1000 FORMAT(1X,'KKEVNT: event ',I8,' rejected!')
5201 GOTO 9999
5202 ENDIF
5203
5204* initialize DTEVT1/DTEVT2
5205 CALL DT_EVTINI
5206
5207* We need the following only in order to sample nucleon coordinates.
5208* However we don't have parameters (cross sections, slope etc.)
5209* for neutrinos available. Therefore switch projectile to proton
5210* in this case.
5211 IF (MCGENE.EQ.4) THEN
5212 JJPROJ = 1
5213 ELSE
5214 JJPROJ = IJPROJ
5215 ENDIF
5216
5217 10 CONTINUE
5218 IF ( (NEVHKK.NE.NEVOLD).OR.(ICENTR.GT.0).OR.
5219* make sure that Glauber-formalism is called each time the interaction
5220* configuration changed
5221 & (IP.NE.IPOLD).OR.(IT.NE.ITOLD).OR.(JJPROJ.NE.JJPOLD).OR.
5222 & (ABS(EPROJ-EPROLD).GT.TINY10) ) THEN
5223* sample number of nucleon-nucleon coll. according to Glauber-form.
5224 CALL DT_GLAUBE(IP,IT,JJPROJ,BIMPAC,NN,NP,NT,JSSH,JTSH,KKMAT)
5225 NWTSAM = NN
5226 NWASAM = NP
5227 NWBSAM = NT
5228 NEVOLD = NEVHKK
5229 IPOLD = IP
5230 ITOLD = IT
5231 JJPOLD = JJPROJ
5232 EPROLD = EPROJ
5233 ENDIF
5234
5235* force diffractive particle production in h-K interactions
5236 IF (((ABS(ISINGD).GT.1).OR.(ABS(IDOUBD).GT.1)).AND.
5237 & (IP.EQ.1).AND.(NN.NE.1)) THEN
5238 NEVOLD = 0
5239 GOTO 10
5240 ENDIF
5241
5242* check number of involved proj. nucl. (NP) if central prod.is requested
5243 IF (ICENTR.GT.0) THEN
5244 CALL DT_CHKCEN(IP,IT,NP,NT,IBACK)
5245 IF (IBACK.GT.0) GOTO 10
5246 ENDIF
5247
5248* get initial nucleon-configuration in projectile and target
5249* rest-system (including Fermi-momenta if requested)
5250 CALL DT_ININUC(IJPROJ,IP,IPZ,PKOO,JSSH,1)
5251 MODE = 2
5252 IF (EPROJ.LE.EHADTH) MODE = 3
5253 CALL DT_ININUC(IJTARG,IT,ITZ,TKOO,JTSH,MODE)
5254
5255 IF ((MCGENE.NE.3).AND.(MCGENE.NE.4)) THEN
5256
5257* activate HADRIN at low energies (implemented for h-N scattering only)
5258 IF (EPROJ.LE.EHADHI) THEN
5259 IF (EHADTH.LT.ZERO) THEN
5260* smooth transition btwn. DPM and HADRIN
5261 FRAC = (EPROJ-EHADLO)/(EHADHI-EHADLO)
5262 RR = DT_RNDM(FRAC)
5263 IF (RR.GT.FRAC) THEN
5264 IF (IP.EQ.1) THEN
5265 CALL DT_HADCOL(IJPROJ,PPROJ,IDXTA,IREJ1)
5266 IF (IREJ1.GT.0) GOTO 1
5267 RETURN
5268 ELSE
5269 WRITE(LOUT,1001) IP,IT,EPROJ,EHADTH
5270 ENDIF
5271 ENDIF
5272 ELSE
5273* fixed threshold for onset of production via HADRIN
5274 IF (EPROJ.LE.EHADTH) THEN
5275 IF (IP.EQ.1) THEN
5276 CALL DT_HADCOL(IJPROJ,PPROJ,IDXTA,IREJ1)
5277 IF (IREJ1.GT.0) GOTO 1
5278 RETURN
5279 ELSE
5280 WRITE(LOUT,1001) IP,IT,EPROJ,EHADTH
5281 ENDIF
5282 ENDIF
5283 ENDIF
5284 ENDIF
5285 1001 FORMAT(1X,'KKEVNT: warning! interaction of proj. (m=',
5286 & I3,') with target (m=',I3,')',/,11X,
5287 & 'at E_lab=',F5.1,'GeV (threshold-energy: ',F3.1,
5288 & 'GeV) cannot be handled')
5289
5290* sampling of momentum-x fractions & flavors of chain ends
5291 CALL DT_SPLPTN(NN)
5292
5293* Lorentz-transformation of wounded nucleons into nucl.-nucl. cms
5294 CALL DT_NUC2CM
5295
5296* collect momenta of chain ends and put them into DTEVT1
5297 CALL DT_GETPTN(IP,NN,NCSY,IREJ1)
5298 IF (IREJ1.NE.0) GOTO 1
5299
5300 ENDIF
5301
5302* handle chains including fragmentation (two-chain approximation)
5303 IF (MCGENE.EQ.1) THEN
5304* two-chain approximation
5305 CALL DT_EVENTA(IJPROJ,IP,IT,NCSY,IREJ1)
5306 IF (IREJ1.NE.0) THEN
5307 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKEVNT'
5308 GOTO 1
5309 ENDIF
5310 ELSEIF (MCGENE.EQ.2) THEN
5311* multiple-Po exchange including minijets
5312 CALL DT_EVENTB(NCSY,IREJ1)
5313 IF (IREJ1.NE.0) THEN
5314 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKEVNT'
5315 GOTO 1
5316 ENDIF
5317 ELSEIF (MCGENE.EQ.3) THEN
5318 STOP ' This version does not contain LEPTO !'
5319 ELSEIF (MCGENE.EQ.4) THEN
5320* quasi-elastic neutrino scattering
5321 CALL DT_EVENTD(IREJ1)
5322 IF (IREJ1.NE.0) THEN
5323 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 4 in KKEVNT'
5324 GOTO 1
5325 ENDIF
5326 ELSE
5327 WRITE(LOUT,1002) MCGENE
5328 1002 FORMAT(1X,'KKEVNT: warning! event-generator',I4,
5329 & ' not available - program stopped')
5330 STOP
5331 ENDIF
5332
5333 RETURN
5334
5335 9999 CONTINUE
5336 IREJ = 1
5337 RETURN
5338 END
5339
5340*$ CREATE DT_CHKCEN.FOR
5341*COPY DT_CHKCEN
5342*
5343*===chkcen=============================================================*
5344*
5345 SUBROUTINE DT_CHKCEN(IP,IT,NP,NT,IBACK)
5346
5347************************************************************************
5348* Check of number of involved projectile nucleons if central production*
5349* is requested. *
5350* Adopted from a part of the old KKEVT routine which was written by *
5351* J. Ranft/H.-J.Moehring. *
5352* This version dated 13.01.95 is written by S. Roesler *
5353************************************************************************
5354
5355 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5356 SAVE
5357 PARAMETER ( LINP = 10 ,
5358 & LOUT = 6 ,
5359 & LDAT = 9 )
5360
5361* statistics
5362 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5363 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5364 & ICEVTG(8,0:30)
5365* central particle production, impact parameter biasing
5366 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5367
5368 IBACK = 0
5369
5370* old version
5371 IF (ICENTR.EQ.2) THEN
5372 IF (IP.LT.IT) THEN
5373 IF (IP.LE.8) THEN
5374 IF (NP.LT.IP-1) IBACK = 1
5375 ELSEIF (IP.LE.16) THEN
5376 IF (NP.LT.IP-2) IBACK = 1
5377 ELSEIF (IP.LE.32) THEN
5378 IF (NP.LT.IP-3) IBACK = 1
5379 ELSEIF (IP.GE.33) THEN
5380 IF (NP.LT.IP-5) IBACK = 1
5381 ENDIF
5382 ELSEIF (IP.EQ.IT) THEN
5383 IF (IP.EQ.32) THEN
5384 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5385 ELSE
5386 IF (NP.LT.IP-IP/8) IBACK = 1
5387 ENDIF
5388 ELSEIF (ABS(IP-IT).LT.3) THEN
5389 IF (NP.LT.IP-IP/8) IBACK = 1
5390 ENDIF
5391 ELSE
5392* new version (DPMJET, 5.6.99)
5393 IF (IP.LT.IT) THEN
5394 IF (IP.LE.8) THEN
5395 IF (NP.LT.IP-1) IBACK = 1
5396 ELSEIF (IP.LE.16) THEN
5397 IF (NP.LT.IP-2) IBACK = 1
5398 ELSEIF (IP.LT.32) THEN
5399 IF (NP.LT.IP-3) IBACK = 1
5400 ELSEIF (IP.GE.32) THEN
5401 IF (IT.LE.150) THEN
5402* Example: S-Ag
5403 IF (NP.LT.IP-1) IBACK = 1
5404 ELSE
5405* Example: S-Au
5406 IF (NP.LT.IP) IBACK = 1
5407 ENDIF
5408 ENDIF
5409 ELSEIF (IP.EQ.IT) THEN
5410* Example: S-S
5411 IF (IP.EQ.32) THEN
5412 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5413* Example: Pb-Pb
5414 ELSE
5415 IF (NP.LT.IP-IP/4) IBACK = 1
5416 ENDIF
5417 ELSEIF (ABS(IP-IT).LT.3) THEN
5418 IF (NP.LT.IP-IP/8) IBACK = 1
5419 ENDIF
5420 ENDIF
5421
5422 ICCPRO = ICCPRO+1
5423
5424 RETURN
5425 END
5426
5427*$ CREATE DT_ININUC.FOR
5428*COPY DT_ININUC
5429*
5430*===ininuc=============================================================*
5431*
5432 SUBROUTINE DT_ININUC(ID,NMASS,NCH,COORD,JS,IMODE)
5433
5434************************************************************************
5435* Samples initial configuration of nucleons in nucleus with mass NMASS *
5436* including Fermi-momenta (if reqested). *
5437* ID BAMJET-code for hadrons (instead of nuclei) *
5438* NMASS mass number of nucleus (number of nucleons) *
5439* NCH charge of nucleus *
5440* COORD(3,NMASS) coordinates of nucleons inside nucleus in fm *
5441* JS(NMASS) > 0 nucleon undergoes nucleon-nucleon interact. *
5442* IMODE = 1 projectile nucleus *
5443* = 2 target nucleus *
5444* = 3 target nucleus (E_lab<E_thr for HADRIN) *
5445* Adopted from a part of the old KKEVT routine which was written by *
5446* J. Ranft/H.-J.Moehring. *
5447* This version dated 13.01.95 is written by S. Roesler *
5448************************************************************************
5449
5450 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5451 SAVE
5452 PARAMETER ( LINP = 10 ,
5453 & LOUT = 6 ,
5454 & LDAT = 9 )
5455 PARAMETER (FM2MM=1.0D-12)
5456
5457 PARAMETER ( MAXNCL = 260,
5458 & MAXVQU = MAXNCL,
5459 & MAXSQU = 20*MAXVQU,
5460 & MAXINT = MAXVQU+MAXSQU)
5461* event history
5462 PARAMETER (NMXHKK=200000)
5463 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5464 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5465 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5466* extended event history
5467 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5468 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5469 & IHIST(2,NMXHKK)
5470* flags for input different options
5471 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5472 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5473 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5474* auxiliary common for chain system storage (DTUNUC 1.x)
5475 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5476* nuclear potential
5477 LOGICAL LFERMI
5478 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5479 & EBINDP(2),EBINDN(2),EPOT(2,210),
5480 & ETACOU(2),ICOUL,LFERMI
5481* properties of photon/lepton projectiles
5482 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5483* particle properties (BAMJET index convention)
5484 CHARACTER*8 ANAME
5485 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5486 & IICH(210),IIBAR(210),K1(210),K2(210)
5487* Glauber formalism: collision properties
5488 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5489 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5490* flavors of partons (DTUNUC 1.x)
5491 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5492 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5493 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5494 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5495 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5496 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5497 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5498* interface HADRIN-DPM
5499 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5500
5501 DIMENSION PF(4),PFTOT(4),COORD(3,MAXNCL),JS(MAXNCL)
5502
5503* number of neutrons
5504 NNEU = NMASS-NCH
5505* initializations
5506 NP = 0
5507 NN = 0
5508 DO 1 K=1,4
5509 PFTOT(K) = 0.0D0
5510 1 CONTINUE
5511 MODE = IMODE
5512 IF (IMODE.GT.2) MODE = 2
5513**sr 29.5. new NPOINT(1)-definition
5514C IF (IMODE.GE.2) NPOINT(1) = NHKK+1
5515**
5516 NHADRI = 0
5517 NC = NHKK
5518
5519* get initial configuration
5520 DO 2 I=1,NMASS
5521 NHKK = NHKK+1
5522 IF (JS(I).GT.0) THEN
5523 ISTHKK(NHKK) = 10+MODE
5524 IF (IMODE.EQ.3) THEN
5525* additional treatment if HADRIN-generator is requested
5526 NHADRI = NHADRI+1
5527 IF (NHADRI.EQ.1) IDXTA = NHKK
5528 IF (NHADRI.GT.1) ISTHKK(NHKK) = 14
5529 ENDIF
5530 ELSE
5531 ISTHKK(NHKK) = 12+MODE
5532 ENDIF
5533 IF (NMASS.GE.2) THEN
5534* treatment for nuclei
5535 FRAC = 1.0D0-DBLE(NCH)/DBLE(NMASS)
5536 RR = DT_RNDM(FRAC)
5537 IF ((RR.LT.FRAC).AND.(NN.LT.NNEU)) THEN
5538 IDX = 8
5539 NN = NN+1
5540 ELSEIF ((RR.GE.FRAC).AND.(NP.LT.NCH)) THEN
5541 IDX = 1
5542 NP = NP+1
5543 ELSEIF (NN.LT.NNEU) THEN
5544 IDX = 8
5545 NN = NN+1
5546 ELSEIF (NP.LT.NCH) THEN
5547 IDX = 1
5548 NP = NP+1
5549 ENDIF
5550 IDHKK(NHKK) = IDT_IPDGHA(IDX)
5551 IDBAM(NHKK) = IDX
5552 IF (MODE.EQ.1) THEN
5553 IPOSP(I) = NHKK
5554 KKPROJ(I) = IDX
5555 ELSE
5556 IPOST(I) = NHKK
5557 KKTARG(I) = IDX
5558 ENDIF
5559 IF (IDX.EQ.1) THEN
5560 PFER = PFERMP(MODE)
5561 PBIN = SQRT(2.0D0*EBINDP(MODE)*AAM(1))
5562 ELSE
5563 PFER = PFERMN(MODE)
5564 PBIN = SQRT(2.0D0*EBINDN(MODE)*AAM(8))
5565 ENDIF
5566 CALL DT_FER4M(PFER,PBIN,PF(1),PF(2),PF(3),PF(4),IDX)
5567 DO 3 K=1,4
5568 PFTOT(K) = PFTOT(K)+PF(K)
5569 PHKK(K,NHKK) = PF(K)
5570 3 CONTINUE
5571 PHKK(5,NHKK) = AAM(IDX)
5572 ELSE
5573* treatment for hadrons
5574 IDHKK(NHKK) = IDT_IPDGHA(ID)
5575 IDBAM(NHKK) = ID
5576 PHKK(4,NHKK) = AAM(ID)
5577 PHKK(5,NHKK) = AAM(ID)
5578C* VDM assumption
5579C IF (IDHKK(NHKK).EQ.22) THEN
5580C PHKK(4,NHKK) = AAM(33)
5581C PHKK(5,NHKK) = AAM(33)
5582C ENDIF
5583 IF (MODE.EQ.1) THEN
5584 IPOSP(I) = NHKK
5585 KKPROJ(I) = ID
5586 PHKK(5,NHKK) = PHKK(5,NHKK)-SQRT(VIRT)
5587 ELSE
5588 IPOST(I) = NHKK
5589 KKTARG(I) = ID
5590 ENDIF
5591 ENDIF
5592 DO 4 K=1,3
5593 VHKK(K,NHKK) = COORD(K,I)*FM2MM
5594 WHKK(K,NHKK) = COORD(K,I)*FM2MM
5595 4 CONTINUE
5596 IF (MODE.EQ.2) VHKK(1,NHKK) = VHKK(1,NHKK)+BIMPAC*FM2MM
5597 IF (MODE.EQ.2) WHKK(1,NHKK) = WHKK(1,NHKK)+BIMPAC*FM2MM
5598 VHKK(4,NHKK) = 0.0D0
5599 WHKK(4,NHKK) = 0.0D0
5600 2 CONTINUE
5601
5602* balance Fermi-momenta
5603 IF (NMASS.GE.2) THEN
5604 DO 5 I=1,NMASS
5605 NC = NC+1
5606 DO 6 K=1,3
5607 PHKK(K,NC) = PHKK(K,NC)-PFTOT(K)/DBLE(NMASS)
5608 6 CONTINUE
5609 PHKK(4,NC) = SQRT(PHKK(5,NC)**2+PHKK(1,NC)**2+
5610 & PHKK(2,NC)**2+PHKK(3,NC)**2)
5611 5 CONTINUE
5612 ENDIF
5613
5614 RETURN
5615 END
5616
5617*$ CREATE DT_FER4M.FOR
5618*COPY DT_FER4M
5619*
5620*===fer4m==============================================================*
5621*
5622 SUBROUTINE DT_FER4M(PFERM,PBIND,PXT,PYT,PZT,ET,KT)
5623
5624************************************************************************
5625* Sampling of nucleon Fermi-momenta from distributions at T=0. *
5626* processed by S. Roesler, 17.10.95 *
5627************************************************************************
5628
5629 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5630 SAVE
5631 PARAMETER ( LINP = 10 ,
5632 & LOUT = 6 ,
5633 & LDAT = 9 )
5634
5635 LOGICAL LSTART
5636
5637* particle properties (BAMJET index convention)
5638 CHARACTER*8 ANAME
5639 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5640 & IICH(210),IIBAR(210),K1(210),K2(210)
5641* nuclear potential
5642 LOGICAL LFERMI
5643 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5644 & EBINDP(2),EBINDN(2),EPOT(2,210),
5645 & ETACOU(2),ICOUL,LFERMI
5646
5647 DATA LSTART /.TRUE./
5648
5649 ILOOP = 0
5650 IF (LFERMI) THEN
5651 IF (LSTART) THEN
5652 WRITE(LOUT,1000)
5653 1000 FORMAT(/,1X,'FER4M: sampling of Fermi-momenta activated')
5654 LSTART = .FALSE.
5655 ENDIF
5656 1 CONTINUE
5657 CALL DT_DFERMI(PABS)
5658 PABS = PFERM*PABS
5659C IF (PABS.GE.PBIND) THEN
5660C ILOOP = ILOOP+1
5661C IF (MOD(ILOOP,500).EQ.0) THEN
5662C WRITE(LOUT,1001) PABS,PBIND,ILOOP
5663C1001 FORMAT(1X,'FER4M: Fermi-mom. corr. for binding',
5664C & ' energy ',2E12.3,I6)
5665C ENDIF
5666C GOTO 1
5667C ENDIF
5668 CALL DT_DPOLI(POLC,POLS)
5669 CALL DT_DSFECF(SFE,CFE)
5670 CXTA = POLS*CFE
5671 CYTA = POLS*SFE
5672 CZTA = POLC
5673 ET = SQRT(PABS*PABS+AAM(KT)**2)
5674 PXT = CXTA*PABS
5675 PYT = CYTA*PABS
5676 PZT = CZTA*PABS
5677 ELSE
5678 ET = AAM(KT)
5679 PXT = 0.0D0
5680 PYT = 0.0D0
5681 PZT = 0.0D0
5682 ENDIF
5683
5684 RETURN
5685 END
5686
5687*$ CREATE DT_NUC2CM.FOR
5688*COPY DT_NUC2CM
5689*
5690*===nuc2cm=============================================================*
5691*
5692 SUBROUTINE DT_NUC2CM
5693
5694************************************************************************
5695* Lorentz-transformation of all wounded nucleons from Lab. to nucl.- *
5696* nucl. cms. (This subroutine replaces NUCMOM.) *
5697* This version dated 15.01.95 is written by S. Roesler *
5698************************************************************************
5699
5700 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5701 SAVE
5702 PARAMETER ( LINP = 10 ,
5703 & LOUT = 6 ,
5704 & LDAT = 9 )
5705 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
5706
5707* event history
5708 PARAMETER (NMXHKK=200000)
5709 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5710 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5711 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5712* extended event history
5713 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5714 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5715 & IHIST(2,NMXHKK)
5716* statistics
5717 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5718 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5719 & ICEVTG(8,0:30)
5720* properties of photon/lepton projectiles
5721 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5722* particle properties (BAMJET index convention)
5723 CHARACTER*8 ANAME
5724 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5725 & IICH(210),IIBAR(210),K1(210),K2(210)
5726* Glauber formalism: collision properties
5727 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5728 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5729**temporary
5730* statistics: Glauber-formalism
5731 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5732**
5733
5734 ICWP = 0
5735 ICWT = 0
5736 NWTACC = 0
5737 NWAACC = 0
5738 NWBACC = 0
5739
5740 NPOINT(1) = NHKK+1
5741 NEND = NHKK
5742 DO 1 I=1,NEND
5743 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.12)) THEN
5744 IF (ISTHKK(I).EQ.11) NWAACC = NWAACC+1
5745 IF (ISTHKK(I).EQ.12) NWBACC = NWBACC+1
5746 MODE = ISTHKK(I)-9
5747C IF (IDHKK(I).EQ.22) THEN
5748C* VDM assumption
5749C PEIN = AAM(33)
5750C IDB = 33
5751C ELSE
5752C PEIN = PHKK(4,I)
5753C IDB = IDBAM(I)
5754C ENDIF
5755C CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PEIN,
5756C & PX,PY,PZ,PE,IDB,MODE)
5757 IF (PHKK(5,I).GT.ZERO) THEN
5758 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
5759 & PX,PY,PZ,PE,IDBAM(I),MODE)
5760 ELSE
5761 PX = PGAMM(1)
5762 PY = PGAMM(2)
5763 PZ = PGAMM(3)
5764 PE = PGAMM(4)
5765 ENDIF
5766 IST = ISTHKK(I)-2
5767 ID = IDHKK(I)
5768C* VDM assumption
5769C IF (ID.EQ.22) ID = 113
5770 CALL DT_EVTPUT(IST,ID,I,0,PX,PY,PZ,PE,0,0,0)
5771 IF (ISTHKK(I).EQ.11) ICWP = ICWP+1
5772 IF (ISTHKK(I).EQ.12) ICWT = ICWT+1
5773 ENDIF
5774 1 CONTINUE
5775
5776 NWTACC = MAX(NWAACC,NWBACC)
5777 ICDPR = ICDPR+ICWP
5778 ICDTA = ICDTA+ICWT
5779**temporary
5780 IF ((ICWP.EQ.0).OR.(ICWT.EQ.0)) THEN
5781 CALL DT_EVTOUT(4)
5782 STOP
5783 ENDIF
5784
5785 RETURN
5786 END
5787
5788*$ CREATE DT_SPLPTN.FOR
5789*COPY DT_SPLPTN
5790*
5791*===splptn=============================================================*
5792*
5793 SUBROUTINE DT_SPLPTN(NN)
5794
5795************************************************************************
5796* SamPLing of ParToN momenta and flavors. *
5797* This version dated 15.01.95 is written by S. Roesler *
5798************************************************************************
5799
5800 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5801 SAVE
5802 PARAMETER ( LINP = 10 ,
5803 & LOUT = 6 ,
5804 & LDAT = 9 )
5805
5806* Lorentz-parameters of the current interaction
5807 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5808 & UMO,PPCM,EPROJ,PPROJ
5809
5810* sample flavors of sea-quarks
5811 CALL DT_SPLFLA(NN,1)
5812
5813* sample x-values of partons at chain ends
5814 ECM = UMO
5815 CALL DT_XKSAMP(NN,ECM)
5816
5817* samle flavors
5818 CALL DT_SPLFLA(NN,2)
5819
5820 RETURN
5821 END
5822
5823*$ CREATE DT_SPLFLA.FOR
5824*COPY DT_SPLFLA
5825*
5826*===splfla=============================================================*
5827*
5828 SUBROUTINE DT_SPLFLA(NN,MODE)
5829
5830************************************************************************
5831* SamPLing of FLAvors of partons at chain ends. *
5832* This subroutine replaces FLKSAA/FLKSAM. *
5833* NN number of nucleon-nucleon interactions *
5834* MODE = 1 sea-flavors *
5835* = 2 valence-flavors *
5836* Based on the original version written by J. Ranft/H.-J. Moehring. *
5837* This version dated 16.01.95 is written by S. Roesler *
5838************************************************************************
5839
5840 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5841 SAVE
5842 PARAMETER ( LINP = 10 ,
5843 & LOUT = 6 ,
5844 & LDAT = 9 )
5845
5846 PARAMETER ( MAXNCL = 260,
5847 & MAXVQU = MAXNCL,
5848 & MAXSQU = 20*MAXVQU,
5849 & MAXINT = MAXVQU+MAXSQU)
5850* flavors of partons (DTUNUC 1.x)
5851 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5852 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5853 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5854 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5855 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5856 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5857 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5858* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5859 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5860 & IXPV,IXPS,IXTV,IXTS,
5861 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5862 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5863 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5864 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5865 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5866 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5867 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5868 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5869* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5870 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5871 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5872* particle properties (BAMJET index convention)
5873 CHARACTER*8 ANAME
5874 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5875 & IICH(210),IIBAR(210),K1(210),K2(210)
5876* various options for treatment of partons (DTUNUC 1.x)
5877* (chain recombination, Cronin,..)
5878 LOGICAL LCO2CR,LINTPT
5879 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
5880 & LCO2CR,LINTPT
5881
5882 IF (MODE.EQ.1) THEN
5883* sea-flavors
5884 DO 1 I=1,NN
5885 IPSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5886 IPSAQ(I) = -IPSQ(I)
5887 1 CONTINUE
5888 DO 2 I=1,NN
5889 ITSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5890 ITSAQ(I)= -ITSQ(I)
5891 2 CONTINUE
5892 ELSEIF (MODE.EQ.2) THEN
5893* valence flavors
5894 DO 3 I=1,IXPV
5895 CALL DT_FLAHAD(KKPROJ(IFROVP(I)),IPVQ(I),IPPV1(I),IPPV2(I))
5896 3 CONTINUE
5897 DO 4 I=1,IXTV
5898 CALL DT_FLAHAD(KKTARG(IFROVT(I)),ITVQ(I),ITTV1(I),ITTV2(I))
5899 4 CONTINUE
5900 ENDIF
5901
5902 RETURN
5903 END
5904
5905*$ CREATE DT_GETPTN.FOR
5906*COPY DT_GETPTN
5907*
5908*===getptn=============================================================*
5909*
5910 SUBROUTINE DT_GETPTN(IP,NN,NCSY,IREJ)
5911
5912************************************************************************
5913* This subroutine collects partons at chain ends from temporary *
5914* commons and puts them into DTEVT1. *
5915* This version dated 15.01.95 is written by S. Roesler *
5916************************************************************************
5917
5918 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5919 SAVE
5920 PARAMETER ( LINP = 10 ,
5921 & LOUT = 6 ,
5922 & LDAT = 9 )
5923 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0)
5924
5925 LOGICAL LCHK
5926
5927 PARAMETER ( MAXNCL = 260,
5928 & MAXVQU = MAXNCL,
5929 & MAXSQU = 20*MAXVQU,
5930 & MAXINT = MAXVQU+MAXSQU)
5931* event history
5932 PARAMETER (NMXHKK=200000)
5933 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5934 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5935 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5936* extended event history
5937 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5938 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5939 & IHIST(2,NMXHKK)
5940* flags for input different options
5941 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5942 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5943 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5944* auxiliary common for chain system storage (DTUNUC 1.x)
5945 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5946* statistics
5947 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5948 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5949 & ICEVTG(8,0:30)
5950* flags for diffractive interactions (DTUNUC 1.x)
5951 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5952* x-values of partons (DTUNUC 1.x)
5953 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
5954 & XTVQ(MAXVQU),XTVD(MAXVQU),
5955 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
5956 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
5957* flavors of partons (DTUNUC 1.x)
5958 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5959 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5960 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5961 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5962 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5963 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5964 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5965* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5966 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5967 & IXPV,IXPS,IXTV,IXTS,
5968 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5969 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5970 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5971 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5972 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5973 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5974 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5975 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5976* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5977 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5978 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5979
5980 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PP(4),PT(4)
5981
5982 DATA AMSS,AMVS,AMDS,AMVD,AMVV/0.4D0,2.0D0,2.0D0,2.5D0,2.0D0/
5983
5984 IREJ = 0
5985 NCSY = 0
5986 NPOINT(2) = NHKK+1
5987
5988* sea-sea chains
5989 DO 10 I=1,NSS
5990 IF (ISKPCH(1,I).EQ.99) GOTO 10
5991 ICCHAI(1,1) = ICCHAI(1,1)+2
5992 IDXP = INTSS1(I)
5993 IDXT = INTSS2(I)
5994 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
5995 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
5996 DO 11 K=1,4
5997 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
5998 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
5999 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6000 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
6001 11 CONTINUE
6002 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6003 & +(PP1(3)+PT1(3))**2)
6004 ECH = PP1(4)+PT1(4)
6005 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6006 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6007 & +(PP2(3)+PT2(3))**2)
6008 ECH = PP2(4)+PT2(4)
6009 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6010 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6011 AM1 = SQRT(AM1)
6012 AM2 = SQRT(AM2)
6013 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMSS)) THEN
6014C WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6015 5000 FORMAT(1X,'incon. chain mass SS: ',2I5,2E10.3)
6016 ENDIF
6017 ELSE
6018 WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6019 ENDIF
6020 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6021 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6022 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6023 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6024 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6025 & 0,0,1)
6026 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6027 & 0,0,1)
6028 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6029 & 0,0,1)
6030 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6031 & 0,0,1)
6032 NCSY = NCSY+1
6033 10 CONTINUE
6034
6035* disea-sea chains
6036 DO 20 I=1,NDS
6037 IF (ISKPCH(2,I).EQ.99) GOTO 20
6038 ICCHAI(1,2) = ICCHAI(1,2)+2
6039 IDXP = INTDS1(I)
6040 IDXT = INTDS2(I)
6041 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6042 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6043 DO 21 K=1,4
6044 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6045 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6046 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6047 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6048 21 CONTINUE
6049 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6050 & +(PP1(3)+PT1(3))**2)
6051 ECH = PP1(4)+PT1(4)
6052 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6053 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6054 & +(PP2(3)+PT2(3))**2)
6055 ECH = PP2(4)+PT2(4)
6056 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6057 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6058 AM1 = SQRT(AM1)
6059 AM2 = SQRT(AM2)
6060 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6061C WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6062 5001 FORMAT(1X,'incon. chain mass DS: ',2I5,2E10.3)
6063 ENDIF
6064 ELSE
6065 WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6066 ENDIF
6067 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6068 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6069 IFT1 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6070 IFT2 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6071 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6072 & 0,0,2)
6073 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6074 & 0,0,2)
6075 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6076 & 0,0,2)
6077 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6078 & 0,0,2)
6079 NCSY = NCSY+1
6080 20 CONTINUE
6081
6082* sea-disea chains
6083 DO 30 I=1,NSD
6084 IF (ISKPCH(3,I).EQ.99) GOTO 30
6085 ICCHAI(1,3) = ICCHAI(1,3)+2
6086 IDXP = INTSD1(I)
6087 IDXT = INTSD2(I)
6088 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6089 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6090 DO 31 K=1,4
6091 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6092 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6093 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6094 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6095 31 CONTINUE
6096 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6097 & +(PP1(3)+PT1(3))**2)
6098 ECH = PP1(4)+PT1(4)
6099 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6100 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6101 & +(PP2(3)+PT2(3))**2)
6102 ECH = PP2(4)+PT2(4)
6103 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6104 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6105 AM1 = SQRT(AM1)
6106 AM2 = SQRT(AM2)
6107 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6108C WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6109 5002 FORMAT(1X,'incon. chain mass SD: ',2I5,2E10.3)
6110 ENDIF
6111 ELSE
6112 WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6113 ENDIF
6114 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6115 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6116 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6117 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6118 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6119 & 0,0,3)
6120 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6121 & 0,0,3)
6122 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6123 & 0,0,3)
6124 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6125 & 0,0,3)
6126 NCSY = NCSY+1
6127 30 CONTINUE
6128
6129* disea-valence chains
6130 DO 50 I=1,NDV
6131 IF (ISKPCH(5,I).EQ.99) GOTO 50
6132 ICCHAI(1,5) = ICCHAI(1,5)+2
6133 IDXP = INTDV1(I)
6134 IDXT = INTDV2(I)
6135 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6136 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6137 DO 51 K=1,4
6138 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6139 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6140 PT1(K) = XTVQ(IDXT) *PHKK(K,MOT)
6141 PT2(K) = XTVD(IDXT) *PHKK(K,MOT)
6142 51 CONTINUE
6143 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6144 & +(PP1(3)+PT1(3))**2)
6145 ECH = PP1(4)+PT1(4)
6146 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6147 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6148 & +(PP2(3)+PT2(3))**2)
6149 ECH = PP2(4)+PT2(4)
6150 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6151 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6152 AM1 = SQRT(AM1)
6153 AM2 = SQRT(AM2)
6154 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6155C WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6156 5003 FORMAT(1X,'incon. chain mass DV: ',2I5,2E10.3)
6157 ENDIF
6158 ELSE
6159 WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6160 ENDIF
6161 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6162 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6163 IFT1 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6164 IFT2 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6165 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6166 & 0,0,5)
6167 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6168 & 0,0,5)
6169 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6170 & 0,0,5)
6171 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6172 & 0,0,5)
6173 NCSY = NCSY+1
6174 50 CONTINUE
6175
6176* valence-sea chains
6177 DO 60 I=1,NVS
6178 IF (ISKPCH(6,I).EQ.99) GOTO 60
6179 ICCHAI(1,6) = ICCHAI(1,6)+2
6180 IDXP = INTVS1(I)
6181 IDXT = INTVS2(I)
6182 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6183 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6184 DO 61 K=1,4
6185 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6186 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6187 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6188 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
6189 61 CONTINUE
6190 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6191 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6192 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6193 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6194 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6195 IF (LCHK) THEN
6196 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6197 & 0,0,6)
6198 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6199 & 0,0,6)
6200 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6201 & 0,0,6)
6202 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6203 & 0,0,6)
6204 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6205 & +(PP1(3)+PT1(3))**2)
6206 ECH = PP1(4)+PT1(4)
6207 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6208 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6209 & +(PP2(3)+PT2(3))**2)
6210 ECH = PP2(4)+PT2(4)
6211 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6212 ELSE
6213 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6214 & 0,0,6)
6215 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6216 & 0,0,6)
6217 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6218 & 0,0,6)
6219 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6220 & 0,0,6)
6221 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6222 & +(PP1(3)+PT2(3))**2)
6223 ECH = PP1(4)+PT2(4)
6224 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6225 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6226 & +(PP2(3)+PT1(3))**2)
6227 ECH = PP2(4)+PT1(4)
6228 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6229 ENDIF
6230 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6231 AM1 = SQRT(AM1)
6232 AM2 = SQRT(AM2)
6233 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMVS)) THEN
6234C WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6235 5004 FORMAT(1X,'incon. chain mass VS: ',2I5,2E10.3)
6236 ENDIF
6237 ELSE
6238 WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6239 ENDIF
6240 NCSY = NCSY+1
6241 60 CONTINUE
6242
6243* sea-valence chains
6244 DO 40 I=1,NSV
6245 IF (ISKPCH(4,I).EQ.99) GOTO 40
6246 ICCHAI(1,4) = ICCHAI(1,4)+2
6247 IDXP = INTSV1(I)
6248 IDXT = INTSV2(I)
6249 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6250 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6251 DO 41 K=1,4
6252 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6253 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6254 PT1(K) = XTVD(IDXT) *PHKK(K,MOT)
6255 PT2(K) = XTVQ(IDXT) *PHKK(K,MOT)
6256 41 CONTINUE
6257 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6258 & +(PP1(3)+PT1(3))**2)
6259 ECH = PP1(4)+PT1(4)
6260 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6261 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6262 & +(PP2(3)+PT2(3))**2)
6263 ECH = PP2(4)+PT2(4)
6264 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6265 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6266 AM1 = SQRT(AM1)
6267 AM2 = SQRT(AM2)
6268 IF ((AM1.LT.AMVS).OR.(AM2.LT.AMSS)) THEN
6269C WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6270 5005 FORMAT(1X,'incon. chain mass SV: ',2I5,2E10.3)
6271 ENDIF
6272 ELSE
6273 WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6274 ENDIF
6275 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6276 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6277 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6278 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6279 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6280 & 0,0,4)
6281 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6282 & 0,0,4)
6283 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6284 & 0,0,4)
6285 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6286 & 0,0,4)
6287 NCSY = NCSY+1
6288 40 CONTINUE
6289
6290* valence-disea chains
6291 DO 70 I=1,NVD
6292 IF (ISKPCH(7,I).EQ.99) GOTO 70
6293 ICCHAI(1,7) = ICCHAI(1,7)+2
6294 IDXP = INTVD1(I)
6295 IDXT = INTVD2(I)
6296 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6297 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6298 DO 71 K=1,4
6299 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6300 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6301 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6302 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6303 71 CONTINUE
6304 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6305 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6306 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6307 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6308 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6309 IF (LCHK) THEN
6310 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6311 & 0,0,7)
6312 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6313 & 0,0,7)
6314 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6315 & 0,0,7)
6316 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6317 & 0,0,7)
6318 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6319 & +(PP1(3)+PT1(3))**2)
6320 ECH = PP1(4)+PT1(4)
6321 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6322 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6323 & +(PP2(3)+PT2(3))**2)
6324 ECH = PP2(4)+PT2(4)
6325 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6326 ELSE
6327 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6328 & 0,0,7)
6329 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6330 & 0,0,7)
6331 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6332 & 0,0,7)
6333 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6334 & 0,0,7)
6335 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6336 & +(PP1(3)+PT2(3))**2)
6337 ECH = PP1(4)+PT2(4)
6338 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6339 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6340 & +(PP2(3)+PT1(3))**2)
6341 ECH = PP2(4)+PT1(4)
6342 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6343 ENDIF
6344 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6345 AM1 = SQRT(AM1)
6346 AM2 = SQRT(AM2)
6347 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6348C WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6349 5006 FORMAT(1X,'incon. chain mass VD: ',2I5,2E10.3)
6350 ENDIF
6351 ELSE
6352 WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6353 ENDIF
6354 NCSY = NCSY+1
6355 70 CONTINUE
6356
6357* valence-valence chains
6358 DO 80 I=1,NVV
6359 IF (ISKPCH(8,I).EQ.99) GOTO 80
6360 ICCHAI(1,8) = ICCHAI(1,8)+2
6361 IDXP = INTVV1(I)
6362 IDXT = INTVV2(I)
6363 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6364 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6365 DO 81 K=1,4
6366 PP1(K) = XPVQ(IDXP)*PHKK(K,MOP)
6367 PP2(K) = XPVD(IDXP)*PHKK(K,MOP)
6368 PT1(K) = XTVD(IDXT)*PHKK(K,MOT)
6369 PT2(K) = XTVQ(IDXT)*PHKK(K,MOT)
6370 81 CONTINUE
6371 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6372 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6373 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6374 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6375
6376* check for diffractive event
6377 IDIFF = 0
6378 IF (((ISINGD.GT.0).OR.(IDOUBD.GT.0)).AND.
6379 & (IP.EQ.1).AND.(NN.EQ.1)) THEN
6380 DO 800 K=1,4
6381 PP(K) = PP1(K)+PP2(K)
6382 PT(K) = PT1(K)+PT2(K)
6383 800 CONTINUE
6384 ISTCK = NHKK
6385 CALL DT_DIFEVT(IFP1,IFP2,PP,MOP,
6386 & IFT1,IFT2,PT,MOT,IDIFF,NCSY,IREJ1)
6387C IF (IREJ1.NE.0) GOTO 9999
6388 IF (IREJ1.NE.0) THEN
6389 IDIFF = 0
6390 NHKK = ISTCK
6391 ENDIF
6392 ELSE
6393 IDIFF = 0
6394 ENDIF
6395
6396 IF (IDIFF.EQ.0) THEN
6397* valence-valence chain system
6398 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6399 IF (LCHK) THEN
6400* baryon-baryon
6401 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6402 & PP1(1),PP1(2),PP1(3),PP1(4),0,0,8)
6403 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6404 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6405 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6406 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6407 CALL DT_EVTPUT(-22,IFT2,MOT,0,
6408 & PT2(1),PT2(2),PT2(3),PT2(4),0,0,8)
6409 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6410 & +(PP1(3)+PT1(3))**2)
6411 ECH = PP1(4)+PT1(4)
6412 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6413 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6414 & +(PP2(3)+PT2(3))**2)
6415 ECH = PP2(4)+PT2(4)
6416 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6417 ELSE
6418* antibaryon-baryon
6419 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6420 & PP1(1),PP1(2),PP1(3),PP1(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 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6424 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6425 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6426 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6427 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6428 & +(PP1(3)+PT2(3))**2)
6429 ECH = PP1(4)+PT2(4)
6430 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6431 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6432 & +(PP2(3)+PT1(3))**2)
6433 ECH = PP2(4)+PT1(4)
6434 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6435 ENDIF
6436 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6437 AM1 = SQRT(AM1)
6438 AM2 = SQRT(AM2)
6439 IF ((AM1.LT.AMVV).OR.(AM2.LT.AMVV)) THEN
6440C WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6441 5007 FORMAT(1X,'incon. chain mass VV: ',2I5,2E10.3)
6442 ENDIF
6443 ELSE
6444 WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6445 ENDIF
6446 NCSY = NCSY+1
6447 ENDIF
6448 80 CONTINUE
6449 IF (ISTHKK(NPOINT(2)).EQ.1) NPOINT(2) = NPOINT(2)+1
6450
6451* energy-momentum & flavor conservation check
6452 IF (ABS(IDIFF).NE.1) THEN
6453 IF (IDIFF.NE.0) THEN
6454 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-41,1,0,
6455 & 1,3,10,IREJ)
6456 ELSE
6457 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-31,-32,0,
6458 & 1,3,10,IREJ)
6459 ENDIF
6460 IF (IREJ.NE.0) THEN
6461 CALL DT_EVTOUT(4)
6462 STOP
6463 ENDIF
6464 ENDIF
6465
6466 RETURN
6467
6468 9999 CONTINUE
6469 IREJ = 1
6470 RETURN
6471 END
6472
6473*$ CREATE DT_CHKCSY.FOR
6474*COPY DT_CHKCSY
6475*
6476*===chkcsy=============================================================*
6477*
6478 SUBROUTINE DT_CHKCSY(ID1,ID2,LCHK)
6479
6480************************************************************************
6481* CHeCk Chain SYstem for consistency of partons at chain ends. *
6482* ID1,ID2 PDG-numbers of partons at chain ends *
6483* LCHK = .true. consistent chain *
6484* = .false. inconsistent chain *
6485* This version dated 18.01.95 is written by S. Roesler *
6486************************************************************************
6487
6488 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6489 SAVE
6490 PARAMETER ( LINP = 10 ,
6491 & LOUT = 6 ,
6492 & LDAT = 9 )
6493
6494 LOGICAL LCHK
6495
6496 LCHK = .TRUE.
6497
6498* q-aq chain
6499 IF ((ABS(ID1).LE.6).AND.(ABS(ID2).LE.6)) THEN
6500 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6501* q-qq, aq-aqaq chain
6502 ELSEIF (((ABS(ID1).LE.6).AND.(ABS(ID2).GT.6)).OR.
6503 & ((ABS(ID1).GT.6).AND.(ABS(ID2).LE.6))) THEN
6504 IF (ID1*ID2.LT.0) LCHK = .FALSE.
6505* qq-aqaq chain
6506 ELSEIF ((ABS(ID1).GT.6).AND.(ABS(ID2).GT.6)) THEN
6507 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6508 ENDIF
6509
6510 RETURN
6511 END
6512
6513*$ CREATE DT_EVENTA.FOR
6514*COPY DT_EVENTA
6515*
6516*===eventa=============================================================*
6517*
6518 SUBROUTINE DT_EVENTA(ID,IP,IT,NCSY,IREJ)
6519
6520************************************************************************
6521* Treatment of nucleon-nucleon interactions in a two-chain *
6522* approximation. *
6523* (input) ID BAMJET-index of projectile hadron (in case of *
6524* h-K scattering) *
6525* IP/IT mass number of projectile/target nucleus *
6526* NCSY number of two chain systems *
6527* IREJ rejection flag *
6528* This version dated 15.01.95 is written by S. Roesler *
6529************************************************************************
6530
6531 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6532 SAVE
6533 PARAMETER ( LINP = 10 ,
6534 & LOUT = 6 ,
6535 & LDAT = 9 )
6536 PARAMETER (TINY10=1.0D-10)
6537
6538* event history
6539 PARAMETER (NMXHKK=200000)
6540 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6541 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6542 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6543* extended event history
6544 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6545 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6546 & IHIST(2,NMXHKK)
6547* rejection counter
6548 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6549 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6550 & IREXCI(3),IRDIFF(2),IRINC
6551* flags for diffractive interactions (DTUNUC 1.x)
6552 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6553* particle properties (BAMJET index convention)
6554 CHARACTER*8 ANAME
6555 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
6556 & IICH(210),IIBAR(210),K1(210),K2(210)
6557* flags for input different options
6558 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6559 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6560 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6561* various options for treatment of partons (DTUNUC 1.x)
6562* (chain recombination, Cronin,..)
6563 LOGICAL LCO2CR,LINTPT
6564 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
6565 & LCO2CR,LINTPT
6566
6567 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
6568
6569 IREJ = 0
6570 NPOINT(3) = NHKK+1
6571
6572* skip following treatment for low-mass diffraction
6573 IF (ABS(IFLAGD).EQ.1) THEN
6574 NPOINT(3) = NPOINT(2)
6575 GOTO 5
6576 ENDIF
6577
6578* multiple scattering of chain ends
6579 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
6580 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
6581
6582 NC = NPOINT(2)
6583* get a two-chain system from DTEVT1
6584 DO 3 I=1,NCSY
6585 IFP1 = IDHKK(NC)
6586 IFT1 = IDHKK(NC+1)
6587 IFP2 = IDHKK(NC+2)
6588 IFT2 = IDHKK(NC+3)
6589 DO 4 K=1,4
6590 PP1(K) = PHKK(K,NC)
6591 PT1(K) = PHKK(K,NC+1)
6592 PP2(K) = PHKK(K,NC+2)
6593 PT2(K) = PHKK(K,NC+3)
6594 4 CONTINUE
6595 MOP1 = NC
6596 MOT1 = NC+1
6597 MOP2 = NC+2
6598 MOT2 = NC+3
6599 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
6600 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
6601 IF (IREJ1.GT.0) THEN
6602 IRHHA = IRHHA+1
6603 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTA'
6604 GOTO 9999
6605 ENDIF
6606 NC = NC+4
6607 3 CONTINUE
6608
6609* meson/antibaryon projectile:
6610* sample single-chain valence-valence systems (Reggeon contrib.)
6611 IF ((IP.EQ.1).AND.(ISICHA.EQ.1)) THEN
6612 IF (IIBAR(ID).LE.0) CALL DT_VV2SCH
6613 ENDIF
6614
6615 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6616* check DTEVT1 for remaining resonance mass corrections
6617 CALL DT_EVTRES(IREJ1)
6618 IF (IREJ1.GT.0) THEN
6619 IRRES(1) = IRRES(1)+1
6620 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in EVENTA'
6621 GOTO 9999
6622 ENDIF
6623 ENDIF
6624
6625* assign p_t to two-"chain" systems consisting of two resonances only
6626* since only entries for chains will be affected, this is obsolete
6627* in case of JETSET-fragmetation
6628 CALL DT_RESPT
6629
6630* combine q-aq chains to color ropes (qq-aqaq) (chain fusion)
6631 IF (LCO2CR) CALL DT_COM2CR
6632
6633 5 CONTINUE
6634
6635* fragmentation of the complete event
6636**uncomment for internal phojet-fragmentation
6637C CALL DT_EVTFRA(IREJ1)
6638 CALL DT_EVTFRG(2,IDUM,NPYMEM,IREJ1)
6639 IF (IREJ1.GT.0) THEN
6640 IRFRAG = IRFRAG+1
6641 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 3 in EVENTA'
6642 GOTO 9999
6643 ENDIF
6644
6645* decay of possible resonances (should be obsolete)
6646 CALL DT_DECAY1
6647
6648 RETURN
6649
6650 9999 CONTINUE
6651 IREVT = IREVT+1
6652 IREJ = 1
6653 RETURN
6654 END
6655
6656*$ CREATE DT_GETCSY.FOR
6657*COPY DT_GETCSY
6658*
6659*===getcsy=============================================================*
6660*
6661 SUBROUTINE DT_GETCSY(IFPR1,PP1,MOP1,IFPR2,PP2,MOP2,
6662 & IFTA1,PT1,MOT1,IFTA2,PT2,MOT2,IREJ)
6663
6664************************************************************************
6665* This version dated 15.01.95 is written by S. Roesler *
6666************************************************************************
6667
6668 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6669 SAVE
6670 PARAMETER ( LINP = 10 ,
6671 & LOUT = 6 ,
6672 & LDAT = 9 )
6673 PARAMETER (TINY10=1.0D-10)
6674
6675* event history
6676 PARAMETER (NMXHKK=200000)
6677 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6678 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6679 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6680* extended event history
6681 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6682 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6683 & IHIST(2,NMXHKK)
6684* rejection counter
6685 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6686 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6687 & IREXCI(3),IRDIFF(2),IRINC
6688* flags for input different options
6689 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6690 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6691 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6692* flags for diffractive interactions (DTUNUC 1.x)
6693 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6694
6695 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),
6696 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),PCH1(4),PCH2(4)
6697
6698 IREJ = 0
6699
6700* get quark content of partons
6701 DO 1 I=1,2
6702 IFP1(I) = 0
6703 IFP2(I) = 0
6704 IFT1(I) = 0
6705 IFT2(I) = 0
6706 1 CONTINUE
6707 IFP1(1) = IDT_IPDG2B(IFPR1,1,2)
6708 IF (ABS(IFPR1).GE.1000) IFP1(2) = IDT_IPDG2B(IFPR1,2,2)
6709 IFP2(1) = IDT_IPDG2B(IFPR2,1,2)
6710 IF (ABS(IFPR2).GE.1000) IFP2(2) = IDT_IPDG2B(IFPR2,2,2)
6711 IFT1(1) = IDT_IPDG2B(IFTA1,1,2)
6712 IF (ABS(IFTA1).GE.1000) IFT1(2) = IDT_IPDG2B(IFTA1,2,2)
6713 IFT2(1) = IDT_IPDG2B(IFTA2,1,2)
6714 IF (ABS(IFTA2).GE.1000) IFT2(2) = IDT_IPDG2B(IFTA2,2,2)
6715
6716* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq, 3 - qq-aqaq)
6717 IDCH1 = 2
6718 IF ((IFP1(2).EQ.0).AND.(IFT1(2).EQ.0)) IDCH1 = 1
6719 IF ((IFP1(2).NE.0).AND.(IFT1(2).NE.0)) IDCH1 = 3
6720 IDCH2 = 2
6721 IF ((IFP2(2).EQ.0).AND.(IFT2(2).EQ.0)) IDCH2 = 1
6722 IF ((IFP2(2).NE.0).AND.(IFT2(2).NE.0)) IDCH2 = 3
6723
6724* store initial configuration for energy-momentum cons. check
6725 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IDUM)
6726
6727* sample intrinsic p_t at chain-ends
6728 CALL DT_GETSPT(PP1,IFPR1,IFP1,PP2,IFPR2,IFP2,
6729 & PT1,IFTA1,IFT1,PT2,IFTA2,IFT2,
6730 & AMCH1,IDCH1,AMCH2,IDCH2,IDCH(MOP1),IREJ1)
6731 IF (IREJ1.NE.0) THEN
6732 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in GETCSY'
6733 IRPT = IRPT+1
6734 GOTO 9999
6735 ENDIF
6736
6737C IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6738C IF ((IDCH1.EQ.3).OR.((IDCH1.GT.1).AND.(IDCH2.EQ.1))) THEN
6739C* check second chain for resonance
6740C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6741C & AMCH2,AMCH2N,IDCH2,IREJ1)
6742C IF (IREJ1.NE.0) GOTO 9999
6743C IF (IDR2.NE.0) THEN
6744C CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6745C & AMCH2,AMCH2N,AMCH1,IREJ1)
6746C IF (IREJ1.NE.0) GOTO 9999
6747C ENDIF
6748C* check first chain for resonance
6749C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6750C & AMCH1,AMCH1N,IDCH1,IREJ1)
6751C IF (IREJ1.NE.0) GOTO 9999
6752C IF (IDR1.NE.0) IDR1 = 100*IDR1
6753C ELSE
6754C* check first chain for resonance
6755C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6756C & AMCH1,AMCH1N,IDCH1,IREJ1)
6757C IF (IREJ1.NE.0) GOTO 9999
6758C IF (IDR1.NE.0) THEN
6759C CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6760C & AMCH1,AMCH1N,AMCH2,IREJ1)
6761C IF (IREJ1.NE.0) GOTO 9999
6762C ENDIF
6763C* check second chain for resonance
6764C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6765C & AMCH2,AMCH2N,IDCH2,IREJ1)
6766C IF (IREJ1.NE.0) GOTO 9999
6767C IF (IDR2.NE.0) IDR2 = 100*IDR2
6768C ENDIF
6769C ENDIF
6770
6771 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6772* check chains for resonances
6773 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6774 & AMCH1,AMCH1N,IDCH1,IREJ1)
6775 IF (IREJ1.NE.0) GOTO 9999
6776 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6777 & AMCH2,AMCH2N,IDCH2,IREJ1)
6778 IF (IREJ1.NE.0) GOTO 9999
6779* change kinematics corresponding to resonance-masses
6780 IF ( (IDR1.NE.0).AND.(IDR2.EQ.0) ) THEN
6781 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6782 & AMCH1,AMCH1N,AMCH2,IREJ1)
6783 IF (IREJ1.GT.0) GOTO 9999
6784 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6785 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6786 & AMCH2,AMCH2N,IDCH2,IREJ1)
6787 IF (IREJ1.NE.0) GOTO 9999
6788 IF (IDR2.NE.0) IDR2 = 100*IDR2
6789 ELSEIF ( (IDR1.EQ.0).AND.(IDR2.NE.0) ) THEN
6790 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6791 & AMCH2,AMCH2N,AMCH1,IREJ1)
6792 IF (IREJ1.GT.0) GOTO 9999
6793 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6794 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6795 & AMCH1,AMCH1N,IDCH1,IREJ1)
6796 IF (IREJ1.NE.0) GOTO 9999
6797 IF (IDR1.NE.0) IDR1 = 100*IDR1
6798 ELSEIF ( (IDR1.NE.0).AND.(IDR2.NE.0) ) THEN
6799 AMDIF1 = ABS(AMCH1-AMCH1N)
6800 AMDIF2 = ABS(AMCH2-AMCH2N)
6801 IF (AMDIF2.LT.AMDIF1) THEN
6802 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6803 & AMCH2,AMCH2N,AMCH1,IREJ1)
6804 IF (IREJ1.GT.0) GOTO 9999
6805 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6806 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),
6807 & IDR1,IDXR1,AMCH1,AMCH1N,IDCH1,IREJ1)
6808 IF (IREJ1.NE.0) GOTO 9999
6809 IF (IDR1.NE.0) IDR1 = 100*IDR1
6810 ELSE
6811 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6812 & AMCH1,AMCH1N,AMCH2,IREJ1)
6813 IF (IREJ1.GT.0) GOTO 9999
6814 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6815 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),
6816 & IDR2,IDXR2,AMCH2,AMCH2N,IDCH2,IREJ1)
6817 IF (IREJ1.NE.0) GOTO 9999
6818 IF (IDR2.NE.0) IDR2 = 100*IDR2
6819 ENDIF
6820 ENDIF
6821 ENDIF
6822
6823* store final configuration for energy-momentum cons. check
6824 IF (LEMCCK) THEN
6825 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IDUM)
6826 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
6827 IF (IREJ1.NE.0) GOTO 9999
6828 ENDIF
6829
6830* put partons and chains into DTEVT1
6831 DO 10 I=1,4
6832 PCH1(I) = PP1(I)+PT1(I)
6833 PCH2(I) = PP2(I)+PT2(I)
6834 10 CONTINUE
6835 CALL DT_EVTPUT(-ISTHKK(MOP1),IFPR1,MOP1,0,PP1(1),PP1(2),
6836 & PP1(3),PP1(4),0,0,0)
6837 CALL DT_EVTPUT(-ISTHKK(MOT1),IFTA1,MOT1,0,PT1(1),PT1(2),
6838 & PT1(3),PT1(4),0,0,0)
6839 KCH = 100+IDCH(MOP1)*10+1
6840 CALL DT_EVTPUT(KCH,88888,-2,-1,
6841 & PCH1(1),PCH1(2),PCH1(3),PCH1(4),IDR1,IDXR1,IDCH(MOP1))
6842 CALL DT_EVTPUT(-ISTHKK(MOP2),IFPR2,MOP2,0,PP2(1),PP2(2),
6843 & PP2(3),PP2(4),0,0,0)
6844 CALL DT_EVTPUT(-ISTHKK(MOT2),IFTA2,MOT2,0,PT2(1),PT2(2),
6845 & PT2(3),PT2(4),0,0,0)
6846 KCH = KCH+1
6847 CALL DT_EVTPUT(KCH,88888,-2,-1,
6848 & PCH2(1),PCH2(2),PCH2(3),PCH2(4),IDR2,IDXR2,IDCH(MOP2))
6849
6850 RETURN
6851
6852 9999 CONTINUE
6853 IF ((IDCH(MOP1).LE.3).AND.(IDCH(MOP2).LE.3)) THEN
6854* "cancel" sea-sea chains
6855 CALL DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ1)
6856 IF (IREJ1.NE.0) GOTO 9998
6857**sr 16.5. flag for EVENTB
6858 IREJ = -1
6859 RETURN
6860 ENDIF
6861 9998 CONTINUE
6862 IREJ = 1
6863 RETURN
6864 END
6865
6866*$ CREATE DT_CHKINE.FOR
6867*COPY DT_CHKINE
6868*
6869*===chkine=============================================================*
6870*
6871 SUBROUTINE DT_CHKINE(PP1I,IFP1,PP2I,IFP2,PT1I,IFT1,PT2I,IFT2,
6872 & AMCH1,AMCH1N,AMCH2,IREJ)
6873
6874************************************************************************
6875* This subroutine replaces CORMOM. *
6876* This version dated 05.01.95 is written by S. Roesler *
6877************************************************************************
6878
6879 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6880 SAVE
6881 PARAMETER ( LINP = 10 ,
6882 & LOUT = 6 ,
6883 & LDAT = 9 )
6884 PARAMETER (TINY10=1.0D-10)
6885
6886* flags for input different options
6887 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6888 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6889 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6890* rejection counter
6891 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6892 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6893 & IREXCI(3),IRDIFF(2),IRINC
6894
6895 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),P1(4),P2(4),
6896 & PP1I(4),PP2I(4),PT1I(4),PT2I(4)
6897
6898 IREJ = 0
6899 JMSHL = IMSHL
6900
6901 SCALE = AMCH1N/MAX(AMCH1,TINY10)
6902 DO 10 I=1,4
6903 PP1(I) = PP1I(I)
6904 PP2(I) = PP2I(I)
6905 PT1(I) = PT1I(I)
6906 PT2(I) = PT2I(I)
6907 PP2(I) = PP2(I)+(1.0D0-SCALE)*PP1(I)
6908 PT2(I) = PT2(I)+(1.0D0-SCALE)*PT1(I)
6909 PP1(I) = SCALE*PP1(I)
6910 PT1(I) = SCALE*PT1(I)
6911 10 CONTINUE
6912 IF ((PP1(4).LT.0.0D0).OR.(PP2(4).LT.0.0D0).OR.
6913 & (PT1(4).LT.0.0D0).OR.(PT2(4).LT.0.0D0)) GOTO 9997
6914
6915 ECH = PP2(4)+PT2(4)
6916 PCH = SQRT( (PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2+
6917 & (PP2(3)+PT2(3))**2 )
6918 AMCH22 = (ECH-PCH)*(ECH+PCH)
6919 IF (AMCH22.LT.0.0D0) THEN
6920 IF (IOULEV(1).GT.0)
6921 & WRITE(LOUT,'(1X,A)') 'CHKINE: inconsistent treatment!'
6922 GOTO 9997
6923 ENDIF
6924
6925 AMCH1 = AMCH1N
6926 AMCH2 = SQRT(AMCH22)
6927
6928* put partons again on mass shell
6929 13 CONTINUE
6930 XM1 = 0.0D0
6931 XM2 = 0.0D0
6932 IF (JMSHL.EQ.1) THEN
6933 XM1 = PYMASS(IFP1)
6934 XM2 = PYMASS(IFT1)
6935 ENDIF
6936 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
6937 IF (IREJ1.NE.0) THEN
6938 IF (JMSHL.EQ.0) GOTO 9998
6939 JMSHL = 0
6940 GOTO 13
6941 ENDIF
6942 JMSHL = IMSHL
6943 DO 11 I=1,4
6944 PP1(I) = P1(I)
6945 PT1(I) = P2(I)
6946 11 CONTINUE
6947 14 CONTINUE
6948 XM1 = 0.0D0
6949 XM2 = 0.0D0
6950 IF (JMSHL.EQ.1) THEN
6951 XM1 = PYMASS(IFP2)
6952 XM2 = PYMASS(IFT2)
6953 ENDIF
6954 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P1,P2,IREJ1)
6955 IF (IREJ1.NE.0) THEN
6956 IF (JMSHL.EQ.0) GOTO 9998
6957 JMSHL = 0
6958 GOTO 14
6959 ENDIF
6960 DO 12 I=1,4
6961 PP2(I) = P1(I)
6962 PT2(I) = P2(I)
6963 12 CONTINUE
6964 DO 15 I=1,4
6965 PP1I(I) = PP1(I)
6966 PP2I(I) = PP2(I)
6967 PT1I(I) = PT1(I)
6968 PT2I(I) = PT2(I)
6969 15 CONTINUE
6970 RETURN
6971
6972 9997 IRCHKI(1) = IRCHKI(1)+1
6973**sr
6974C GOTO 9999
6975 IREJ = -1
6976 RETURN
6977**
6978 9998 IRCHKI(2) = IRCHKI(2)+1
6979
6980 9999 CONTINUE
6981 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in CHKINE'
6982 IREJ = 1
6983 RETURN
6984 END
6985
6986*$ CREATE DT_CH2RES.FOR
6987*COPY DT_CH2RES
6988*
6989*===ch2res=============================================================*
6990*
6991 SUBROUTINE DT_CH2RES(IF1,IF2,IF3,IF4,IDR,IDXR,
6992 & AM,AMN,IMODE,IREJ)
6993
6994************************************************************************
6995* Check chains for resonance production. *
6996* This subroutine replaces COMCMA/COBCMA/COMCM2 *
6997* input: *
6998* IF1,2,3,4 input flavors (q,aq in any order) *
6999* AM chain mass *
7000* MODE = 1 check q-aq chain for meson-resonance *
7001* = 2 check q-qq, aq-aqaq chain for baryon-resonance *
7002* = 3 check qq-aqaq chain for lower mass cut *
7003* output: *
7004* IDR = 0 no resonances found *
7005* = -1 pseudoscalar meson/octet baryon *
7006* = 1 vector-meson/decuplet baryon *
7007* IDXR BAMJET-index of corresponding resonance *
7008* AMN mass of corresponding resonance *
7009* *
7010* IREJ rejection flag *
7011* This version dated 06.01.95 is written by S. Roesler *
7012************************************************************************
7013
7014 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7015 SAVE
7016 PARAMETER ( LINP = 10 ,
7017 & LOUT = 6 ,
7018 & LDAT = 9 )
7019
7020* particle properties (BAMJET index convention)
7021 CHARACTER*8 ANAME
7022 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7023 & IICH(210),IIBAR(210),K1(210),K2(210)
7024* quark-content to particle index conversion (DTUNUC 1.x)
7025 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
7026 & IA08(6,21),IA10(6,21)
7027* rejection counter
7028 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
7029 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
7030 & IREXCI(3),IRDIFF(2),IRINC
7031* flags for input different options
7032 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7033 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7034 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7035
7036 DIMENSION IF(4),JF(4)
7037
7038**sr 4.7. test
7039C DATA AMLOM,AMLOB /0.08D0,0.2D0/
7040 DATA AMLOM,AMLOB /0.1D0,0.7D0/
7041**
7042C DATA AMLOM,AMLOB /0.001D0,0.001D0/
7043
7044 MODE = ABS(IMODE)
7045
7046 IF ((MODE.LT.1).OR.(MODE.GT.3)) THEN
7047 WRITE(LOUT,1000) MODE
7048 1000 FORMAT(1X,'CH2RES: MODE ',I4,' not supported!',/,
7049 & 1X,' program stopped')
7050 STOP
7051 ENDIF
7052
7053 AMX = AM
7054 IREJ = 0
7055 IDR = 0
7056 IDXR = 0
7057 AMN = AMX
7058 IF ((AM.LE.0.0D0).AND.(MODE.EQ.1)) AMX = AMLOM
7059 IF ((AM.LE.0.0D0).AND.(MODE.EQ.2)) AMX = AMLOB
7060
7061 IF(1) = IF1
7062 IF(2) = IF2
7063 IF(3) = IF3
7064 IF(4) = IF4
7065 NF = 0
7066 DO 100 I=1,4
7067 IF (IF(I).NE.0) THEN
7068 NF = NF+1
7069 JF(NF) = IF(I)
7070 ENDIF
7071 100 CONTINUE
7072 IF (NF.LE.MODE) THEN
7073 WRITE(LOUT,1001) MODE,IF
7074 1001 FORMAT(1X,'CH2RES: inconsistent input flavors in MODE ',
7075 & I4,' IF1 = ',I4,' IF2 = ',I4,' IF3 = ',I4,' IF4 = ',I4)
7076 GOTO 9999
7077 ENDIF
7078
7079 GOTO (1,2,3) MODE
7080
7081* check for meson resonance
7082 1 CONTINUE
7083 IFQ = JF(1)
7084 IFAQ = ABS(JF(2))
7085 IF (JF(2).GT.0) THEN
7086 IFQ = JF(2)
7087 IFAQ = ABS(JF(1))
7088 ENDIF
7089 IFPS = IMPS(IFAQ,IFQ)
7090 IFV = IMVE(IFAQ,IFQ)
7091 AMPS = AAM(IFPS)
7092 AMV = AAM(IFV)
7093 AMHI = AMV+0.3D0
7094 IF (AMX.LT.AMV) THEN
7095 IF (AMX.LT.AMPS) THEN
7096 IF (IMODE.GT.0) THEN
7097 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOM)) GOTO 9999
7098 ELSE
7099 IF (AMX.LT.0.8D0*AMPS) GOTO 9999
7100 ENDIF
7101 LOMRES = LOMRES+1
7102 ENDIF
7103* replace chain by pseudoscalar meson
7104 IDR = -1
7105 IDXR = IFPS
7106 AMN = AMPS
7107 ELSEIF (AMX.LT.AMHI) THEN
7108* replace chain by vector-meson
7109 IDR = 1
7110 IDXR = IFV
7111 AMN = AMV
7112 ENDIF
7113 RETURN
7114
7115* check for baryon resonance
7116 2 CONTINUE
7117 CALL DT_DBKLAS(JF(1),JF(2),JF(3),JB8,JB10)
7118 AM8 = AAM(JB8)
7119 AM10 = AAM(JB10)
7120 AMHI = AM10+0.3D0
7121 IF (AMX.LT.AM10) THEN
7122 IF (AMX.LT.AM8) THEN
7123 IF (IMODE.GT.0) THEN
7124 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOB)) GOTO 9999
7125 ELSE
7126 IF (AMX.LT.0.8D0*AM8) GOTO 9999
7127 ENDIF
7128 LOBRES = LOBRES+1
7129 ENDIF
7130* replace chain by oktet baryon
7131 IDR = -1
7132 IDXR = JB8
7133 AMN = AM8
7134 ELSEIF (AMX.LT.AMHI) THEN
7135 IDR = 1
7136 IDXR = JB10
7137 AMN = AM10
7138 ENDIF
7139 RETURN
7140
7141* check qq-aqaq for lower mass cut
7142 3 CONTINUE
7143* empirical definition of AMHI to allow for (b-antib)-pair prod.
7144 AMHI = 2.5D0
7145 IF (AMX.LT.AMHI) GOTO 9999
7146 RETURN
7147
7148 9999 CONTINUE
7149 IF ((IOULEV(1).GT.0).AND.(IMODE.GT.0))
7150 & WRITE(LOUT,*) 'rejected 1 in CH2RES',IMODE
7151 IREJ = 1
7152 IRRES(2) = IRRES(2)+1
7153 RETURN
7154 END
7155
7156*$ CREATE DT_RJSEAC.FOR
7157*COPY DT_RJSEAC
7158*
7159*===rjseac=============================================================*
7160*
7161 SUBROUTINE DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ)
7162
7163************************************************************************
7164* ReJection of SEA-sea Chains. *
7165* MOP1/2 entries of projectile sea-partons in DTEVT1 *
7166* MOT1/2 entries of projectile sea-partons in DTEVT1 *
7167* This version dated 16.01.95 is written by S. Roesler *
7168************************************************************************
7169
7170 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7171 SAVE
7172 PARAMETER ( LINP = 10 ,
7173 & LOUT = 6 ,
7174 & LDAT = 9 )
7175 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
7176
7177* event history
7178 PARAMETER (NMXHKK=200000)
7179 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7180 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7181 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7182* extended event history
7183 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7184 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7185 & IHIST(2,NMXHKK)
7186* statistics
7187 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7188 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7189 & ICEVTG(8,0:30)
7190
7191 DIMENSION IDXSEA(2,2),IDXNUC(2),ISTVAL(2)
7192
7193 IREJ = 0
7194
7195* projectile sea q-aq-pair
7196* indices of sea-pair
7197 IDXSEA(1,1) = MOP1
7198 IDXSEA(1,2) = MOP2
7199* index of mother-nucleon
7200 IDXNUC(1) = JMOHKK(1,MOP1)
7201* status of valence quarks to be corrected
7202 ISTVAL(1) = -21
7203
7204* target sea q-aq-pair
7205* indices of sea-pair
7206 IDXSEA(2,1) = MOT1
7207 IDXSEA(2,2) = MOT2
7208* index of mother-nucleon
7209 IDXNUC(2) = JMOHKK(1,MOT1)
7210* status of valence quarks to be corrected
7211 ISTVAL(2) = -22
7212
7213 DO 1 N=1,2
7214 IDONE = 0
7215 DO 2 I=NPOINT(2),NHKK
7216 IF ((ISTHKK(I).EQ.ISTVAL(N)).AND.
7217 & (JMOHKK(1,I).EQ.IDXNUC(N))) THEN
7218* valence parton found
7219* inrease 4-momentum by sea 4-momentum
7220 DO 3 K=1,4
7221 PHKK(K,I) = PHKK(K,I)+PHKK(K,IDXSEA(N,1))+
7222 & PHKK(K,IDXSEA(N,2))
7223 3 CONTINUE
7224 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
7225 & PHKK(2,I)**2-PHKK(3,I)**2))
7226* "cancel" sea-pair
7227 DO 4 J=1,2
7228 ISTHKK(IDXSEA(N,J)) = 100
7229 IDHKK(IDXSEA(N,J)) = 0
7230 JMOHKK(1,IDXSEA(N,J)) = 0
7231 JMOHKK(2,IDXSEA(N,J)) = 0
7232 JDAHKK(1,IDXSEA(N,J)) = 0
7233 JDAHKK(2,IDXSEA(N,J)) = 0
7234 DO 5 K=1,4
7235 PHKK(K,IDXSEA(N,J)) = ZERO
7236 VHKK(K,IDXSEA(N,J)) = ZERO
7237 WHKK(K,IDXSEA(N,J)) = ZERO
7238 5 CONTINUE
7239 PHKK(5,IDXSEA(N,J)) = ZERO
7240 4 CONTINUE
7241 IDONE = 1
7242 ENDIF
7243 2 CONTINUE
7244 IF (IDONE.NE.1) THEN
7245 WRITE(LOUT,1000) NEVHKK,MOP1,MOP2,MOT1,MOT2
7246 1000 FORMAT(1X,'RJSEAC: event ',I8,': inconsistent event',
7247 & '-record!',/,1X,' sea-quark pairs ',
7248 & 2I5,4X,2I5,' could not be canceled!')
7249 GOTO 9999
7250 ENDIF
7251 1 CONTINUE
7252 ICRJSS = ICRJSS+1
7253 RETURN
7254
7255 9999 CONTINUE
7256 IREJ = 1
7257 RETURN
7258 END
7259
7260*$ CREATE DT_VV2SCH.FOR
7261*COPY DT_VV2SCH
7262*
7263*===vv2sch=============================================================*
7264*
7265 SUBROUTINE DT_VV2SCH
7266
7267************************************************************************
7268* Change Valence-Valence chain systems to Single CHain systems for *
7269* hadron-nucleus collisions with meson or antibaryon projectile. *
7270* (Reggeon contribution) *
7271* The single chain system is approximately treated as one chain and a *
7272* meson at rest. *
7273* This version dated 18.01.95 is written by S. Roesler *
7274************************************************************************
7275
7276 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7277 SAVE
7278 PARAMETER ( LINP = 10 ,
7279 & LOUT = 6 ,
7280 & LDAT = 9 )
7281 PARAMETER (ZERO=0.0D0,TINY7=1.0D-7,TINY3=1.0D-3)
7282
7283 LOGICAL LSTART
7284
7285* event history
7286 PARAMETER (NMXHKK=200000)
7287 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7288 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7289 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7290* extended event history
7291 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7292 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7293 & IHIST(2,NMXHKK)
7294* flags for input different options
7295 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7296 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7297 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7298* statistics
7299 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7300 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7301 & ICEVTG(8,0:30)
7302
7303 DIMENSION IF(4,2),MO(4),PP1(4),PP2(4),PT1(4),PT2(4),PCH1(4),
7304 & PCH2(4)
7305
7306 DATA LSTART /.TRUE./
7307
7308 IFSC = 0
7309 IF (LSTART) THEN
7310 WRITE(LOUT,1000)
7311 1000 FORMAT(/,1X,'VV2SCH: Reggeon contribution to valance-',
7312 & 'valence chains treated')
7313 LSTART = .FALSE.
7314 ENDIF
7315
7316 NSTOP = NHKK
7317
7318* get index of first chain
7319 DO 1 I=NPOINT(3),NHKK
7320 IF (IDHKK(I).EQ.88888) THEN
7321 NC = I
7322 GOTO 2
7323 ENDIF
7324 1 CONTINUE
7325
7326 2 CONTINUE
7327 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)
7328 & .AND.(NC.LT.NSTOP)) THEN
7329* get valence-valence chains
7330 IF ((IDCH(NC).EQ.8).AND.(IDCH(NC+3).EQ.8)) THEN
7331* get "mother"-hadron indices
7332 MO1 = JMOHKK(1,JMOHKK(1,JMOHKK(1,NC)))
7333 MO2 = JMOHKK(1,JMOHKK(1,JMOHKK(2,NC)))
7334 KPROJ = IDT_ICIHAD(IDHKK(MO1))
7335 KTARG = IDT_ICIHAD(IDHKK(MO2))
7336* Lab momentum of projectile hadron
7337 CALL DT_LTNUC(PHKK(3,MO1),PHKK(4,MO1),PPZ,PPE,-3)
7338 PTOT = SQRT(PHKK(1,MO1)**2+PHKK(2,MO1)**2+
7339 & PHKK(3,MO1)**2)
7340
7341 SICHAP = DT_PHNSCH(KPROJ,KTARG,PTOT)
7342 IF (DT_RNDM(PTOT).LE.SICHAP) THEN
7343 ICVV2S = ICVV2S+1
7344* single chain requested
7345* get flavors of chain-end partons
7346 MO(1) = JMOHKK(1,NC)
7347 MO(2) = JMOHKK(2,NC)
7348 MO(3) = JMOHKK(1,NC+3)
7349 MO(4) = JMOHKK(2,NC+3)
7350 DO 3 I=1,4
7351 IF(I,1) = IDT_IPDG2B(IDHKK(MO(I)),1,2)
7352 IF(I,2) = 0
7353 IF (ABS(IDHKK(MO(I))).GE.1000)
7354 & IF(I,2) = IDT_IPDG2B(IDHKK(MO(I)),2,2)
7355 3 CONTINUE
7356* which one is the q-aq chain?
7357* N1,N1+1 - DTEVT1-entries for q-aq system
7358* N2,N2+1 - DTEVT1-entries for the other chain
7359 IF ((IF(1,2).EQ.0).AND.(IF(2,2).EQ.0)) THEN
7360 K1 = 1
7361 K2 = 3
7362 N1 = NC-2
7363 N2 = NC+1
7364 ELSEIF ((IF(3,2).EQ.0).AND.(IF(4,2).EQ.0)) THEN
7365 K1 = 3
7366 K2 = 1
7367 N1 = NC+1
7368 N2 = NC-2
7369 ELSE
7370 GOTO 10
7371 ENDIF
7372 DO 4 K=1,4
7373 PP1(K) = PHKK(K,N1)
7374 PT1(K) = PHKK(K,N1+1)
7375 PP2(K) = PHKK(K,N2)
7376 PT2(K) = PHKK(K,N2+1)
7377 4 CONTINUE
7378 AMCH1 = PHKK(5,N1+2)
7379 AMCH2 = PHKK(5,N2+2)
7380* get meson-identity corresponding to flavors of q-aq chain
7381 ITMP = IRESRJ
7382 IRESRJ = 0
7383 CALL DT_CH2RES(IF(K1,1),IF(K1+1,1),0,0,IDR1,IDXR1,
7384 & ZERO,AMCH1N,1,IDUM)
7385 IRESRJ = ITMP
7386* change kinematics of chains
7387 CALL DT_CHKINE(PP1,IDHKK(N1), PP2,IDHKK(N2),
7388 & PT1,IDHKK(N1+1),PT2,IDHKK(N2+1),
7389 & AMCH1,AMCH1N,AMCH2,IREJ1)
7390 IF (IREJ1.NE.0) GOTO 10
7391* check second chain for resonance
7392 IDCHAI = 2
7393 IF ((IF(K2,2).NE.0).AND.(IF(K2+1,2).NE.0)) IDCHAI = 3
7394 CALL DT_CH2RES(IF(K2,1),IF(K2,2),IF(K2+1,1),IF(K2+1,2),
7395 & IDR2,IDXR2,AMCH2,AMCH2N,IDCHAI,IREJ1)
7396 IF (IREJ1.NE.0) GOTO 10
7397 IF (IDR2.NE.0) IDR2 = 100*IDR2
7398* add partons and chains to DTEVT1
7399 DO 5 K=1,4
7400 PCH1(K) = PP1(K)+PT1(K)
7401 PCH2(K) = PP2(K)+PT2(K)
7402 5 CONTINUE
7403 CALL DT_EVTPUT(ISTHKK(N1),IDHKK(N1),N1,0,PP1(1),PP1(2),
7404 & PP1(3),PP1(4),0,0,0)
7405 CALL DT_EVTPUT(ISTHKK(N1+1),IDHKK(N1+1),N1+1,0,PT1(1),
7406 & PT1(2),PT1(3),PT1(4),0,0,0)
7407 KCH = ISTHKK(N1+2)+100
7408 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH1(1),PCH1(2),PCH1(3),
7409 & PCH1(4),IDR1,IDXR1,IDCH(N1+2))
7410 IDHKK(N1+2) = 22222
7411 CALL DT_EVTPUT(ISTHKK(N2),IDHKK(N2),N2,0,PP2(1),PP2(2),
7412 & PP2(3),PP2(4),0,0,0)
7413 CALL DT_EVTPUT(ISTHKK(N2+1),IDHKK(N2+1),N2+1,0,PT2(1),
7414 & PT2(2),PT2(3),PT2(4),0,0,0)
7415 KCH = ISTHKK(N2+2)+100
7416 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH2(1),PCH2(2),PCH2(3),
7417 & PCH2(4),IDR2,IDXR2,IDCH(N2+2))
7418 IDHKK(N2+2) = 22222
7419 ENDIF
7420 ENDIF
7421 ELSE
7422 GOTO 11
7423 ENDIF
7424 10 CONTINUE
7425 NC = NC+6
7426 GOTO 2
7427
7428 11 CONTINUE
7429
7430 RETURN
7431 END
7432
7433*$ CREATE DT_PHNSCH.FOR
7434*COPY DT_PHNSCH
7435*
7436*=== phnsch ===========================================================*
7437*
7438 DOUBLE PRECISION FUNCTION DT_PHNSCH( KP, KTARG, PLAB )
7439
7440*----------------------------------------------------------------------*
7441* *
7442* Probability for Hadron Nucleon Single CHain interactions: *
7443* *
7444* Created on 30 december 1993 by Alfredo Ferrari & Paola Sala *
7445* Infn - Milan *
7446* *
7447* Last change on 04-jan-94 by Alfredo Ferrari *
7448* *
7449* modified by J.R.for use in DTUNUC 6.1.94 *
7450* *
7451* Input variables: *
7452* Kp = hadron projectile index (Part numbering *
7453* scheme) *
7454* Ktarg = target nucleon index (1=proton, 8=neutron) *
7455* Plab = projectile laboratory momentum (GeV/c) *
7456* Output variable: *
7457* Phnsch = probability per single chain (particle *
7458* exchange) interactions *
7459* *
7460*----------------------------------------------------------------------*
7461
7462 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7463 SAVE
7464
7465 PARAMETER ( LUNOUT = 6 )
7466 PARAMETER ( LUNERR = 6 )
7467 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
7468 PARAMETER ( ZERZER = 0.D+00 )
7469 PARAMETER ( ONEONE = 1.D+00 )
7470 PARAMETER ( TWOTWO = 2.D+00 )
7471 PARAMETER ( FIVFIV = 5.D+00 )
7472 PARAMETER ( HLFHLF = 0.5D+00 )
7473
7474 PARAMETER ( NALLWP = 39 )
7475 PARAMETER ( IDMAXP = 210 )
7476
7477 DIMENSION ICHRGE(39),AM(39)
7478
7479* particle properties (BAMJET index convention)
7480 CHARACTER*8 ANAME
7481 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7482 & IICH(210),IIBAR(210),K1(210),K2(210)
7483
7484 DIMENSION KPTOIP(210)
7485* auxiliary common for reggeon exchange (DTUNUC 1.x)
7486 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
7487 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
7488 & IQTCHR(-6:6),MQUARK(3,39)
7489
7490 DIMENSION SGTCOE (5,33), IHLP (NALLWP)
7491 DIMENSION SGTCO1(5,10),SGTCO2(5,8),SGTCO3(5,15)
454792a9 7492CPH SAVE SGTCOE, IHLP
7493CPH SAVE IQFSC1, IQFSC2, IQBSC1, IQBSC2
9aaba0d6 7494 EQUIVALENCE (SGTCO1(1,1),SGTCOE(1,1))
7495 EQUIVALENCE (SGTCO2(1,1),SGTCOE(1,11))
7496 EQUIVALENCE (SGTCO3(1,1),SGTCOE(1,19))
7497
7498* Conversion from part to paprop numbering
7499 DATA KPTOIP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7500 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 66*0,
7501 & 34, 36, 31, 32, 33, 35, 37, 5*0, 38, 5*0, 39, 19*0, 27, 28, 74*0/
7502
7503* 1=baryon, 2=pion, 3=kaon, 4=antibaryon:
7504 DATA IHLP/1,4,5*0,1,4,2*0,3,2*2,2*3,1,4,3,3*1,2,
7505 & 2*3, 2, 4*0, 3*4, 1, 4, 1, 4, 1, 4 /
7506C DATA ( ( SGTCOE (J,I), J=1,5 ), I=1,10 ) /
7507 DATA SGTCO1 /
7508* 1st reaction: gamma p total
7509 &0.147 D+00, ZERZER , ZERZER , 0.0022D+00, -0.0170D+00,
7510* 2nd reaction: gamma d total
7511 &0.300 D+00, ZERZER , ZERZER , 0.0095D+00, -0.057 D+00,
7512* 3rd reaction: pi+ p total
7513 &16.4 D+00, 19.3D+00, -0.42D+00, 0.19 D+00, ZERZER ,
7514* 4th reaction: pi- p total
7515 &33.0 D+00, 14.0D+00, -1.36D+00, 0.456 D+00, -4.03 D+00,
7516* 5th reaction: pi+/- d total
7517 &56.8 D+00, 42.2D+00, -1.45D+00, 0.65 D+00, -5.39 D+00,
7518* 6th reaction: K+ p total
7519 &18.1 D+00, ZERZER , ZERZER , 0.26 D+00, -1.0 D+00,
7520* 7th reaction: K+ n total
7521 &18.7 D+00, ZERZER , ZERZER , 0.21 D+00, -0.89 D+00,
7522* 8th reaction: K+ d total
7523 &34.2 D+00, 7.9 D+00, -2.1 D+00, 0.346 D+00, -0.99 D+00,
7524* 9th reaction: K- p total
7525 &32.1 D+00, ZERZER , ZERZER , 0.66 D+00, -5.6 D+00,
7526* 10th reaction: K- n total
7527 &25.2 D+00, ZERZER , ZERZER , 0.38 D+00, -2.9 D+00/
7528C DATA ( ( SGTCOE (J,I), J=1,5 ), I=11,18 ) /
7529 DATA SGTCO2 /
7530* 11th reaction: K- d total
7531 &57.6 D+00, ZERZER , ZERZER , 1.17 D+00, -9.5 D+00,
7532* 12th reaction: p p total
7533 &48.0 D+00, ZERZER , ZERZER , 0.522 D+00, -4.51 D+00,
7534* 13th reaction: p n total
7535 &47.30 D+00, ZERZER , ZERZER , 0.513 D+00, -4.27 D+00,
7536* 14th reaction: p d total
7537 &91.3 D+00, ZERZER , ZERZER , 1.05 D+00, -8.8 D+00,
7538* 15th reaction: pbar p total
7539 &38.4 D+00, 77.6D+00, -0.64D+00, 0.26 D+00, -1.2 D+00,
7540* 16th reaction: pbar n total
7541 &ZERZER ,133.6D+00, -0.70D+00, -1.22 D+00, 13.7 D+00,
7542* 17th reaction: pbar d total
7543 &112. D+00, 125.D+00, -1.08D+00, 1.14 D+00, -12.4 D+00,
7544* 18th reaction: Lamda p total
7545 &30.4 D+00, ZERZER , ZERZER , ZERZER , 1.6 D+00/
7546C DATA ( ( SGTCOE (J,I), J=1,5 ), I=19,33 ) /
7547 DATA SGTCO3 /
7548* 19th reaction: pi+ p elastic
7549 &ZERZER , 11.4D+00, -0.4 D+00, 0.079 D+00, ZERZER ,
7550* 20th reaction: pi- p elastic
7551 &1.76 D+00, 11.2D+00, -0.64D+00, 0.043 D+00, ZERZER ,
7552* 21st reaction: K+ p elastic
7553 &5.0 D+00, 8.1 D+00, -1.8 D+00, 0.16 D+00, -1.3 D+00,
7554* 22nd reaction: K- p elastic
7555 &7.3 D+00, ZERZER , ZERZER , 0.29 D+00, -2.40 D+00,
7556* 23rd reaction: p p elastic
7557 &11.9 D+00, 26.9D+00, -1.21D+00, 0.169 D+00, -1.85 D+00,
7558* 24th reaction: p d elastic
7559 &16.1 D+00, ZERZER , ZERZER , 0.32 D+00, -3.4 D+00,
7560* 25th reaction: pbar p elastic
7561 &10.2 D+00, 52.7D+00, -1.16D+00, 0.125 D+00, -1.28 D+00,
7562* 26th reaction: pbar p elastic bis
7563 &10.6 D+00, 53.1D+00, -1.19D+00, 0.136 D+00, -1.41 D+00,
7564* 27th reaction: pbar n elastic
7565 &36.5 D+00, ZERZER , ZERZER , ZERZER , -11.9 D+00,
7566* 28th reaction: Lamda p elastic
7567 &12.3 D+00, ZERZER , ZERZER , ZERZER , -2.4 D+00,
7568* 29th reaction: K- p ela bis
7569 &7.24 D+00, 46.0D+00, -4.71D+00, 0.279 D+00, -2.35 D+00,
7570* 30th reaction: pi- p cx
7571 &ZERZER ,0.912D+00, -1.22D+00, ZERZER , ZERZER ,
7572* 31st reaction: K- p cx
7573 &ZERZER , 3.39D+00, -1.75D+00, ZERZER , ZERZER ,
7574* 32nd reaction: K+ n cx
7575 &ZERZER , 7.18D+00, -2.01D+00, ZERZER , ZERZER ,
7576* 33rd reaction: pbar p cx
7577 &ZERZER , 18.8D+00, -2.01D+00, ZERZER , ZERZER /
7578*
7579* +-------------------------------------------------------------------*
7580 ICHRGE(KTARG)=IICH(KTARG)
7581 AM (KTARG)=AAM (KTARG)
7582* | Check for pi0 (d-dbar)
7583 IF ( KP .NE. 26 ) THEN
7584 IP = KPTOIP (KP)
7585 IF(IP.EQ.0)IP=1
7586 ICHRGE(IP)=IICH(KP)
7587 AM (IP)=AAM (KP)
7588* |
7589* +-------------------------------------------------------------------*
7590* |
7591 ELSE
7592 IP = 23
7593 ICHRGE(IP)=0
7594 END IF
7595* |
7596* +-------------------------------------------------------------------*
7597* +-------------------------------------------------------------------*
7598* | No such interactions for baryon-baryon
7599 IF ( IIBAR (KP) .GT. 0 ) THEN
7600 DT_PHNSCH = ZERZER
7601 RETURN
7602* |
7603* +-------------------------------------------------------------------*
7604* | No "annihilation" diagram possible for K+ p/n
7605 ELSE IF ( IP .EQ. 15 ) THEN
7606 DT_PHNSCH = ZERZER
7607 RETURN
7608* |
7609* +-------------------------------------------------------------------*
7610* | No "annihilation" diagram possible for K0 p/n
7611 ELSE IF ( IP .EQ. 24 ) THEN
7612 DT_PHNSCH = ZERZER
7613 RETURN
7614* |
7615* +-------------------------------------------------------------------*
7616* | No "annihilation" diagram possible for Omebar p/n
7617 ELSE IF ( IP .GE. 38 ) THEN
7618 DT_PHNSCH = ZERZER
7619 RETURN
7620 END IF
7621* |
7622* +-------------------------------------------------------------------*
7623* +-------------------------------------------------------------------*
7624* | If the momentum is larger than 50 GeV/c, compute the single
7625* | chain probability at 50 GeV/c and extrapolate to the present
7626* | momentum according to 1/sqrt(s)
7627* | sigma = sigma_sch (50) * sqrt (s(50)/s) + sigma_dch
7628* | P_sch (50) = sigma_sch (50) / ( sigma_dch + sigma_sch (50) )
7629* | sigma_dch / sigma_sch (50) = 1 / P_sch (50) - 1
7630* | sigma_dch / sigma_sch = 1 / P_sch - 1 = ( 1 / P_sch (50) - 1 )
7631* | x sqrt(s/s(50))
7632* | P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
7633 IF ( PLAB .GT. 50.D+00 ) THEN
7634 PLA = 50.D+00
7635 AMPSQ = AM (IP)**2
7636 AMTSQ = AM (KTARG)**2
7637 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7638 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7639 EPROJ = SQRT ( PLA**2 + AMPSQ )
7640 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7641 UMORAT = SQRT ( UMOSQ / UMO50 )
7642* |
7643* +-------------------------------------------------------------------*
7644* | P < 3 GeV/c
7645 ELSE IF ( PLAB .LT. 3.D+00 ) THEN
7646 PLA = 3.D+00
7647 AMPSQ = AM (IP)**2
7648 AMTSQ = AM (KTARG)**2
7649 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7650 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7651 EPROJ = SQRT ( PLA**2 + AMPSQ )
7652 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7653 UMORAT = SQRT ( UMOSQ / UMO50 )
7654* |
7655* +-------------------------------------------------------------------*
7656* | P < 50 GeV/c
7657 ELSE
7658 PLA = PLAB
7659 UMORAT = ONEONE
7660 END IF
7661* |
7662* +-------------------------------------------------------------------*
7663 ALGPLA = LOG (PLA)
7664* +-------------------------------------------------------------------*
7665* | Pions:
7666 IF ( IHLP (IP) .EQ. 2 ) THEN
7667 ACOF = SGTCOE (1,3)
7668 BCOF = SGTCOE (2,3)
7669 ENNE = SGTCOE (3,3)
7670 CCOF = SGTCOE (4,3)
7671 DCOF = SGTCOE (5,3)
7672* | Compute the pi+ p total cross section:
7673 SPPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7674 & + DCOF * ALGPLA
7675 ACOF = SGTCOE (1,19)
7676 BCOF = SGTCOE (2,19)
7677 ENNE = SGTCOE (3,19)
7678 CCOF = SGTCOE (4,19)
7679 DCOF = SGTCOE (5,19)
7680* | Compute the pi+ p elastic cross section:
7681 SPPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7682 & + DCOF * ALGPLA
7683* | Compute the pi+ p inelastic cross section:
7684 SPPPIN = SPPPTT - SPPPEL
7685 ACOF = SGTCOE (1,4)
7686 BCOF = SGTCOE (2,4)
7687 ENNE = SGTCOE (3,4)
7688 CCOF = SGTCOE (4,4)
7689 DCOF = SGTCOE (5,4)
7690* | Compute the pi- p total cross section:
7691 SPMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7692 & + DCOF * ALGPLA
7693 ACOF = SGTCOE (1,20)
7694 BCOF = SGTCOE (2,20)
7695 ENNE = SGTCOE (3,20)
7696 CCOF = SGTCOE (4,20)
7697 DCOF = SGTCOE (5,20)
7698* | Compute the pi- p elastic cross section:
7699 SPMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7700 & + DCOF * ALGPLA
7701* | Compute the pi- p inelastic cross section:
7702 SPMPIN = SPMPTT - SPMPEL
7703 SIGDIA = SPMPIN - SPPPIN
7704* | +----------------------------------------------------------------*
7705* | | Charged pions: besides isospin consideration it is supposed
7706* | | that (pi+ n)el is almost equal to (pi- p)el
7707* | | and (pi+ p)el " " " " (pi- n)el
7708* | | and all are almost equal among each others
7709* | | (reasonable above 5 GeV/c)
7710 IF ( ICHRGE (IP) .NE. 0 ) THEN
7711 KHELP = KTARG / 8
7712 JREAC = 3 + IP - 13 + ICHRGE (IP) * KHELP
7713 ACOF = SGTCOE (1,JREAC)
7714 BCOF = SGTCOE (2,JREAC)
7715 ENNE = SGTCOE (3,JREAC)
7716 CCOF = SGTCOE (4,JREAC)
7717 DCOF = SGTCOE (5,JREAC)
7718* | | Compute the total cross section:
7719 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7720 & + DCOF * ALGPLA
7721 JREAC = 19 + IP - 13 + ICHRGE (IP) * KHELP
7722 ACOF = SGTCOE (1,JREAC)
7723 BCOF = SGTCOE (2,JREAC)
7724 ENNE = SGTCOE (3,JREAC)
7725 CCOF = SGTCOE (4,JREAC)
7726 DCOF = SGTCOE (5,JREAC)
7727* | | Compute the elastic cross section:
7728 SHNCEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7729 & + DCOF * ALGPLA
7730* | | Compute the inelastic cross section:
7731 SHNCIN = SHNCTT - SHNCEL
7732* | | Number of diagrams:
7733 NDIAGR = 1 + IP - 13 + ICHRGE (IP) * KHELP
7734* | | Now compute the chain end (anti)quark-(anti)diquark
7735 IQFSC1 = 1 + IP - 13
7736 IQFSC2 = 0
7737 IQBSC1 = 1 + KHELP
7738 IQBSC2 = 1 + IP - 13
7739* | |
7740* | +----------------------------------------------------------------*
7741* | | pi0: besides isospin consideration it is supposed that the
7742* | | elastic cross section is not very different from
7743* | | pi+ p and/or pi- p (reasonable above 5 GeV/c)
7744 ELSE
7745 KHELP = KTARG / 8
7746 K2HLP = ( KP - 23 ) / 3
7747* | | Number of diagrams:
7748* | | For u ubar (k2hlp=0):
7749* NDIAGR = 2 - KHELP
7750* | | For d dbar (k2hlp=1):
7751* NDIAGR = 2 + KHELP - K2HLP
7752 NDIAGR = 2 + KHELP * ( 2 * K2HLP - 1 ) - K2HLP
7753 SHNCIN = HLFHLF * ( SPPPIN + SPMPIN )
7754* | | Now compute the chain end (anti)quark-(anti)diquark
7755 IQFSC1 = 1 + K2HLP
7756 IQFSC2 = 0
7757 IQBSC1 = 1 + KHELP
7758 IQBSC2 = 2 - K2HLP
7759 END IF
7760* | |
7761* | +----------------------------------------------------------------*
7762* | end pi's
7763* +-------------------------------------------------------------------*
7764* | Kaons:
7765 ELSE IF ( IHLP (IP) .EQ. 3 ) THEN
7766 ACOF = SGTCOE (1,6)
7767 BCOF = SGTCOE (2,6)
7768 ENNE = SGTCOE (3,6)
7769 CCOF = SGTCOE (4,6)
7770 DCOF = SGTCOE (5,6)
7771* | Compute the K+ p total cross section:
7772 SKPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7773 & + DCOF * ALGPLA
7774 ACOF = SGTCOE (1,21)
7775 BCOF = SGTCOE (2,21)
7776 ENNE = SGTCOE (3,21)
7777 CCOF = SGTCOE (4,21)
7778 DCOF = SGTCOE (5,21)
7779* | Compute the K+ p elastic cross section:
7780 SKPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7781 & + DCOF * ALGPLA
7782* | Compute the K+ p inelastic cross section:
7783 SKPPIN = SKPPTT - SKPPEL
7784 ACOF = SGTCOE (1,9)
7785 BCOF = SGTCOE (2,9)
7786 ENNE = SGTCOE (3,9)
7787 CCOF = SGTCOE (4,9)
7788 DCOF = SGTCOE (5,9)
7789* | Compute the K- p total cross section:
7790 SKMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7791 & + DCOF * ALGPLA
7792 ACOF = SGTCOE (1,22)
7793 BCOF = SGTCOE (2,22)
7794 ENNE = SGTCOE (3,22)
7795 CCOF = SGTCOE (4,22)
7796 DCOF = SGTCOE (5,22)
7797* | Compute the K- p elastic cross section:
7798 SKMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7799 & + DCOF * ALGPLA
7800* | Compute the K- p inelastic cross section:
7801 SKMPIN = SKMPTT - SKMPEL
7802 SIGDIA = HLFHLF * ( SKMPIN - SKPPIN )
7803* | +----------------------------------------------------------------*
7804* | | Charged Kaons: actually only K-
7805 IF ( ICHRGE (IP) .NE. 0 ) THEN
7806 KHELP = KTARG / 8
7807* | | +-------------------------------------------------------------*
7808* | | | Proton target:
7809 IF ( KHELP .EQ. 0 ) THEN
7810 SHNCIN = SKMPIN
7811* | | | Number of diagrams:
7812 NDIAGR = 2
7813* | | |
7814* | | +-------------------------------------------------------------*
7815* | | | Neutron target: besides isospin consideration it is supposed
7816* | | | that (K- n)el is almost equal to (K- p)el
7817* | | | (reasonable above 5 GeV/c)
7818 ELSE
7819 ACOF = SGTCOE (1,10)
7820 BCOF = SGTCOE (2,10)
7821 ENNE = SGTCOE (3,10)
7822 CCOF = SGTCOE (4,10)
7823 DCOF = SGTCOE (5,10)
7824* | | | Compute the total cross section:
7825 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7826 & + DCOF * ALGPLA
7827* | | | Compute the elastic cross section:
7828 SHNCEL = SKMPEL
7829* | | | Compute the inelastic cross section:
7830 SHNCIN = SHNCTT - SHNCEL
7831* | | | Number of diagrams:
7832 NDIAGR = 1
7833 END IF
7834* | | |
7835* | | +-------------------------------------------------------------*
7836* | | Now compute the chain end (anti)quark-(anti)diquark
7837 IQFSC1 = 3
7838 IQFSC2 = 0
7839 IQBSC1 = 1 + KHELP
7840 IQBSC2 = 2
7841* | |
7842* | +----------------------------------------------------------------*
7843* | | K0's: (actually only K0bar)
7844 ELSE
7845 KHELP = KTARG / 8
7846* | | +-------------------------------------------------------------*
7847* | | | Proton target: (K0bar p)in supposed to be given by
7848* | | | (K- p)in - Sig_diagr
7849 IF ( KHELP .EQ. 0 ) THEN
7850 SHNCIN = SKMPIN - SIGDIA
7851* | | | Number of diagrams:
7852 NDIAGR = 1
7853* | | |
7854* | | +-------------------------------------------------------------*
7855* | | | Neutron target: (K0bar n)in supposed to be given by
7856* | | | (K- n)in + Sig_diagr
7857* | | | besides isospin consideration it is supposed
7858* | | | that (K- n)el is almost equal to (K- p)el
7859* | | | (reasonable above 5 GeV/c)
7860 ELSE
7861 ACOF = SGTCOE (1,10)
7862 BCOF = SGTCOE (2,10)
7863 ENNE = SGTCOE (3,10)
7864 CCOF = SGTCOE (4,10)
7865 DCOF = SGTCOE (5,10)
7866* | | | Compute the total cross section:
7867 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7868 & + DCOF * ALGPLA
7869* | | | Compute the elastic cross section:
7870 SHNCEL = SKMPEL
7871* | | | Compute the inelastic cross section:
7872 SHNCIN = SHNCTT - SHNCEL + SIGDIA
7873* | | | Number of diagrams:
7874 NDIAGR = 2
7875 END IF
7876* | | |
7877* | | +-------------------------------------------------------------*
7878* | | Now compute the chain end (anti)quark-(anti)diquark
7879 IQFSC1 = 3
7880 IQFSC2 = 0
7881 IQBSC1 = 1
7882 IQBSC2 = 1 + KHELP
7883 END IF
7884* | |
7885* | +----------------------------------------------------------------*
7886* | end Kaon's
7887* +-------------------------------------------------------------------*
7888* | Antinucleons:
7889 ELSE IF ( IHLP (IP) .EQ. 4 .AND. IP .LE. 9 ) THEN
7890* | For momenta between 3 and 5 GeV/c the use of tabulated data
7891* | should be implemented!
7892 ACOF = SGTCOE (1,15)
7893 BCOF = SGTCOE (2,15)
7894 ENNE = SGTCOE (3,15)
7895 CCOF = SGTCOE (4,15)
7896 DCOF = SGTCOE (5,15)
7897* | Compute the pbar p total cross section:
7898 SAPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7899 & + DCOF * ALGPLA
7900 IF ( PLA .LT. FIVFIV ) THEN
7901 JREAC = 26
7902 ELSE
7903 JREAC = 25
7904 END IF
7905 ACOF = SGTCOE (1,JREAC)
7906 BCOF = SGTCOE (2,JREAC)
7907 ENNE = SGTCOE (3,JREAC)
7908 CCOF = SGTCOE (4,JREAC)
7909 DCOF = SGTCOE (5,JREAC)
7910* | Compute the pbar p elastic cross section:
7911 SAPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7912 & + DCOF * ALGPLA
7913* | Compute the pbar p inelastic cross section:
7914 SAPPIN = SAPPTT - SAPPEL
7915 ACOF = SGTCOE (1,12)
7916 BCOF = SGTCOE (2,12)
7917 ENNE = SGTCOE (3,12)
7918 CCOF = SGTCOE (4,12)
7919 DCOF = SGTCOE (5,12)
7920* | Compute the p p total cross section:
7921 SPPTOT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7922 & + DCOF * ALGPLA
7923 ACOF = SGTCOE (1,23)
7924 BCOF = SGTCOE (2,23)
7925 ENNE = SGTCOE (3,23)
7926 CCOF = SGTCOE (4,23)
7927 DCOF = SGTCOE (5,23)
7928* | Compute the p p elastic cross section:
7929 SPPELA = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7930 & + DCOF * ALGPLA
7931* | Compute the K- p inelastic cross section:
7932 SPPINE = SPPTOT - SPPELA
7933 SIGDIA = ( SAPPIN - SPPINE ) / FIVFIV
7934 KHELP = KTARG / 8
7935* | +----------------------------------------------------------------*
7936* | | Pbar:
7937 IF ( ICHRGE (IP) .NE. 0 ) THEN
7938 NDIAGR = 5 - KHELP
7939* | | +-------------------------------------------------------------*
7940* | | | Proton target:
7941 IF ( KHELP .EQ. 0 ) THEN
7942* | | | Number of diagrams:
7943 SHNCIN = SAPPIN
7944 PUUBAR = 0.8D+00
7945* | | |
7946* | | +-------------------------------------------------------------*
7947* | | | Neutron target: it is supposed that (ap n)el is almost equal
7948* | | | to (ap p)el (reasonable above 5 GeV/c)
7949 ELSE
7950 ACOF = SGTCOE (1,16)
7951 BCOF = SGTCOE (2,16)
7952 ENNE = SGTCOE (3,16)
7953 CCOF = SGTCOE (4,16)
7954 DCOF = SGTCOE (5,16)
7955* | | | Compute the total cross section:
7956 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7957 & + DCOF * ALGPLA
7958* | | | Compute the elastic cross section:
7959 SHNCEL = SAPPEL
7960* | | | Compute the inelastic cross section:
7961 SHNCIN = SHNCTT - SHNCEL
7962 PUUBAR = HLFHLF
7963 END IF
7964* | | |
7965* | | +-------------------------------------------------------------*
7966* | | Now compute the chain end (anti)quark-(anti)diquark
7967* | | there are different possibilities, make a random choiche:
7968 IQFSC1 = -1
7969 RNCHEN = DT_RNDM(PUUBAR)
7970 IF ( RNCHEN .LT. PUUBAR ) THEN
7971 IQFSC2 = -2
7972 ELSE
7973 IQFSC2 = -1
7974 END IF
7975 IQBSC1 = -IQFSC1 + KHELP
7976 IQBSC2 = -IQFSC2
7977* | |
7978* | +----------------------------------------------------------------*
7979* | | nbar:
7980 ELSE
7981 NDIAGR = 4 + KHELP
7982* | | +-------------------------------------------------------------*
7983* | | | Proton target: (nbar p)in supposed to be given by
7984* | | | (pbar p)in - Sig_diagr
7985 IF ( KHELP .EQ. 0 ) THEN
7986 SHNCIN = SAPPIN - SIGDIA
7987 PDDBAR = HLFHLF
7988* | | |
7989* | | +-------------------------------------------------------------*
7990* | | | Neutron target: (nbar n)el is supposed to be equal to
7991* | | | (pbar p)el (reasonable above 5 GeV/c)
7992 ELSE
7993* | | | Compute the total cross section:
7994 SHNCTT = SAPPTT
7995* | | | Compute the elastic cross section:
7996 SHNCEL = SAPPEL
7997* | | | Compute the inelastic cross section:
7998 SHNCIN = SHNCTT - SHNCEL
7999 PDDBAR = 0.8D+00
8000 END IF
8001* | | |
8002* | | +-------------------------------------------------------------*
8003* | | Now compute the chain end (anti)quark-(anti)diquark
8004* | | there are different possibilities, make a random choiche:
8005 IQFSC1 = -2
8006 RNCHEN = DT_RNDM(RNCHEN)
8007 IF ( RNCHEN .LT. PDDBAR ) THEN
8008 IQFSC2 = -1
8009 ELSE
8010 IQFSC2 = -2
8011 END IF
8012 IQBSC1 = -IQFSC1 + KHELP - 1
8013 IQBSC2 = -IQFSC2
8014 END IF
8015* | |
8016* | +----------------------------------------------------------------*
8017* |
8018* +-------------------------------------------------------------------*
8019* | Others: not yet implemented
8020 ELSE
8021 SIGDIA = ZERZER
8022 SHNCIN = ONEONE
8023 NDIAGR = 0
8024 DT_PHNSCH = ZERZER
8025 RETURN
8026 END IF
8027* | end others
8028* +-------------------------------------------------------------------*
8029 DT_PHNSCH = NDIAGR * SIGDIA / SHNCIN
8030 IQECHC = IQECHR (IQFSC1) + IQECHR (IQFSC2) + IQECHR (IQBSC1)
8031 & + IQECHR (IQBSC2)
8032 IQBCHC = IQBCHR (IQFSC1) + IQBCHR (IQFSC2) + IQBCHR (IQBSC1)
8033 & + IQBCHR (IQBSC2)
8034 IQECHC = IQECHC / 3
8035 IQBCHC = IQBCHC / 3
8036 IQSCHC = IQSCHR (IQFSC1) + IQSCHR (IQFSC2) + IQSCHR (IQBSC1)
8037 & + IQSCHR (IQBSC2)
8038 IQSPRO = IQSCHR (MQUARK(1,IP)) + IQSCHR (MQUARK(2,IP))
8039 & + IQSCHR (MQUARK(3,IP))
8040* +-------------------------------------------------------------------*
8041* | Consistency check:
8042 IF ( DT_PHNSCH .LE. ZERZER .OR. DT_PHNSCH .GT. ONEONE ) THEN
8043 WRITE (LUNOUT,*)' *** Phnsch,kp,ktarg,pla',
8044 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8045 WRITE (LUNERR,*)' *** Phnsch,kp,ktarg,pla',
8046 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8047 DT_PHNSCH = MAX ( DT_PHNSCH, ZERZER )
8048 DT_PHNSCH = MIN ( DT_PHNSCH, ONEONE )
8049 END IF
8050* |
8051* +-------------------------------------------------------------------*
8052* +-------------------------------------------------------------------*
8053* | Consistency check:
8054 IF ( IQSPRO .NE. IQSCHC .OR. ICHRGE (IP) + ICHRGE (KTARG)
8055 & .NE. IQECHC .OR. IIBAR (KP) + IIBAR (KTARG) .NE. IQBCHC) THEN
8056 WRITE (LUNOUT,*)
8057 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8058 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8059 WRITE (LUNERR,*)
8060 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8061 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8062 END IF
8063* |
8064* +-------------------------------------------------------------------*
8065* P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
8066 IF ( UMORAT .GT. ONEPLS )
8067 & DT_PHNSCH = ONEONE / ( ( ONEONE / DT_PHNSCH
8068 & - ONEONE ) * UMORAT + ONEONE )
8069 RETURN
8070*
8071 ENTRY DT_SCHQUA ( JQFSC1, JQFSC2, JQBSC1, JQBSC2 )
8072 DT_SCHQUA = ONEONE
8073 JQFSC1 = IQFSC1
8074 JQFSC2 = IQFSC2
8075 JQBSC1 = IQBSC1
8076 JQBSC2 = IQBSC2
8077*=== End of function Phnsch ===========================================*
8078 RETURN
8079 END
8080
8081*$ CREATE DT_RESPT.FOR
8082*COPY DT_RESPT
8083*
8084*===respt==============================================================*
8085*
8086 SUBROUTINE DT_RESPT
8087
8088************************************************************************
8089* Check DTEVT1 for two-resonance systems and sample intrinsic p_t. *
8090* This version dated 18.01.95 is written by S. Roesler *
8091************************************************************************
8092
8093 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8094 SAVE
8095 PARAMETER ( LINP = 10 ,
8096 & LOUT = 6 ,
8097 & LDAT = 9 )
8098 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8099
8100* event history
8101 PARAMETER (NMXHKK=200000)
8102 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8103 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8104 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8105* extended event history
8106 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8107 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8108 & IHIST(2,NMXHKK)
8109
8110* get index of first chain
8111 DO 1 I=NPOINT(3),NHKK
8112 IF (IDHKK(I).EQ.88888) THEN
8113 NC = I
8114 GOTO 2
8115 ENDIF
8116 1 CONTINUE
8117
8118 2 CONTINUE
8119 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)) THEN
8120C WRITE(LOUT,*)NC,NC+3,IDRES(NC),IDRES(NC+3)
8121* skip VV-,SS- systems
8122 IF ((IDCH(NC ).NE.1).AND.(IDCH(NC ).NE.8).AND.
8123 & (IDCH(NC+3).NE.1).AND.(IDCH(NC+3).NE.8)) THEN
8124* check if both "chains" are resonances
8125 IF ((IDRES(NC).NE.0).AND.(IDRES(NC+3).NE.0)) THEN
8126 CALL DT_SAPTRE(NC,NC+3)
8127 ENDIF
8128 ENDIF
8129 ELSE
8130 GOTO 3
8131 ENDIF
8132 NC = NC+6
8133 GOTO 2
8134
8135 3 CONTINUE
8136
8137 RETURN
8138 END
8139
8140*$ CREATE DT_EVTRES.FOR
8141*COPY DT_EVTRES
8142*
8143*===evtres=============================================================*
8144*
8145 SUBROUTINE DT_EVTRES(IREJ)
8146
8147************************************************************************
8148* This version dated 14.12.94 is written by S. Roesler *
8149************************************************************************
8150
8151 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8152 SAVE
8153 PARAMETER ( LINP = 10 ,
8154 & LOUT = 6 ,
8155 & LDAT = 9 )
8156 PARAMETER (TINY5=1.0D-5,TINY10=1.0D-10)
8157
8158* event history
8159 PARAMETER (NMXHKK=200000)
8160 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8161 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8162 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8163* extended event history
8164 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8165 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8166 & IHIST(2,NMXHKK)
8167* flags for input different options
8168 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8169 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8170 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8171* particle properties (BAMJET index convention)
8172 CHARACTER*8 ANAME
8173 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
8174 & IICH(210),IIBAR(210),K1(210),K2(210)
8175
8176 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),IFP(2),IFT(2)
8177
8178 IREJ = 0
8179
8180 DO 1 I=NPOINT(3),NHKK
8181 IF (ABS(IDRES(I)).GE.100) THEN
8182 AMMX = 0.0D0
8183 DO 2 J=NPOINT(3),NHKK
8184 IF (IDHKK(J).EQ.88888) THEN
8185 IF (PHKK(5,J).GT.AMMX) THEN
8186 AMMX = PHKK(5,J)
8187 IMMX = J
8188 ENDIF
8189 ENDIF
8190 2 CONTINUE
8191 IF (IDRES(IMMX).NE.0) THEN
8192 IF (IOULEV(3).GT.0) THEN
8193 WRITE(LOUT,'(1X,A)')
8194 & 'EVTRES: no chain for correc. found'
8195C GOTO 6
8196 GOTO 9999
8197 ELSE
8198 GOTO 9999
8199 ENDIF
8200 ENDIF
8201 IMO11 = JMOHKK(1,I)
8202 IMO12 = JMOHKK(2,I)
8203 IF (PHKK(3,IMO11).LT.0.0D0) THEN
8204 IMO11 = JMOHKK(2,I)
8205 IMO12 = JMOHKK(1,I)
8206 ENDIF
8207 IMO21 = JMOHKK(1,IMMX)
8208 IMO22 = JMOHKK(2,IMMX)
8209 IF (PHKK(3,IMO21).LT.0.0D0) THEN
8210 IMO21 = JMOHKK(2,IMMX)
8211 IMO22 = JMOHKK(1,IMMX)
8212 ENDIF
8213 AMCH1 = PHKK(5,I)
8214 AMCH1N = AAM(IDXRES(I))
8215
8216 IFPR1 = IDHKK(IMO11)
8217 IFPR2 = IDHKK(IMO21)
8218 IFTA1 = IDHKK(IMO12)
8219 IFTA2 = IDHKK(IMO22)
8220 DO 4 J=1,4
8221 PP1(J) = PHKK(J,IMO11)
8222 PP2(J) = PHKK(J,IMO21)
8223 PT1(J) = PHKK(J,IMO12)
8224 PT2(J) = PHKK(J,IMO22)
8225 4 CONTINUE
8226* store initial configuration for energy-momentum cons. check
8227 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IREJ1)
8228* correct kinematics of second chain
8229 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
8230 & AMCH1,AMCH1N,AMCH2,IREJ1)
8231 IF (IREJ1.NE.0) GOTO 9999
8232* check now this chain for resonance mass
8233 IFP(1) = IDT_IPDG2B(IFPR2,1,2)
8234 IFP(2) = 0
8235 IF (ABS(IFPR2).GE.1000) IFP(2) = IDT_IPDG2B(IFPR2,2,2)
8236 IFT(1) = IDT_IPDG2B(IFTA2,1,2)
8237 IFT(2) = 0
8238 IF (ABS(IFTA2).GE.1000) IFT(2) = IDT_IPDG2B(IFTA2,2,2)
8239 IDCH2 = 2
8240 IF ((IFP(2).EQ.0).AND.(IFT(2).EQ.0)) IDCH2 = 1
8241 IF ((IFP(2).NE.0).AND.(IFT(2).NE.0)) IDCH2 = 3
8242 CALL DT_CH2RES(IFP(1),IFP(2),IFT(1),IFT(2),IDR2,IDXR2,
8243 & AMCH2,AMCH2N,IDCH2,IREJ1)
8244 IF ((IREJ1.NE.0).OR.(IDR2.NE.0)) THEN
8245 IF (IOULEV(1).GT.0)
8246 & WRITE(LOUT,*) ' correction for resonance not poss.'
8247**sr test
8248C GOTO 1
8249C GOTO 9999
8250**
8251 ENDIF
8252* store final configuration for energy-momentum cons. check
8253 IF (LEMCCK) THEN
8254 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IREJ1)
8255 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
8256 IF (IREJ1.NE.0) GOTO 9999
8257 ENDIF
8258 DO 5 J=1,4
8259 PHKK(J,IMO11) = PP1(J)
8260 PHKK(J,IMO21) = PP2(J)
8261 PHKK(J,IMO12) = PT1(J)
8262 PHKK(J,IMO22) = PT2(J)
8263 5 CONTINUE
8264* correct entries of chains
8265 DO 3 K=1,4
8266 PHKK(K,I) = PHKK(K,IMO11)+PHKK(K,IMO12)
8267 PHKK(K,IMMX) = PHKK(K,IMO21)+PHKK(K,IMO22)
8268 3 CONTINUE
8269 AM1 = PHKK(4,I)**2-PHKK(1,I)**2-PHKK(2,I)**2-PHKK(3,I)**2
8270 AM2 = PHKK(4,IMMX)**2-PHKK(1,IMMX)**2-PHKK(2,IMMX)**2-
8271 & PHKK(3,IMMX)**2
8272* ?? the following should now be obsolete
8273**sr test
8274C IF ((AM1.LT.0.0D0).OR.(AM2.LT.1.0D0)) THEN
8275 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8276**
8277 WRITE(LOUT,'(1X,A,4G10.3)')
8278 & 'EVTRES: inonsistent mass-corr.',AM1,AM2
8279C GOTO 9999
8280 GOTO 1
8281 ENDIF
8282 PHKK(5,I) = SQRT(AM1)
8283 PHKK(5,IMMX) = SQRT(AM2)
8284 IDRES(I) = IDRES(I)/100
8285 IF ((ABS(PHKK(5,I)-AMCH1N).GT.TINY5).OR.
8286 & (ABS(PHKK(5,IMMX)-AMCH2).GT.TINY5)) THEN
8287 WRITE(LOUT,'(1X,A,4G10.3)')
8288 & 'EVTRES: inconsistent chain-masses',
8289 & PHKK(5,I),AMCH1N,PHKK(5,IMMX),AMCH2
8290 GOTO 9999
8291 ENDIF
8292 ENDIF
8293 1 CONTINUE
8294 6 CONTINUE
8295 RETURN
8296
8297 9999 CONTINUE
8298 IREJ = 1
8299 RETURN
8300 END
8301
8302*$ CREATE DT_GETSPT.FOR
8303*COPY DT_GETSPT
8304*
8305*===getspt=============================================================*
8306*
8307 SUBROUTINE DT_GETSPT(PP1I,IFPR1,IFP1,PP2I,IFPR2,IFP2,
8308 & PT1I,IFTA1,IFT1,PT2I,IFTA2,IFT2,
8309 & AM1,IDCH1,AM2,IDCH2,IDCHAI,IREJ)
8310
8311************************************************************************
8312* This version dated 12.12.94 is written by S. Roesler *
8313************************************************************************
8314
8315 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8316 SAVE
8317 PARAMETER ( LINP = 10 ,
8318 & LOUT = 6 ,
8319 & LDAT = 9 )
8320 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,ZERO=0.0D0)
8321
8322* various options for treatment of partons (DTUNUC 1.x)
8323* (chain recombination, Cronin,..)
8324 LOGICAL LCO2CR,LINTPT
8325 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8326 & LCO2CR,LINTPT
8327* flags for input different options
8328 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8329 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8330 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8331* flags for diffractive interactions (DTUNUC 1.x)
8332 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
8333
8334 DIMENSION PP1(4),PP1I(4),PP2(4),PP2I(4),PT1(4),PT1I(4),
8335 & PT2(4),PT2I(4),P1(4),P2(4),
8336 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),
8337 & PTOTI(4),PTOTF(4),DIFF(4)
8338
8339 IC = 0
8340 IREJ = 0
8341C B33P = 4.0D0
8342C B33T = 4.0D0
8343C IF ((IDCHAI.EQ.6).OR.(IDCHAI.EQ.7).OR.(IDCHAI.EQ.8)) B33P = 2.0D0
8344C IF ((IDCHAI.EQ.4).OR.(IDCHAI.EQ.5).OR.(IDCHAI.EQ.8)) B33T = 2.0D0
8345 REDU = 1.0D0
8346C B33P = 3.5D0
8347C B33T = 3.5D0
8348 B33P = 4.0D0
8349 B33T = 4.0D0
8350 IF (IDIFF.NE.0) THEN
8351 B33P = 16.0D0
8352 B33T = 16.0D0
8353 ENDIF
8354
8355 DO 1 I=1,4
8356 PTOTI(I) = PP1I(I)+PP2I(I)+PT1I(I)+PT2I(I)
8357 PP1(I) = PP1I(I)
8358 PP2(I) = PP2I(I)
8359 PT1(I) = PT1I(I)
8360 PT2(I) = PT2I(I)
8361 1 CONTINUE
8362* get initial chain masses
8363 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8364 & +(PP1(3)+PT1(3))**2)
8365 ECH = PP1(4)+PT1(4)
8366 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
8367 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8368 & +(PP2(3)+PT2(3))**2)
8369 ECH = PP2(4)+PT2(4)
8370 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
8371 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8372 IF (IOULEV(1).GT.0)
8373 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 1',
8374 & AM1,AM2
8375 GOTO 9999
8376 ENDIF
8377 AM1 = SQRT(AM1)
8378 AM2 = SQRT(AM2)
8379 AM1N = ZERO
8380 AM2N = ZERO
8381
8382 MODE = 0
8383C IF ((AM1.GE.3.0D0).AND.(AM2.GE.3.0D0)) THEN
8384C MODE = 0
8385C ELSE
8386C MODE = 1
8387C IF (AM1.LT.0.6) THEN
8388C B33P = 10.0D0
8389C ELSEIF ((AM1.GE.1.2).AND.(AM1.LT.3.0D0)) THEN
8390CC B33P = 4.0D0
8391C ENDIF
8392C IF (AM2.LT.0.6) THEN
8393C B33T = 10.0D0
8394C ELSEIF ((AM2.GE.1.2).AND.(AM2.LT.3.0D0)) THEN
8395CC B33T = 4.0D0
8396C ENDIF
8397C ENDIF
8398
8399* check chain masses for very low mass chains
8400C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8401C & AM1,DUM,-IDCH1,IREJ1)
8402C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8403C & AM2,DUM,-IDCH2,IREJ2)
8404C IF ((IREJ1.NE.0).OR.(IREJ2.NE.0)) THEN
8405C B33P = 20.0D0
8406C B33T = 20.0D0
8407C ENDIF
8408
8409 JMSHL = IMSHL
8410
8411 2 CONTINUE
8412 IC = IC+1
8413 IF (MOD(IC,15).EQ.0) B33P = 2.0D0*B33P
8414 IF (MOD(IC,15).EQ.0) B33T = 2.0D0*B33T
8415 IF (MOD(IC,18).EQ.0) REDU = 0.0D0
8416C IF (MOD(IC,19).EQ.0) JMSHL = 0
8417 IF (MOD(IC,20).EQ.0) GOTO 7
8418C WRITE(LOUT,'(1X,A)') 'GETSPT: rejection '
8419C RETURN
8420C GOTO 9999
8421C ENDIF
8422
8423* get transverse momentum
8424 IF (LINTPT) THEN
8425 ES = -2.0D0/(B33P**2)
8426 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8427 HPSP = SQRT(ES*ES+2.0D0*ES*0.94D0)
8428 HPSP = HPSP*REDU
8429 ES = -2.0D0/(B33T**2)
8430 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8431 HPST = SQRT(ES*ES+2.0D0*ES*0.94D0)
8432 HPST = HPST*REDU
8433 ELSE
8434 HPSP = ZERO
8435 HPST = ZERO
8436 ENDIF
8437 CALL DT_DSFECF(SFE1,CFE1)
8438 CALL DT_DSFECF(SFE2,CFE2)
8439 IF (MODE.EQ.0) THEN
8440 PP1(1) = PP1I(1)+HPSP*CFE1
8441 PP1(2) = PP1I(2)+HPSP*SFE1
8442 PP2(1) = PP2I(1)-HPSP*CFE1
8443 PP2(2) = PP2I(2)-HPSP*SFE1
8444 PT1(1) = PT1I(1)+HPST*CFE2
8445 PT1(2) = PT1I(2)+HPST*SFE2
8446 PT2(1) = PT2I(1)-HPST*CFE2
8447 PT2(2) = PT2I(2)-HPST*SFE2
8448 ELSE
8449 PP1(1) = PP1I(1)+HPSP*CFE1
8450 PP1(2) = PP1I(2)+HPSP*SFE1
8451 PT1(1) = PT1I(1)-HPSP*CFE1
8452 PT1(2) = PT1I(2)-HPSP*SFE1
8453 PP2(1) = PP2I(1)+HPST*CFE2
8454 PP2(2) = PP2I(2)+HPST*SFE2
8455 PT2(1) = PT2I(1)-HPST*CFE2
8456 PT2(2) = PT2I(2)-HPST*SFE2
8457 ENDIF
8458
8459* put partons on mass shell
8460 XMP1 = 0.0D0
8461 XMT1 = 0.0D0
8462 IF (JMSHL.EQ.1) THEN
8463 XMP1 = PYMASS(IFPR1)
8464 XMT1 = PYMASS(IFTA1)
8465 ENDIF
8466 CALL DT_MASHEL(PP1,PT1,XMP1,XMT1,P1,P2,IREJ1)
8467 IF (IREJ1.NE.0) GOTO 2
8468 DO 3 I=1,4
8469 PTOTF(I) = P1(I)+P2(I)
8470 PP1(I) = P1(I)
8471 PT1(I) = P2(I)
8472 3 CONTINUE
8473 XMP2 = 0.0D0
8474 XMT2 = 0.0D0
8475 IF (JMSHL.EQ.1) THEN
8476 XMP2 = PYMASS(IFPR2)
8477 XMT2 = PYMASS(IFTA2)
8478 ENDIF
8479 CALL DT_MASHEL(PP2,PT2,XMP2,XMT2,P1,P2,IREJ1)
8480 IF (IREJ1.NE.0) GOTO 2
8481 DO 4 I=1,4
8482 PTOTF(I) = PTOTF(I)+P1(I)+P2(I)
8483 PP2(I) = P1(I)
8484 PT2(I) = P2(I)
8485 4 CONTINUE
8486
8487* check consistency
8488 DO 5 I=1,4
8489 DIFF(I) = PTOTI(I)-PTOTF(I)
8490 5 CONTINUE
8491 IF ((ABS(DIFF(1)).GT.TINY5).OR.(ABS(DIFF(2)).GT.TINY5).OR.
8492 & (ABS(DIFF(3)).GT.TINY5).OR.(ABS(DIFF(4)).GT.TINY5)) THEN
8493 WRITE(LOUT,'(1X,A,4G10.3)') 'GETSPT: inconsistencies ',DIFF
8494 GOTO 9999
8495 ENDIF
8496 PTOTP1 = SQRT(PP1(1)**2+PP1(2)**2+PP1(3)**2)
8497 AMP1 = SQRT(ABS( (PP1(4)-PTOTP1)*(PP1(4)+PTOTP1) ))
8498 PTOTP2 = SQRT(PP2(1)**2+PP2(2)**2+PP2(3)**2)
8499 AMP2 = SQRT(ABS( (PP2(4)-PTOTP2)*(PP2(4)+PTOTP2) ))
8500 PTOTT1 = SQRT(PT1(1)**2+PT1(2)**2+PT1(3)**2)
8501 AMT1 = SQRT(ABS( (PT1(4)-PTOTT1)*(PT1(4)+PTOTT1) ))
8502 PTOTT2 = SQRT(PT2(1)**2+PT2(2)**2+PT2(3)**2)
8503 AMT2 = SQRT(ABS( (PT2(4)-PTOTT2)*(PT2(4)+PTOTT2) ))
8504 IF ((ABS(AMP1-XMP1).GT.TINY3).OR.(ABS(AMP2-XMP2).GT.TINY3).OR.
8505 & (ABS(AMT1-XMT1).GT.TINY3).OR.(ABS(AMT2-XMT2).GT.TINY3))
8506 & THEN
8507 WRITE(LOUT,'(1X,A,2(4G10.3,/))')
8508 & 'GETSPT: inconsistent masses',
8509 & AMP1,XMP1,AMP2,XMP2,AMT1,XMT1,AMT2,XMT2
8510* sr 22.11.00: commented. It should only have inconsistent masses for
8511* ultrahigh energies due to rounding problems
8512C GOTO 9999
8513 ENDIF
8514
8515* get chain masses
8516 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8517 & +(PP1(3)+PT1(3))**2)
8518 ECH = PP1(4)+PT1(4)
8519 AM1N = (ECH+PTOCH)*(ECH-PTOCH)
8520 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8521 & +(PP2(3)+PT2(3))**2)
8522 ECH = PP2(4)+PT2(4)
8523 AM2N = (ECH+PTOCH)*(ECH-PTOCH)
8524 IF ((AM1N.LT.0.0D0).OR.(AM2N.LT.0.0D0)) THEN
8525 IF (IOULEV(1).GT.0)
8526 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 2',
8527 & AM1N,AM2N
8528 GOTO 2
8529 ENDIF
8530 AM1N = SQRT(AM1N)
8531 AM2N = SQRT(AM2N)
8532
8533* check chain masses for very low mass chains
8534 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8535 & AM1N,DUM,-IDCH1,IREJ1)
8536 IF (IREJ1.NE.0) GOTO 2
8537 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8538 & AM2N,DUM,-IDCH2,IREJ2)
8539 IF (IREJ2.NE.0) GOTO 2
8540
8541 7 CONTINUE
8542 IF (AM1N.GT.ZERO) THEN
8543 AM1 = AM1N
8544 AM2 = AM2N
8545 ENDIF
8546 DO 6 I=1,4
8547 PP1I(I) = PP1(I)
8548 PP2I(I) = PP2(I)
8549 PT1I(I) = PT1(I)
8550 PT2I(I) = PT2(I)
8551 6 CONTINUE
8552
8553 RETURN
8554
8555 9999 CONTINUE
8556 IREJ = 1
8557 RETURN
8558 END
8559
8560*$ CREATE DT_SAPTRE.FOR
8561*COPY DT_SAPTRE
8562*
8563*===saptre=============================================================*
8564*
8565 SUBROUTINE DT_SAPTRE(IDX1,IDX2)
8566
8567************************************************************************
8568* p-t sampling for two-resonance systems. ("BAMJET-like" method) *
8569* IDX1,IDX2 indices of resonances ("chains") in DTEVT1 *
8570* Adopted from the original SAPTRE written by J. Ranft. *
8571* This version dated 18.01.95 is written by S. Roesler *
8572************************************************************************
8573
8574 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8575 SAVE
8576 PARAMETER ( LINP = 10 ,
8577 & LOUT = 6 ,
8578 & LDAT = 9 )
8579 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8580
8581* event history
8582 PARAMETER (NMXHKK=200000)
8583 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8584 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8585 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8586* extended event history
8587 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8588 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8589 & IHIST(2,NMXHKK)
8590* flags for input different options
8591 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8592 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8593 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8594
8595 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
8596
8597 DATA B3 /4.0D0/
8598
8599 ESMAX1 = PHKK(4,IDX1)-PHKK(5,IDX1)
8600 ESMAX2 = PHKK(4,IDX2)-PHKK(5,IDX2)
8601 ESMAX = MIN(ESMAX1,ESMAX2)
8602 IF (ESMAX.LE.0.05D0) RETURN
8603
8604 HMA = PHKK(5,IDX1)
8605 DO 1 K=1,4
8606 PA1(K) = PHKK(K,IDX1)
8607 PA2(K) = PHKK(K,IDX2)
8608 1 CONTINUE
8609
8610 IF (LEMCCK) THEN
8611 CALL DT_EVTEMC(PA1(1),PA1(2),PA1(3),PA1(4),1,IDUM,IDUM)
8612 CALL DT_EVTEMC(PA2(1),PA2(2),PA2(3),PA2(4),2,IDUM,IDUM)
8613 ENDIF
8614
8615 EXEB = 0.0D0
8616 IF (B3*ESMAX.LE.60.0D0) EXEB = EXP(-B3*ESMAX)
8617 BEXP = HMA*(1.0D0-EXEB)/B3
8618 AXEXP = (1.0D0-(B3*ESMAX-1.0D0)*EXEB)/B3**2
8619 WA = AXEXP/(BEXP+AXEXP)
8620 XAB = DT_RNDM(WA)
8621 10 CONTINUE
8622* ES is the transverse kinetic energy
8623 IF (XAB.LT.WA)THEN
8624 X = DT_RNDM(WA)
8625 Y = DT_RNDM(WA)
8626 ES = -2.0D0/(B3**2)*LOG(X*Y+TINY7)
8627 ELSE
8628 X = DT_RNDM(Y)
8629 ES = ABS(-LOG(X+TINY7)/B3)
8630 ENDIF
8631 IF (ES.GT.ESMAX) GOTO 10
8632 ES = ES+HMA
8633* transverse momentum
8634 HPS = SQRT((ES-HMA)*(ES+HMA))
8635
8636 CALL DT_DSFECF(SFE,CFE)
8637 HPX = HPS*CFE
8638 HPY = HPS*SFE
8639 PZ1NSQ = PA1(3)**2-HPS**2-2.0D0*PA1(1)*HPX-2.0D0*PA1(2)*HPY
8640 PZ2NSQ = PA2(3)**2-HPS**2+2.0D0*PA2(1)*HPX+2.0D0*PA2(2)*HPY
8641 IF ((PZ1NSQ.LT.TINY3).OR.(PZ2NSQ.LT.TINY3)) RETURN
8642
8643C PA1(3) = SIGN(SQRT(PZ1NSQ),PA1(3))
8644C PA2(3) = SIGN(SQRT(PZ2NSQ),PA2(3))
8645 PA1(1) = PA1(1)+HPX
8646 PA1(2) = PA1(2)+HPY
8647 PA2(1) = PA2(1)-HPX
8648 PA2(2) = PA2(2)-HPY
8649
8650* put resonances on mass-shell again
8651 XM1 = PHKK(5,IDX1)
8652 XM2 = PHKK(5,IDX2)
8653 CALL DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ1)
8654 IF (IREJ1.NE.0) RETURN
8655
8656 IF (LEMCCK) THEN
8657 CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,IDUM,IDUM)
8658 CALL DT_EVTEMC(-P2(1),-P2(2),-P2(3),-P2(4),2,IDUM,IDUM)
8659 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,12,IREJ1)
8660 IF (IREJ1.NE.0) RETURN
8661 ENDIF
8662
8663 DO 2 K=1,4
8664 PHKK(K,IDX1) = P1(K)
8665 PHKK(K,IDX2) = P2(K)
8666 2 CONTINUE
8667
8668 RETURN
8669 END
8670
8671*$ CREATE DT_CRONIN.FOR
8672*COPY DT_CRONIN
8673*
8674*===cronin=============================================================*
8675*
8676 SUBROUTINE DT_CRONIN(INCL)
8677
8678************************************************************************
8679* Cronin-Effect. Multiple scattering of partons at chain ends. *
8680* INCL = 1 multiple sc. in projectile *
8681* = 2 multiple sc. in target *
8682* This version dated 05.01.96 is written by S. Roesler. *
8683************************************************************************
8684
8685 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8686 SAVE
8687 PARAMETER ( LINP = 10 ,
8688 & LOUT = 6 ,
8689 & LDAT = 9 )
8690 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8691
8692* event history
8693 PARAMETER (NMXHKK=200000)
8694 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8695 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8696 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8697* extended event history
8698 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8699 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8700 & IHIST(2,NMXHKK)
8701* rejection counter
8702 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8703 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8704 & IREXCI(3),IRDIFF(2),IRINC
8705* Glauber formalism: collision properties
8706 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8707 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8708
8709 DIMENSION R(3),PIN(4),POUT(4),DEV(4)
8710
8711 DO 1 K=1,4
8712 DEV(K) = ZERO
8713 1 CONTINUE
8714
8715 DO 2 I=NPOINT(2),NHKK
8716 IF (ISTHKK(I).LT.0) THEN
8717* get z-position of the chain
8718 R(1) = VHKK(1,I)*1.0D12
8719 IF (INCL.EQ.2) R(1) = VHKK(1,I)*1.0D12-BIMPAC
8720 R(2) = VHKK(2,I)*1.0D12
8721 IDXNU = JMOHKK(1,I)
8722 IF ( (INCL.EQ.1).AND.(ISTHKK(IDXNU).EQ.10) )
8723 & IDXNU = JMOHKK(1,I-1)
8724 IF ( (INCL.EQ.2).AND.(ISTHKK(IDXNU).EQ. 9) )
8725 & IDXNU = JMOHKK(1,I+1)
8726 R(3) = VHKK(3,IDXNU)*1.0D12
8727* position of target parton the chain is connected to
8728 DO 3 K=1,4
8729 PIN(K) = PHKK(K,I)
8730 3 CONTINUE
8731* multiple scattering of parton with DTEVT1-index I
8732 CALL DT_CROMSC(PIN,R,POUT,INCL)
8733**testprint
8734C IF (NEVHKK.EQ.5) THEN
8735C AMIN = PIN(4)**2-PIN(1)**2-PIN(2)**2-PIN(3)**2
8736C AMOU = POUT(4)**2-POUT(1)**2-POUT(2)**2-POUT(3)**2
8737C AMIN = SIGN(SQRT(ABS(AMIN)),AMIN)
8738C AMOU = SIGN(SQRT(ABS(AMOU)),AMOU)
8739C WRITE(6,'(A,I4,2E15.5)')'I,AMIN,AMOU: ',I,AMIN,AMOU
8740C WRITE(6,'(A,4E15.5)')'PIN: ',PIN
8741C WRITE(6,'(A,4E15.5)')'POUT: ',POUT
8742C ENDIF
8743**
8744* increase accumulator by energy-momentum difference
8745 DO 4 K=1,4
8746 DEV(K) = DEV(K)+POUT(K)-PIN(K)
8747 PHKK(K,I) = POUT(K)
8748 4 CONTINUE
8749 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8750 & PHKK(2,I)**2-PHKK(3,I)**2))
8751 ENDIF
8752 2 CONTINUE
8753
8754* dump accumulator to momenta of valence partons
8755 NVAL = 0
8756 ETOT = 0.0D0
8757 DO 5 I=NPOINT(2),NHKK
8758 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8759 NVAL = NVAL+1
8760 ETOT = ETOT+PHKK(4,I)
8761 ENDIF
8762 5 CONTINUE
8763C WRITE(LOUT,1000) NVAL,(DEV(K)/DBLE(NVAL),K=1,4)
8764 1000 FORMAT(1X,'CRONIN : number of val. partons ',I4,/,
8765 & 9X,4E12.4)
8766 DO 6 I=NPOINT(2),NHKK
8767 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8768 E = PHKK(4,I)
8769 DO 7 K=1,4
8770C PHKK(K,I) = PHKK(K,I)-DEV(K)/DBLE(NVAL)
8771 PHKK(K,I) = PHKK(K,I)-DEV(K)*E/ETOT
8772 7 CONTINUE
8773 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8774 & PHKK(2,I)**2-PHKK(3,I)**2))
8775 ENDIF
8776 6 CONTINUE
8777
8778 RETURN
8779 END
8780
8781*$ CREATE DT_CROMSC.FOR
8782*COPY DT_CROMSC
8783*
8784*===cromsc=============================================================*
8785*
8786 SUBROUTINE DT_CROMSC(PIN,R,POUT,INCL)
8787
8788************************************************************************
8789* Cronin-Effect. Multiple scattering of one parton passing through *
8790* nuclear matter. *
8791* PIN(4) input 4-momentum of parton *
8792* POUT(4) 4-momentum of parton after mult. scatt. *
8793* R(3) spatial position of parton in target nucleus *
8794* INCL = 1 multiple sc. in projectile *
8795* = 2 multiple sc. in target *
8796* This is a revised version of the original version written by J. Ranft*
8797* This version dated 17.01.95 is written by S. Roesler. *
8798************************************************************************
8799
8800 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8801 SAVE
8802 PARAMETER ( LINP = 10 ,
8803 & LOUT = 6 ,
8804 & LDAT = 9 )
8805 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8806
8807 LOGICAL LSTART
8808
8809* rejection counter
8810 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8811 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8812 & IREXCI(3),IRDIFF(2),IRINC
8813* Glauber formalism: collision properties
8814 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8815 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8816* various options for treatment of partons (DTUNUC 1.x)
8817* (chain recombination, Cronin,..)
8818 LOGICAL LCO2CR,LINTPT
8819 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8820 & LCO2CR,LINTPT
8821
8822 DIMENSION PIN(4),POUT(4),R(3)
8823
8824 DATA LSTART /.TRUE./
8825
8826 IRCRON(1) = IRCRON(1)+1
8827
8828 IF (LSTART) THEN
8829 WRITE(LOUT,1000) CRONCO
8830 1000 FORMAT(/,1X,'CROMSC: multiple scattering of chain ends',
8831 & ' treated',/,10X,'with parameter CRONCO = ',F5.2)
8832 LSTART = .FALSE.
8833 ENDIF
8834
8835 NCBACK = 0
8836 RNCL = RPROJ
8837 IF (INCL.EQ.2) RNCL = RTARG
8838
8839* Lorentz-transformation into Lab.
8840 MODE = -(INCL+1)
8841 CALL DT_LTNUC(PIN(3),PIN(4),PZ,PE,MODE)
8842
8843 PTOT = SQRT(PIN(1)**2+PIN(2)**2+PZ**2)
8844 IF (PTOT.LE.8.0D0) GOTO 9997
8845
8846* direction cosines of parton before mult. scattering
8847 COSX = PIN(1)/PTOT
8848 COSY = PIN(2)/PTOT
8849 COSZ = PZ/PTOT
8850
8851 RTESQ = R(1)**2+R(2)**2+R(3)**2-RNCL**2
8852 IF (RTESQ.GE.-TINY3) GOTO 9999
8853
8854* calculate distance (DIST) from R to surface of nucleus (radius RNCL)
8855* in the direction of particle motion
8856
8857 A = COSX*R(1)+COSY*R(2)+COSZ*R(3)
8858 TMP = A**2-RTESQ
8859 IF (TMP.LT.ZERO) GOTO 9998
8860 DIST = -A+SQRT(TMP)
8861
8862* multiple scattering angle
8863 THETO = CRONCO*SQRT(DIST)/PTOT
8864 IF (THETO.GT.0.1D0) THETO=0.1D0
8865
8866 1 CONTINUE
8867* Gaussian sampling of spatial angle
8868 CALL DT_RANNOR(R1,R2)
8869 THETA = ABS(R1*THETO)
8870 IF (THETA.GT.0.3D0) GOTO 9997
8871 CALL DT_DSFECF(SFE,CFE)
8872 COSTH = COS(THETA)
8873 SINTH = SIN(THETA)
8874
8875* new direction cosines
8876 CALL DT_MYTRAN(1,COSX,COSY,COSZ,COSTH,SINTH,SFE,CFE,
8877 & COSXN,COSYN,COSZN)
8878
8879 POUT(1) = COSXN*PTOT
8880 POUT(2) = COSYN*PTOT
8881 PZ = COSZN*PTOT
8882* Lorentz-transformation into nucl.-nucl. cms
8883 MODE = INCL+1
8884 CALL DT_LTNUC(PZ,PE,POUT(3),POUT(4),MODE)
8885
8886C IF (ABS(PIN(4)-POUT(4)).GT.0.2D0) THEN
8887C IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.1D0 ) THEN
8888 IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.05D0 ) THEN
8889 THETO = THETO/2.0D0
8890 NCBACK = NCBACK+1
8891 IF (MOD(NCBACK,200).EQ.0) THEN
8892 WRITE(LOUT,1001) THETO,PIN,POUT
8893 1001 FORMAT(1X,'CROMSC: inconsistent scattering angle ',
8894 & E12.4,/,1X,' PIN :',4E12.4,/,
8895 & 1X,' POUT:',4E12.4)
8896 GOTO 9997
8897 ENDIF
8898 GOTO 1
8899 ENDIF
8900
8901 RETURN
8902
8903 9997 IRCRON(2) = IRCRON(2)+1
8904 GOTO 9999
8905 9998 IRCRON(3) = IRCRON(3)+1
8906
8907 9999 CONTINUE
8908 DO 100 K=1,4
8909 POUT(K) = PIN(K)
8910 100 CONTINUE
8911 RETURN
8912 END
8913
8914*$ CREATE DT_COM2CR.FOR
8915*COPY DT_COM2CR
8916*
8917*===com2sr=============================================================*
8918*
8919 SUBROUTINE DT_COM2CR
8920
8921************************************************************************
8922* COMbine q-aq chains to Color Ropes (qq-aqaq). *
8923* CUTOF parameter determining minimum number of not *
8924* combined q-aq chains *
8925* This subroutine replaces KKEVCC etc. *
8926* This version dated 11.01.95 is written by S. Roesler. *
8927************************************************************************
8928
8929 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8930 SAVE
8931 PARAMETER ( LINP = 10 ,
8932 & LOUT = 6 ,
8933 & LDAT = 9 )
8934
8935* event history
8936 PARAMETER (NMXHKK=200000)
8937 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8938 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8939 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8940* extended event history
8941 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8942 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8943 & IHIST(2,NMXHKK)
8944* statistics
8945 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
8946 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
8947 & ICEVTG(8,0:30)
8948* various options for treatment of partons (DTUNUC 1.x)
8949* (chain recombination, Cronin,..)
8950 LOGICAL LCO2CR,LINTPT
8951 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8952 & LCO2CR,LINTPT
8953
8954 DIMENSION IDXQA(248),IDXAQ(248)
8955
8956 ICCHAI(1,9) = ICCHAI(1,9)+1
8957 NQA = 0
8958 NAQ = 0
8959* scan DTEVT1 for q-aq, aq-q chains
8960 DO 10 I=NPOINT(3),NHKK
8961* skip "chains" which are resonances
8962 IF ((IDHKK(I).EQ.88888).AND.(IDRES(I).EQ.0)) THEN
8963 MO1 = JMOHKK(1,I)
8964 MO2 = JMOHKK(2,I)
8965 IF ((ABS(IDHKK(MO1)).LE.6).AND.(ABS(IDHKK(MO2)).LE.6)) THEN
8966* q-aq, aq-q chain found, keep index
8967 IF (IDHKK(MO1).GT.0) THEN
8968 NQA = NQA+1
8969 IDXQA(NQA) = I
8970 ELSE
8971 NAQ = NAQ+1
8972 IDXAQ(NAQ) = I
8973 ENDIF
8974 ENDIF
8975 ENDIF
8976 10 CONTINUE
8977
8978* minimum number of q-aq chains requested for the same projectile/
8979* target
8980 NCHMIN = IDT_NPOISS(CUTOF)
8981
8982* combine q-aq chains of the same projectile
8983 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,1)
8984* combine q-aq chains of the same target
8985 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,2)
8986* combine aq-q chains of the same projectile
8987 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,1)
8988* combine aq-q chains of the same target
8989 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,2)
8990
8991 RETURN
8992 END
8993
8994*$ CREATE DT_SCN4CR.FOR
8995*COPY DT_SCN4CR
8996*
8997*===scn4cr=============================================================*
8998*
8999 SUBROUTINE DT_SCN4CR(NCH,IDXCH,NCHMIN,MODE)
9000
9001************************************************************************
9002* SCan q-aq chains for Color Ropes. *
9003* This version dated 11.01.95 is written by S. Roesler. *
9004************************************************************************
9005
9006 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9007 SAVE
9008 PARAMETER ( LINP = 10 ,
9009 & LOUT = 6 ,
9010 & LDAT = 9 )
9011
9012* event history
9013 PARAMETER (NMXHKK=200000)
9014 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9015 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9016 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9017* extended event history
9018 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9019 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9020 & IHIST(2,NMXHKK)
9021
9022 DIMENSION IDXCH(248),IDXJN(248)
9023
9024 DO 1 I=1,NCH
9025 IF (IDXCH(I).GT.0) THEN
9026 NJOIN = 1
9027 IDXMO = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(I))))
9028 IDXJN(NJOIN) = I
9029 IF (I.LT.NCH) THEN
9030 DO 2 J=I+1,NCH
9031 IF (IDXCH(J).GT.0) THEN
9032 IDXMO1 = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(J))))
9033 IF (IDXMO.EQ.IDXMO1) THEN
9034 NJOIN = NJOIN+1
9035 IDXJN(NJOIN) = J
9036 ENDIF
9037 ENDIF
9038 2 CONTINUE
9039 ENDIF
9040 IF (NJOIN.GE.NCHMIN+2) THEN
9041 NJ = INT(DBLE(NJOIN-NCHMIN)/2.0D0)
9042 DO 3 J=1,2*NJ,2
9043 CALL DT_JOIN(IDXCH(IDXJN(J)),IDXCH(IDXJN(J+1)),IREJ1)
9044 IF (IREJ1.NE.0) GOTO 3
9045 IDXCH(IDXJN(J)) = 0
9046 IDXCH(IDXJN(J+1)) = 0
9047 3 CONTINUE
9048 ENDIF
9049 ENDIF
9050 1 CONTINUE
9051
9052 RETURN
9053 END
9054
9055*$ CREATE DT_JOIN.FOR
9056*COPY DT_JOIN
9057*
9058*===join===============================================================*
9059*
9060 SUBROUTINE DT_JOIN(IDX1,IDX2,IREJ)
9061
9062************************************************************************
9063* This subroutine joins two q-aq chains to one qq-aqaq chain. *
9064* IDX1, IDX2 DTEVT1 indices of chains to be joined *
9065* This version dated 11.01.95 is written by S. Roesler. *
9066************************************************************************
9067
9068 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9069 SAVE
9070 PARAMETER ( LINP = 10 ,
9071 & LOUT = 6 ,
9072 & LDAT = 9 )
9073
9074* event history
9075 PARAMETER (NMXHKK=200000)
9076 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9077 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9078 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9079* extended event history
9080 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9081 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9082 & IHIST(2,NMXHKK)
9083* flags for input different options
9084 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
9085 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
9086 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
9087* statistics
9088 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
9089 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
9090 & ICEVTG(8,0:30)
9091
9092 DIMENSION MO(2,2),ID(2,2),IDX(2),PCH(4),PP(4),PT(4),P1(4),P2(4)
9093
9094 IREJ = 0
9095
9096 IDX(1) = IDX1
9097 IDX(2) = IDX2
9098 DO 1 I=1,2
9099 DO 2 J=1,2
9100 MO(I,J) = JMOHKK(J,IDX(I))
9101 ID(I,J) = IDT_IPDG2B(IDHKK(MO(I,J)),1,2)
9102 2 CONTINUE
9103 1 CONTINUE
9104
9105* check consistency
9106 IF ((ABS(ID(1,1)).GT.6).OR.(ABS(ID(1,2)).GT.6).OR.
9107 & (ABS(ID(2,1)).GT.6).OR.(ABS(ID(2,2)).GT.6).OR.
9108 & ((ID(1,1)*ID(2,1)).LT.0).OR.
9109 & ((ID(1,2)*ID(2,2)).LT.0)) THEN
9110 WRITE(LOUT,1000) IDX(1),MO(1,1),MO(1,2),IDX(2),MO(2,1),
9111 & MO(2,2)
9112 1000 FORMAT(1X,'JOIN: incons. chain system! chain ',I4,':',
9113 & 2I5,' chain ',I4,':',2I5)
9114 ENDIF
9115
9116* join chains
9117 DO 3 K=1,4
9118 PP(K) = PHKK(K,MO(1,1))+PHKK(K,MO(2,1))
9119 PT(K) = PHKK(K,MO(1,2))+PHKK(K,MO(2,2))
9120 3 CONTINUE
9121 IF1 = IDT_IB2PDG(ID(1,1),ID(2,1),2)
9122 IF2 = IDT_IB2PDG(ID(1,2),ID(2,2),2)
9123 IST1 = ISTHKK(MO(1,1))
9124 IST2 = ISTHKK(MO(1,2))
9125
9126* put partons again on mass shell
9127 XM1 = 0.0D0
9128 XM2 = 0.0D0
9129 IF (IMSHL.EQ.1) THEN
9130 XM1 = PYMASS(IF1)
9131 XM2 = PYMASS(IF2)
9132 ENDIF
9133 CALL DT_MASHEL(PP,PT,XM1,XM2,P1,P2,IREJ1)
9134 IF (IREJ1.NE.0) GOTO 9999
9135 DO 4 I=1,4
9136 PP(I) = P1(I)
9137 PT(I) = P2(I)
9138 4 CONTINUE
9139
9140* store new partons in DTEVT1
9141 CALL DT_EVTPUT(IST1,IF1,MO(1,1),MO(2,1),PP(1),PP(2),PP(3),PP(4),
9142 & 0,0,0)
9143 CALL DT_EVTPUT(IST2,IF2,MO(1,2),MO(2,2),PT(1),PT(2),PT(3),PT(4),
9144 & 0,0,0)
9145 DO 5 K=1,4
9146 PCH(K) = PP(K)+PT(K)
9147 5 CONTINUE
9148
9149* check new chain for lower mass limit
9150 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
9151 AMCH = SQRT(ABS(PCH(4)**2-PCH(1)**2-PCH(2)**2-PCH(3)**2))
9152 CALL DT_CH2RES(ID(1,1),ID(2,1),ID(1,2),ID(2,2),IDUM,IDUM,
9153 & AMCH,AMCHN,3,IREJ1)
9154 IF (IREJ1.NE.0) THEN
9155 NHKK = NHKK-2
9156 GOTO 9999
9157 ENDIF
9158 ENDIF
9159
9160 ICCHAI(2,9) = ICCHAI(2,9)+1
9161* store new chain in DTEVT1
9162 KCH = 191
9163 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),0,0,9)
9164 IDHKK(IDX(1)) = 22222
9165 IDHKK(IDX(2)) = 22222
9166* special treatment for space-time coordinates
9167 DO 6 K=1,4
9168 VHKK(K,NHKK) = (VHKK(K,IDX(1))+VHKK(K,IDX(2)))/2.0D0
9169 WHKK(K,NHKK) = (WHKK(K,IDX(1))+WHKK(K,IDX(2)))/2.0D0
9170 6 CONTINUE
9171 RETURN
9172
9173 9999 CONTINUE
9174 IREJ = 1
9175 RETURN
9176 END
9177
9178*$ CREATE DT_XSGLAU.FOR
9179*COPY DT_XSGLAU
9180*
9181*===xsglau=============================================================*
9182*
9183 SUBROUTINE DT_XSGLAU(NA,NB,JJPROJ,XI,Q2I,ECMI,IE,IQ,NIDX)
9184
9185************************************************************************
9186* Total, elastic, quasi-elastic, inelastic cross sections according to *
9187* Glauber's approach. *
9188* NA / NB mass numbers of proj./target nuclei *
9189* JJPROJ bamjet-index of projectile (=1 in case of proj.nucleus) *
9190* XI,Q2I,ECMI kinematical variables x, Q^2, E_cm *
9191* IE,IQ indices of energy and virtuality (the latter for gamma *
9192* projectiles only) *
9193* NIDX index of projectile/target nucleus *
9194* This version dated 17.3.98 is written by S. Roesler *
9195************************************************************************
9196
9197 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9198 SAVE
9199 PARAMETER ( LINP = 10 ,
9200 & LOUT = 6 ,
9201 & LDAT = 9 )
9202
9203 COMPLEX*16 CZERO,CONE,CTWO
9204 CHARACTER*12 CFILE
9205 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9206 & ONETHI=ONE/THREE,TINY25=1.0D-25)
9207 PARAMETER (TWOPI = 6.283185307179586454D+00,
9208 & PI = TWOPI/TWO,
9209 & GEV2MB = 0.38938D0,
9210 & GEV2FM = 0.1972D0,
9211 & ALPHEM = ONE/137.0D0,
9212* proton mass
9213 & AMP = 0.938D0,
9214 & AMP2 = AMP**2,
9215* approx. nucleon radius
9216 & RNUCLE = 1.12D0)
9217
9218* particle properties (BAMJET index convention)
9219 CHARACTER*8 ANAME
9220 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
9221 & IICH(210),IIBAR(210),K1(210),K2(210)
9222 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9223 PARAMETER ( MAXNCL = 260,
9224 & MAXVQU = MAXNCL,
9225 & MAXSQU = 20*MAXVQU,
9226 & MAXINT = MAXVQU+MAXSQU)
9227* Glauber formalism: parameters
9228 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9229 & BMAX(NCOMPX),BSTEP(NCOMPX),
9230 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9231 & NSITEB,NSTATB
9232* Glauber formalism: cross sections
9233 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
9234 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
9235 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
9236 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
9237 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
9238 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
9239 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
9240 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
9241 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
9242 & BSLOPE,NEBINI,NQBINI
9243* Glauber formalism: flags and parameters for statistics
9244 LOGICAL LPROD
9245 CHARACTER*8 CGLB
9246 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
9247* nucleon-nucleon event-generator
9248 CHARACTER*8 CMODEL
9249 LOGICAL LPHOIN
9250 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
9251* VDM parameter for photon-nucleus interactions
9252 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
9253* parameters for hA-diffraction
9254 COMMON /DTDIHA/ DIBETA,DIALPH
9255
9256 COMPLEX*16 PP11(MAXNCL),PP12(MAXNCL),PP21(MAXNCL),PP22(MAXNCL),
9257 & OMPP11,OMPP12,OMPP21,OMPP22,
9258 & DIPP11,DIPP12,DIPP21,DIPP22,AVDIPP,
9259 & PPTMP1,PPTMP2
9260 COMPLEX*16 C,CA,CI
9261 DIMENSION COOP1(3,MAXNCL),COOT1(3,MAXNCL),
9262 & COOP2(3,MAXNCL),COOT2(3,MAXNCL),
9263 & BPROD(KSITEB)
9264
9265 PARAMETER (NPOINT=16)
9266 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
9267
9268 LOGICAL LFIRST,LOPEN
9269 DATA LFIRST,LOPEN /.TRUE.,.FALSE./
9270
9271 NTARG = ABS(NIDX)
9272* for quasi-elastic neutrino scattering set projectile to proton
9273* it should not have an effect since the whole Glauber-formalism is
9274* not needed for these interactions..
9275 IF (MCGENE.EQ.4) THEN
9276 IJPROJ = 1
9277 ELSE
9278 IJPROJ = JJPROJ
9279 ENDIF
9280
9281 IF ((ABS(IOGLB).EQ.1).AND.(.NOT.LOPEN)) THEN
9282 I = INDEX(CGLB,' ')
9283 IF (I.EQ.0) THEN
9284 CFILE = CGLB//'.glb'
9285 OPEN(LDAT,FILE=CGLB//'.glb',STATUS='UNKNOWN')
9286 ELSEIF (I.GT.1) THEN
9287 CFILE = CGLB(1:I-1)//'.glb'
9288 OPEN(LDAT,FILE=CGLB(1:I-1)//'.glb',STATUS='UNKNOWN')
9289 ELSE
9290 STOP 'XSGLAU 1'
9291 ENDIF
9292 LOPEN = .TRUE.
9293 ENDIF
9294
9295 CZERO = DCMPLX(ZERO,ZERO)
9296 CONE = DCMPLX(ONE,ZERO)
9297 CTWO = DCMPLX(TWO,ZERO)
9298 NEBINI = IE
9299 NQBINI = IQ
9300
9301* re-define kinematics
9302 S = ECMI**2
9303 Q2 = Q2I
9304 X = XI
9305* g(Q2=0)-A, h-A, A-A scattering
9306 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9307 Q2 = 0.0001D0
9308 X = Q2/(S+Q2-AMP2)
9309* g(Q2>0)-A scattering
9310 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(S.GT.ZERO)) THEN
9311 X = Q2/(S+Q2-AMP2)
9312 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9313 Q2 = (S-AMP2)*X/(ONE-X)
9314 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
9315 S = Q2*(ONE-X)/X+AMP2
9316 ELSE
9317 WRITE(LOUT,*) 'XSGLAU: inconsistent input ',S,Q2,X
9318 STOP
9319 ENDIF
9320 ECMNN(IE) = SQRT(S)
9321 Q2G(IQ) = Q2
9322 XNU = (S+Q2-AMP2)/(TWO*AMP)
9323
9324* parameters determining statistics in evaluating Glauber-xsection
9325 NSTATB = JSTATB
9326 NSITEB = JBINSB
9327 IF (NSITEB.GT.KSITEB) NSITEB = KSITEB
9328
9329* set up interaction geometry (common /DTGLAM/)
9330* projectile/target radii
9331 RPRNCL = DT_RNCLUS(NA)
9332 RTANCL = DT_RNCLUS(NB)
9333 IF (IJPROJ.EQ.7) THEN
9334 RASH(1) = ZERO
9335 RBSH(NTARG) = RTANCL
9336 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9337 ELSE
9338 IF (NIDX.LE.-1) THEN
9339 RASH(1) = RPRNCL
9340 RBSH(NTARG) = RTANCL
9341 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9342 ELSE
9343 RASH(NTARG) = RPRNCL
9344 RBSH(1) = RTANCL
9345 BMAX(NTARG) = 2.0D0*(RASH(NTARG)+RBSH(1))
9346 ENDIF
9347 ENDIF
9348* maximum impact-parameter
9349 BSTEP(NTARG)= BMAX(NTARG)/DBLE(NSITEB-1)
9350
9351* slope, rho ( Re(f(0))/Im(f(0)) )
9352 IF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
9353 IF (MCGENE.EQ.2) THEN
9354 ZERO1 = ZERO
9355 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,SDUM1,SDUM2,SDUM3,
9356 & BSLOPE,0)
9357 ELSE
9358 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
9359 ENDIF
9360 IF (ECMNN(IE).LE.3.0D0) THEN
9361 ROSH = -0.43D0
9362 ELSEIF ((ECMNN(IE).GT.3.0D0).AND.(ECMNN(IE).LE.50.D0)) THEN
9363 ROSH = -0.63D0+0.175D0*LOG(ECMNN(IE))
9364 ELSEIF (ECMNN(IE).GT.50.0D0) THEN
9365 ROSH = 0.1D0
9366 ENDIF
9367 ELSEIF (IJPROJ.EQ.7) THEN
9368 ROSH = 0.1D0
9369 ELSE
9370 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
9371 ROSH = 0.01D0
9372 ENDIF
9373
9374* projectile-nucleon xsection (in fm)
9375 IF (IJPROJ.EQ.7) THEN
9376 SIGSH = DT_SIGVP(X,Q2)/10.0D0
9377 ELSE
9378 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
9379 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
9380C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
9381 DUMZER = ZERO
9382 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
9383 SIGSH = SIGSH/10.0D0
9384 ENDIF
9385
9386* parameters for projectile diffraction (hA scattering only)
9387 IF ((MCGENE.EQ.2).AND.(NA.EQ.1).AND.(NB.GT.1).AND.(IJPROJ.NE.7)
9388 & .AND.(DIBETA.GE.ZERO)) THEN
9389 ZERO1 = ZERO
9390 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,STOT,SDUM2,SDIF1,BDUM,0)
9391C DIBETA = SDIF1/STOT
9392 DIBETA = 0.2D0
9393 DIGAMM = SQRT(DIALPH**2+DIBETA**2)
9394 IF (DIBETA.LE.ZERO) THEN
9395 ALPGAM = ONE
9396 ELSE
9397 ALPGAM = DIALPH/DIGAMM
9398 ENDIF
9399 FACDI1 = ONE-ALPGAM
9400 FACDI2 = ONE+ALPGAM
9401 FACDI = SQRT(FACDI1*FACDI2)
9402 WRITE(LOUT,*)'DIBETA,DIALPH,DIGAMM: ',DIBETA,DIALPH,DIGAMM
9403 ELSE
9404 DIBETA = -1.0D0
9405 DIALPH = ZERO
9406 DIGAMM = ZERO
9407 FACDI1 = ZERO
9408 FACDI2 = 2.0D0
9409 FACDI = ZERO
9410 ENDIF
9411
9412* initializations
9413 DO 10 I=1,NSITEB
9414 BSITE( 0,IQ,NTARG,I) = ZERO
9415 BSITE(IE,IQ,NTARG,I) = ZERO
9416 BPROD(I) = ZERO
9417 10 CONTINUE
9418 STOT = ZERO
9419 STOT2 = ZERO
9420 SELA = ZERO
9421 SELA2 = ZERO
9422 SQEP = ZERO
9423 SQEP2 = ZERO
9424 SQET = ZERO
9425 SQET2 = ZERO
9426 SQE2 = ZERO
9427 SQE22 = ZERO
9428 SPRO = ZERO
9429 SPRO2 = ZERO
9430 SDEL = ZERO
9431 SDEL2 = ZERO
9432 SDQE = ZERO
9433 SDQE2 = ZERO
9434 FACN = ONE/DBLE(NSTATB)
9435
9436 IPNT = 0
9437 RPNT = ZERO
9438
9439* initialize Gauss-integration for photon-proj.
9440 JPOINT = 1
9441 IF (IJPROJ.EQ.7) THEN
9442 IF (INTRGE(1).EQ.1) THEN
9443 AMLO2 = (3.0D0*AAM(13))**2
9444 ELSEIF (INTRGE(1).EQ.2) THEN
9445 AMLO2 = AAM(33)**2
9446 ELSE
9447 AMLO2 = AAM(96)**2
9448 ENDIF
9449 IF (INTRGE(2).EQ.1) THEN
9450 AMHI2 = S/TWO
9451 ELSEIF (INTRGE(2).EQ.2) THEN
9452 AMHI2 = S/4.0D0
9453 ELSE
9454 AMHI2 = S
9455 ENDIF
9456 AMHI20 = (ECMNN(IE)-AMP)**2
9457 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
9458 XAMLO = LOG( AMLO2+Q2 )
9459 XAMHI = LOG( AMHI2+Q2 )
9460**PHOJET105a
9461C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9462**PHOJET112
9463 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9464**
9465 JPOINT = NPOINT
9466* ratio direct/total photon-nucleon xsection
9467 CALL DT_POILIK(NB,NTARG,ECMNN(IE),Q2,IPNT,RPNT,1)
9468 ENDIF
9469
9470* read pre-initialized profile-function from file
9471 IF (IOGLB.EQ.1) THEN
9472 READ(LDAT,'(5I10,E15.5)') KJPROJ,IA,IB,ISTATB,ISITEB,DUM
9473 IF ((IA.NE.NA).OR.(IB.NE.NB)) THEN
9474 WRITE(LOUT,1000) CFILE,IA,IB,ISTATB,ISITEB,
9475 & NA,NB,NSTATB,NSITEB
9476 1000 FORMAT(' XSGLAU: inconsistent input data in file ',A12,/,
9477 & ' (IA,IB,ISTATB,ISITEB) ',4I10,/,
9478 & ' (NA,NB,NSTATB,NSITEB) ',4I10)
9479 STOP
9480 ENDIF
9481 IF (LFIRST) WRITE(LOUT,1001) CFILE
9482 1001 FORMAT(/,' XSGLAU: impact parameter distribution read from ',
9483 & 'file ',A12,/)
9484 READ(LDAT,'(6E12.5)') XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),
9485 & XSQEP(IE,IQ,NTARG),XSQET(IE,IQ,NTARG),
9486 & XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9487 READ(LDAT,'(6E12.5)') XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),
9488 & XEQEP(IE,IQ,NTARG),XEQET(IE,IQ,NTARG),
9489 & XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9490 NLINES = INT(DBLE(NSITEB)/7.0D0)
9491 IF (NLINES.GT.0) THEN
9492 DO 21 I=1,NLINES
9493 ISTART = 7*I-6
9494 READ(LDAT,'(7E11.4)')
9495 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9496 21 CONTINUE
9497 ENDIF
9498 ISTART = 7*NLINES+1
9499 IF (ISTART.LE.NSITEB) THEN
9500 READ(LDAT,'(7E11.4)')
9501 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9502 ENDIF
9503 LFIRST = .FALSE.
9504 GOTO 100
9505* variable projectile/target/energy runs:
9506* read pre-initialized profile-functions from file
9507 ELSEIF (IOGLB.EQ.100) THEN
9508 CALL DT_GLBSET(IJPROJ,IINA,IINB,RRELAB,0)
9509 GOTO 100
9510 ENDIF
9511
9512* cross sections averaged over NSTATB nucleon configurations
9513 DO 11 IS=1,NSTATB
9514C IF ((NA.EQ.207).AND.(NB.EQ.207)) WRITE(LOUT,*) 'conf. ',IS
9515 STOTN = ZERO
9516 SELAN = ZERO
9517 SQEPN = ZERO
9518 SQETN = ZERO
9519 SQE2N = ZERO
9520 SPRON = ZERO
9521 SDELN = ZERO
9522 SDQEN = ZERO
9523
9524 IF (NIDX.LE.-1) THEN
9525 CALL DT_CONUCL(COOP1,NA,RASH(1),0)
9526 CALL DT_CONUCL(COOT1,NB,RBSH(NTARG),1)
9527 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9528 CALL DT_CONUCL(COOP2,NA,RASH(1),0)
9529 CALL DT_CONUCL(COOT2,NB,RBSH(NTARG),1)
9530 ENDIF
9531 ELSE
9532 CALL DT_CONUCL(COOP1,NA,RASH(NTARG),0)
9533 CALL DT_CONUCL(COOT1,NB,RBSH(1),1)
9534 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9535 CALL DT_CONUCL(COOP2,NA,RASH(NTARG),0)
9536 CALL DT_CONUCL(COOT2,NB,RBSH(1),1)
9537 ENDIF
9538 ENDIF
9539
9540* integration over impact parameter B
9541 DO 12 IB=1,NSITEB-1
9542 STOTB = ZERO
9543 SELAB = ZERO
9544 SQEPB = ZERO
9545 SQETB = ZERO
9546 SQE2B = ZERO
9547 SPROB = ZERO
9548 SDIR = ZERO
9549 SDELB = ZERO
9550 SDQEB = ZERO
9551 B = DBLE(IB)*BSTEP(NTARG)
9552 FACB = 10.0D0*TWOPI*B*BSTEP(NTARG)
9553
9554* integration over M_V^2 for photon-proj.
9555 DO 14 IM=1,JPOINT
9556 PP11(1) = CONE
9557 PP12(1) = CONE
9558 PP21(1) = CONE
9559 PP22(1) = CONE
9560 IF (IJPROJ.EQ.7) THEN
9561 DO 13 K=2,NB
9562 PP11(K) = CONE
9563 PP12(K) = CONE
9564 PP21(K) = CONE
9565 PP22(K) = CONE
9566 13 CONTINUE
9567 ENDIF
9568 SHI = ZERO
9569 FACM = ONE
9570 DCOH = 1.0D10
9571
9572 IF (IJPROJ.EQ.7) THEN
9573 AMV2 = EXP(ABSZX(IM))-Q2
9574 AMV = SQRT(AMV2)
9575 IF (AMV2.LT.16.0D0) THEN
9576 R = TWO
9577 ELSEIF ((AMV2.GE.16.0D0).AND.(AMV2.LT.121.0D0)) THEN
9578 R = 10.0D0/3.0D0
9579 ELSE
9580 R = 11.0D0/3.0D0
9581 ENDIF
9582* define M_V dependent properties of nucleon scattering amplitude
9583* V_M-nucleon xsection
9584 SIGMVD = RPNT*SIGSH/(AMV2+Q2+RL2)*10.0D0
9585 SIGMV = (ONE-RPNT)*SIGSH/(AMV2+Q2+RL2)
9586* slope-parametrisation a la Kaidalov
9587 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
9588 & +0.25D0*LOG(S/(AMV2+Q2)))
9589* coherence length
9590 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+Q2)*GEV2FM
9591* integration weight factor
9592 FACM = ALPHEM/(3.0D0*PI*(ONE-X))*
9593 & R*AMV2/(AMV2+Q2)*(ONE+EPSPOL*Q2/AMV2)*WEIGHT(IM)
9594 ENDIF
9595 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
9596 GAM = GSH
9597 IF (IJPROJ.EQ.7) THEN
9598 RCA = GAM*SIGMV/TWOPI
9599 ELSE
9600 RCA = GAM*SIGSH/TWOPI
9601 ENDIF
9602 FCA = -ROSH*RCA
9603 CA = DCMPLX(RCA,FCA)
9604 CI = CONE
9605
9606 DO 15 INA=1,NA
9607 KK1 = 1
9608 INT1 = 1
9609 KK2 = 1
9610 INT2 = 1
9611 DO 16 INB=1,NB
9612* photon-projectile: check for supression by coherence length
9613 IF (IJPROJ.EQ.7) THEN
9614 IF (ABS(COOT1(3,INB)-COOT1(3,KK1)).GT.DCOH)THEN
9615 KK1 = INB
9616 INT1 = INT1+1
9617 ENDIF
9618 IF (ABS(COOT2(3,INB)-COOT2(3,KK2)).GT.DCOH)THEN
9619 KK2 = INB
9620 INT2 = INT2+1
9621 ENDIF
9622 ENDIF
9623
9624 X11 = B+COOT1(1,INB)-COOP1(1,INA)
9625 Y11 = COOT1(2,INB)-COOP1(2,INA)
9626 XY11 = GAM*(X11*X11+Y11*Y11)
9627 IF (XY11.LE.15.0D0) THEN
9628 C = CONE-CA*EXP(-XY11)
9629 AR = DBLE(PP11(INT1))
9630 AI = DIMAG(PP11(INT1))
9631 IF (ABS(AR).LT.TINY25) AR = ZERO
9632 IF (ABS(AI).LT.TINY25) AI = ZERO
9633 PP11(INT1) = DCMPLX(AR,AI)
9634 PP11(INT1) = PP11(INT1)*C
9635 AR = DBLE(C)
9636 AI = DIMAG(C)
9637 SHI = SHI+LOG(AR*AR+AI*AI)
9638 ENDIF
9639 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9640 X12 = B+COOT2(1,INB)-COOP1(1,INA)
9641 Y12 = COOT2(2,INB)-COOP1(2,INA)
9642 XY12 = GAM*(X12*X12+Y12*Y12)
9643 IF (XY12.LE.15.0D0) THEN
9644 C = CONE-CA*EXP(-XY12)
9645 AR = DBLE(PP12(INT2))
9646 AI = DIMAG(PP12(INT2))
9647 IF (ABS(AR).LT.TINY25) AR = ZERO
9648 IF (ABS(AI).LT.TINY25) AI = ZERO
9649 PP12(INT2) = DCMPLX(AR,AI)
9650 PP12(INT2) = PP12(INT2)*C
9651 ENDIF
9652 X21 = B+COOT1(1,INB)-COOP2(1,INA)
9653 Y21 = COOT1(2,INB)-COOP2(2,INA)
9654 XY21 = GAM*(X21*X21+Y21*Y21)
9655 IF (XY21.LE.15.0D0) THEN
9656 C = CONE-CA*EXP(-XY21)
9657 AR = DBLE(PP21(INT1))
9658 AI = DIMAG(PP21(INT1))
9659 IF (ABS(AR).LT.TINY25) AR = ZERO
9660 IF (ABS(AI).LT.TINY25) AI = ZERO
9661 PP21(INT1) = DCMPLX(AR,AI)
9662 PP21(INT1) = PP21(INT1)*C
9663 ENDIF
9664 X22 = B+COOT2(1,INB)-COOP2(1,INA)
9665 Y22 = COOT2(2,INB)-COOP2(2,INA)
9666 XY22 = GAM*(X22*X22+Y22*Y22)
9667 IF (XY22.LE.15.0D0) THEN
9668 C = CONE-CA*EXP(-XY22)
9669 AR = DBLE(PP22(INT2))
9670 AI = DIMAG(PP22(INT2))
9671 IF (ABS(AR).LT.TINY25) AR = ZERO
9672 IF (ABS(AI).LT.TINY25) AI = ZERO
9673 PP22(INT2) = DCMPLX(AR,AI)
9674 PP22(INT2) = PP22(INT2)*C
9675 ENDIF
9676 ENDIF
9677 16 CONTINUE
9678 15 CONTINUE
9679
9680 OMPP11 = CZERO
9681 OMPP21 = CZERO
9682 DIPP11 = CZERO
9683 DIPP21 = CZERO
9684 DO 17 K=1,INT1
9685 IF (PP11(K).EQ.CZERO) THEN
9686 PPTMP1 = CZERO
9687 PPTMP2 = CZERO
9688 ELSE
9689 PPTMP1 = PP11(K)**(ONE-DIALPH-DIGAMM)
9690 PPTMP2 = PP11(K)**(ONE-DIALPH+DIGAMM)
9691 ENDIF
9692 AVDIPP = 0.5D0*
9693 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9694 OMPP11 = OMPP11+AVDIPP
9695C OMPP11 = OMPP11+(CONE-PP11(K))
9696 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9697 DIPP11 = DIPP11+AVDIPP
9698 IF (PP21(K).EQ.CZERO) THEN
9699 PPTMP1 = CZERO
9700 PPTMP2 = CZERO
9701 ELSE
9702 PPTMP1 = PP21(K)**(ONE-DIALPH-DIGAMM)
9703 PPTMP2 = PP21(K)**(ONE-DIALPH+DIGAMM)
9704 ENDIF
9705 AVDIPP = 0.5D0*
9706 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9707 OMPP21 = OMPP21+AVDIPP
9708C OMPP21 = OMPP21+(CONE-PP21(K))
9709 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9710 DIPP21 = DIPP21+AVDIPP
9711 17 CONTINUE
9712 OMPP12 = CZERO
9713 OMPP22 = CZERO
9714 DIPP12 = CZERO
9715 DIPP22 = CZERO
9716 DO 18 K=1,INT2
9717 IF (PP12(K).EQ.CZERO) THEN
9718 PPTMP1 = CZERO
9719 PPTMP2 = CZERO
9720 ELSE
9721 PPTMP1 = PP12(K)**(ONE-DIALPH-DIGAMM)
9722 PPTMP2 = PP12(K)**(ONE-DIALPH+DIGAMM)
9723 ENDIF
9724 AVDIPP = 0.5D0*
9725 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9726 OMPP12 = OMPP12+AVDIPP
9727C OMPP12 = OMPP12+(CONE-PP12(K))
9728 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9729 DIPP12 = DIPP12+AVDIPP
9730 IF (PP22(K).EQ.CZERO) THEN
9731 PPTMP1 = CZERO
9732 PPTMP2 = CZERO
9733 ELSE
9734 PPTMP1 = PP22(K)**(ONE-DIALPH-DIGAMM)
9735 PPTMP2 = PP22(K)**(ONE-DIALPH+DIGAMM)
9736 ENDIF
9737 AVDIPP = 0.5D0*
9738 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9739 OMPP22 = OMPP22+AVDIPP
9740C OMPP22 = OMPP22+(CONE-PP22(K))
9741 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9742 DIPP22 = DIPP22+AVDIPP
9743 18 CONTINUE
9744
9745 SPROM = ONE-EXP(SHI)
9746 SPROB = SPROB+FACM*SPROM
9747 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9748 STOTM = DBLE(OMPP11+OMPP22)
9749 SELAM = DBLE(OMPP11*DCONJG(OMPP22))
9750 SQEPM = DBLE(OMPP11*DCONJG(OMPP21))-SELAM
9751 SQETM = DBLE(OMPP11*DCONJG(OMPP12))-SELAM
9752 SQE2M = DBLE(OMPP11*DCONJG(OMPP11))-SELAM-SQEPM-SQETM
9753 SDELM = DBLE(DIPP11*DCONJG(DIPP22))
9754 SDQEM = DBLE(DIPP11*DCONJG(DIPP21))-SDELM
9755 STOTB = STOTB+FACM*STOTM
9756 SELAB = SELAB+FACM*SELAM
9757 SDELB = SDELB+FACM*SDELM
9758 IF (NB.GT.1) THEN
9759 SQEPB = SQEPB+FACM*SQEPM
9760 SDQEB = SDQEB+FACM*SDQEM
9761 ENDIF
9762 IF (NA.GT.1) SQETB = SQETB+FACM*SQETM
9763 IF ((NA.GT.1).AND.(NB.GT.1)) SQE2B = SQE2B+FACM*SQE2M
9764 IF (IJPROJ.EQ.7) SDIR = SDIR+FACM*SIGMVD
9765 ENDIF
9766
9767 14 CONTINUE
9768
9769 STOTN = STOTN+FACB*STOTB
9770 SELAN = SELAN+FACB*SELAB
9771 SQEPN = SQEPN+FACB*SQEPB
9772 SQETN = SQETN+FACB*SQETB
9773 SQE2N = SQE2N+FACB*SQE2B
9774 SPRON = SPRON+FACB*SPROB
9775 SDELN = SDELN+FACB*SDELB
9776 SDQEN = SDQEN+FACB*SDQEB
9777
9778 IF (IJPROJ.EQ.7) THEN
9779 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*(STOTB-SELAB-SQEPB)
9780 ELSE
9781 IF (DIBETA.GT.ZERO) THEN
9782 BPROD(IB+1)= BPROD(IB+1)
9783 & +FACN*FACB*(STOTB-SELAB-SQEPB-SQETB-SQE2B)
9784 ELSE
9785 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*SPROB
9786 ENDIF
9787 ENDIF
9788
9789 12 CONTINUE
9790
9791 STOT = STOT +FACN*STOTN
9792 STOT2 = STOT2+FACN*STOTN**2
9793 SELA = SELA +FACN*SELAN
9794 SELA2 = SELA2+FACN*SELAN**2
9795 SQEP = SQEP +FACN*SQEPN
9796 SQEP2 = SQEP2+FACN*SQEPN**2
9797 SQET = SQET +FACN*SQETN
9798 SQET2 = SQET2+FACN*SQETN**2
9799 SQE2 = SQE2 +FACN*SQE2N
9800 SQE22 = SQE22+FACN*SQE2N**2
9801 SPRO = SPRO +FACN*SPRON
9802 SPRO2 = SPRO2+FACN*SPRON**2
9803 SDEL = SDEL +FACN*SDELN
9804 SDEL2 = SDEL2+FACN*SDELN**2
9805 SDQE = SDQE +FACN*SDQEN
9806 SDQE2 = SDQE2+FACN*SDQEN**2
9807
9808 11 CONTINUE
9809
9810* final cross sections
9811* 1) total
9812 XSTOT(IE,IQ,NTARG) = STOT
9813 IF (IJPROJ.EQ.7)
9814 & XSTOT(IE,IQ,NTARG) = XSTOT(IE,IQ,NTARG)+DBLE(NB)*SDIR
9815* 2) elastic
9816 XSELA(IE,IQ,NTARG) = SELA
9817* 3) quasi-el.: A+B-->A+X (excluding 2)
9818 XSQEP(IE,IQ,NTARG) = SQEP
9819* 4) quasi-el.: A+B-->X+B (excluding 2)
9820 XSQET(IE,IQ,NTARG) = SQET
9821* 5) quasi-el.: A+B-->X (excluding 2-4)
9822 XSQE2(IE,IQ,NTARG) = SQE2
9823* 6) production (= STOT-SELA-SQEP-SQET-SQE2!)
9824 IF (SDEL.GT.ZERO) THEN
9825 XSPRO(IE,IQ,NTARG) = STOT-SELA-SQEP-SQET-SQE2
9826 ELSE
9827 XSPRO(IE,IQ,NTARG) = SPRO
9828 ENDIF
9829* 7) projectile diffraction (el. scatt. off target)
9830 XSDEL(IE,IQ,NTARG) = SDEL
9831* 8) projectile diffraction (quasi-el. scatt. off target)
9832 XSDQE(IE,IQ,NTARG) = SDQE
9833* stat. errors
9834 XETOT(IE,IQ,NTARG) = SQRT(ABS(STOT2-STOT**2)/DBLE(NSTATB-1))
9835 XEELA(IE,IQ,NTARG) = SQRT(ABS(SELA2-SELA**2)/DBLE(NSTATB-1))
9836 XEQEP(IE,IQ,NTARG) = SQRT(ABS(SQEP2-SQEP**2)/DBLE(NSTATB-1))
9837 XEQET(IE,IQ,NTARG) = SQRT(ABS(SQET2-SQET**2)/DBLE(NSTATB-1))
9838 XEQE2(IE,IQ,NTARG) = SQRT(ABS(SQE22-SQE2**2)/DBLE(NSTATB-1))
9839 XEPRO(IE,IQ,NTARG) = SQRT(ABS(SPRO2-SPRO**2)/DBLE(NSTATB-1))
9840 XEDEL(IE,IQ,NTARG) = SQRT(ABS(SDEL2-SDEL**2)/DBLE(NSTATB-1))
9841 XEDQE(IE,IQ,NTARG) = SQRT(ABS(SDQE2-SDQE**2)/DBLE(NSTATB-1))
9842
9843 IF (IJPROJ.EQ.7) THEN
9844 BNORM = XSTOT(IE,IQ,NTARG)-XSELA(IE,IQ,NTARG)
9845 & -XSQEP(IE,IQ,NTARG)
9846 ELSE
9847 BNORM = XSPRO(IE,IQ,NTARG)
9848 ENDIF
9849 DO 19 I=2,NSITEB
9850 BSITE(IE,IQ,NTARG,I) = BPROD(I)/BNORM+BSITE(IE,IQ,NTARG,I-1)
9851 IF ((IE.EQ.1).AND.(IQ.EQ.1))
9852 & BSITE(0,1,NTARG,I) = BPROD(I)/BNORM+BSITE(0,1,NTARG,I-1)
9853 19 CONTINUE
9854
9855* write profile function data into file
9856 IF ((IOGLB.EQ.-1).OR.(IOGLB.EQ.-100)) THEN
9857 WRITE(LDAT,'(5I10,1P,E15.5)')
9858 & IJPROJ,NA,NB,NSTATB,NSITEB,ECMNN(IE)
9859 WRITE(LDAT,'(1P,6E12.5)')
9860 & XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),XSQEP(IE,IQ,NTARG),
9861 & XSQET(IE,IQ,NTARG),XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9862 WRITE(LDAT,'(1P,6E12.5)')
9863 & XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),XEQEP(IE,IQ,NTARG),
9864 & XEQET(IE,IQ,NTARG),XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9865 NLINES = INT(DBLE(NSITEB)/7.0D0)
9866 IF (NLINES.GT.0) THEN
9867 DO 20 I=1,NLINES
9868 ISTART = 7*I-6
9869 WRITE(LDAT,'(1P,7E11.4)')
9870 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9871 20 CONTINUE
9872 ENDIF
9873 ISTART = 7*NLINES+1
9874 IF (ISTART.LE.NSITEB) THEN
9875 WRITE(LDAT,'(1P,7E11.4)')
9876 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9877 ENDIF
9878 ENDIF
9879
9880 100 CONTINUE
9881
9882C IF (ABS(IOGLB).EQ.1) CLOSE(LDAT)
9883
9884 RETURN
9885 END
9886
9887*$ CREATE DT_GETBXS.FOR
9888*COPY DT_GETBXS
9889*
9890*===getbxs=============================================================*
9891*
9892 SUBROUTINE DT_GETBXS(XSFRAC,BLO,BHI,NIDX)
9893
9894************************************************************************
9895* Biasing in impact parameter space. *
9896* XSFRAC = 0 : BLO - minimum impact parameter (input) *
9897* BHI - maximum impact parameter (input) *
9898* XSFRAC - fraction of cross section corresponding *
9899* to impact parameter range (BLO,BHI) *
9900* (output) *
9901* XSFRAC > 0 : XSFRAC - fraction of cross section (input) *
9902* BHI - maximum impact parameter giving requested *
9903* fraction of cross section in impact *
9904* parameter range (0,BMAX) (output) *
9905* This version dated 17.03.00 is written by S. Roesler *
9906************************************************************************
9907
9908 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9909 SAVE
9910 PARAMETER ( LINP = 10 ,
9911 & LOUT = 6 ,
9912 & LDAT = 9 )
9913
9914 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9915* Glauber formalism: parameters
9916 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9917 & BMAX(NCOMPX),BSTEP(NCOMPX),
9918 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9919 & NSITEB,NSTATB
9920
9921 NTARG = ABS(NIDX)
9922 IF (XSFRAC.LE.0.0D0) THEN
9923 ILO = MIN(NSITEB-1,INT(BLO/BSTEP(NTARG)))
9924 IHI = MIN(NSITEB-1,INT(BHI/BSTEP(NTARG)))
9925 IF (ILO.GE.IHI) THEN
9926 XSFRAC = 0.0D0
9927 RETURN
9928 ENDIF
9929 IF (ILO.EQ.NSITEB-1) THEN
9930 FRCLO = BSITE(0,1,NTARG,NSITEB)
9931 ELSE
9932 FRCLO = BSITE(0,1,NTARG,ILO+1)
9933 & +(BLO-ILO*BSTEP(NTARG))/BSTEP(NTARG)
9934 & *(BSITE(0,1,NTARG,ILO+2)-BSITE(0,1,NTARG,ILO+1))
9935 ENDIF
9936 IF (IHI.EQ.NSITEB-1) THEN
9937 FRCHI = BSITE(0,1,NTARG,NSITEB)
9938 ELSE
9939 FRCHI = BSITE(0,1,NTARG,IHI+1)
9940 & +(BHI-IHI*BSTEP(NTARG))/BSTEP(NTARG)
9941 & *(BSITE(0,1,NTARG,IHI+2)-BSITE(0,1,NTARG,IHI+1))
9942 ENDIF
9943 XSFRAC = FRCHI-FRCLO
9944 ELSE
9945 BLO = 0.0D0
9946 BHI = BMAX(NTARG)
9947 DO 1 I=1,NSITEB-1
9948 IF (XSFRAC.LT.BSITE(0,1,NTARG,I+1)) THEN
9949 FAC = (XSFRAC -BSITE(0,1,NTARG,I))/
9950 & (BSITE(0,1,NTARG,I+1)-BSITE(0,1,NTARG,I))
9951 BHI = DBLE(I-1)*BSTEP(NTARG)+BSTEP(NTARG)*FAC
9952 GOTO 2
9953 ENDIF
9954 1 CONTINUE
9955 2 CONTINUE
9956 ENDIF
9957
9958 RETURN
9959 END
9960
9961*$ CREATE DT_CONUCL.FOR
9962*COPY DT_CONUCL
9963*
9964*===conucl=============================================================*
9965*
9966 SUBROUTINE DT_CONUCL(X,N,R,MODE)
9967
9968************************************************************************
9969* Calculation of coordinates of nucleons within nuclei. *
9970* X(3,N) spatial coordinates of nucleons (in fm) (output) *
9971* N / R number of nucleons / radius of nucleus (input) *
9972* MODE = 0 coordinates not sorted *
9973* = 1 coordinates sorted with increasing X(3,i) *
9974* = 2 coordinates sorted with decreasing X(3,i) *
9975* This version dated 26.10.95 is revised by S. Roesler *
9976************************************************************************
9977
9978 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9979 SAVE
9980 PARAMETER ( LINP = 10 ,
9981 & LOUT = 6 ,
9982 & LDAT = 9 )
9983
9984 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9985 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
9986
9987 PARAMETER (TWOPI = 6.283185307179586454D+00 )
9988
9989 PARAMETER (NSRT=10)
9990 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
9991 DIMENSION X(3,N),XTMP(3,260)
9992
9993 CALL DT_COORDI(XTMP,IDXSRT,ICSRT,N,R)
9994
9995 IF ((MODE.NE.0).AND.(N.GT.4)) THEN
9996 K = 0
9997 DO 1 I=1,NSRT
9998 IF (MODE.EQ.2) THEN
9999 ISRT = NSRT+1-I
10000 ELSE
10001 ISRT = I
10002 ENDIF
10003 K1 = K
10004 DO 2 J=1,ICSRT(ISRT)
10005 K = K+1
10006 X(1,K) = XTMP(1,IDXSRT(ISRT,J))
10007 X(2,K) = XTMP(2,IDXSRT(ISRT,J))
10008 X(3,K) = XTMP(3,IDXSRT(ISRT,J))
10009 2 CONTINUE
10010 IF (ICSRT(ISRT).GT.1) THEN
10011 I0 = K1+1
10012 I1 = K
10013 CALL DT_SORT(X,N,I0,I1,MODE)
10014 ENDIF
10015 1 CONTINUE
10016 ELSEIF ((MODE.NE.0).AND.(N.GE.2).AND.(N.LE.4)) THEN
10017 DO 3 I=1,N
10018 X(1,I) = XTMP(1,I)
10019 X(2,I) = XTMP(2,I)
10020 X(3,I) = XTMP(3,I)
10021 3 CONTINUE
10022 CALL DT_SORT(X,N,1,N,MODE)
10023 ELSE
10024 DO 4 I=1,N
10025 X(1,I) = XTMP(1,I)
10026 X(2,I) = XTMP(2,I)
10027 X(3,I) = XTMP(3,I)
10028 4 CONTINUE
10029 ENDIF
10030
10031 RETURN
10032 END
10033
10034*$ CREATE DT_COORDI.FOR
10035*COPY DT_COORDI
10036*
10037*===coordi=============================================================*
10038*
10039 SUBROUTINE DT_COORDI(X,IDXSRT,ICSRT,N,R)
10040
10041************************************************************************
10042* Calculation of coordinates of nucleons within nuclei. *
10043* X(3,N) spatial coordinates of nucleons (in fm) (output) *
10044* N / R number of nucleons / radius of nucleus (input) *
10045* Based on the original version by Shmakov et al. *
10046* This version dated 26.10.95 is revised by S. Roesler *
10047************************************************************************
10048
10049 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10050 SAVE
10051 PARAMETER ( LINP = 10 ,
10052 & LOUT = 6 ,
10053 & LDAT = 9 )
10054
10055 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
10056 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
10057
10058 PARAMETER (TWOPI = 6.283185307179586454D+00 )
10059
10060 LOGICAL LSTART
10061
10062 PARAMETER (NSRT=10)
10063 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
10064 DIMENSION X(3,260),WD(4),RD(3)
10065
10066 DATA PDIF/0.545D0/,R2MIN/0.16D0/
10067 DATA WD / 0.0D0, 0.178D0, 0.465D0, 1.0D0/
10068 DATA RD /2.09D0, 0.935D0, 0.697D0/
10069
10070 X1SUM = ZERO
10071 X2SUM = ZERO
10072 X3SUM = ZERO
10073
10074 IF (N.EQ.1) THEN
10075 X(1,1) = ZERO
10076 X(2,1) = ZERO
10077 X(3,1) = ZERO
10078 ELSEIF (N.EQ.2) THEN
10079 EPS = DT_RNDM(RD(1))
10080 DO 30 I=1,3
10081 IF ((EPS.GE.WD(I)).AND.(EPS.LE.WD(I+1))) GOTO 40
10082 30 CONTINUE
10083 40 CONTINUE
10084 DO 50 J=1,3
10085 CALL DT_RANNOR(X1,X2)
10086 X(J,1) = RD(I)*X1
10087 X(J,2) = -X(J,1)
10088 50 CONTINUE
10089 ELSEIF ((N.EQ.3).OR.(N.EQ.4)) THEN
10090 SIGMA = R/SQRTWO
10091 LSTART = .TRUE.
10092 CALL DT_RANNOR(X3,X4)
10093 DO 100 I=1,N
10094 CALL DT_RANNOR(X1,X2)
10095 X(1,I) = SIGMA*X1
10096 X(2,I) = SIGMA*X2
10097 IF (LSTART) GOTO 80
10098 X(3,I) = SIGMA*X4
10099 CALL DT_RANNOR(X3,X4)
10100 GOTO 90
10101 80 CONTINUE
10102 X(3,I) = SIGMA*X3
10103 90 CONTINUE
10104 LSTART = .NOT.LSTART
10105 X1SUM = X1SUM+X(1,I)
10106 X2SUM = X2SUM+X(2,I)
10107 X3SUM = X3SUM+X(3,I)
10108 100 CONTINUE
10109 X1SUM = X1SUM/DBLE(N)
10110 X2SUM = X2SUM/DBLE(N)
10111 X3SUM = X3SUM/DBLE(N)
10112 DO 101 I=1,N
10113 X(1,I) = X(1,I)-X1SUM
10114 X(2,I) = X(2,I)-X2SUM
10115 X(3,I) = X(3,I)-X3SUM
10116 101 CONTINUE
10117 ELSE
10118
10119* maximum nuclear radius for coordinate sampling
10120 RMAX = R+4.605D0*PDIF
10121
10122* initialize pre-sorting
10123 DO 121 I=1,NSRT
10124 ICSRT(I) = 0
10125 121 CONTINUE
10126 DR = TWO*RMAX/DBLE(NSRT)
10127
10128* sample coordinates for N nucleons
10129 DO 140 I=1,N
10130 120 CONTINUE
10131 RAD = RMAX*(DT_RNDM(DR))**ONETHI
10132 F = DT_DENSIT(N,RAD,R)
10133 IF (DT_RNDM(RAD).GT.F) GOTO 120
10134* theta, phi uniformly distributed
10135 CT = ONE-TWO*DT_RNDM(F)
10136 ST = SQRT((ONE-CT)*(ONE+CT))
10137 CALL DT_DSFECF(SFE,CFE)
10138 X(1,I) = RAD*ST*CFE
10139 X(2,I) = RAD*ST*SFE
10140 X(3,I) = RAD*CT
10141* ensure that distance between two nucleons is greater than R2MIN
10142 IF (I.LT.2) GOTO 122
10143 I1 = I-1
10144 DO 130 I2=1,I1
10145 DIST2 = (X(1,I)-X(1,I2))**2+(X(2,I)-X(2,I2))**2+
10146 & (X(3,I)-X(3,I2))**2
10147 IF (DIST2.LE.R2MIN) GOTO 120
10148 130 CONTINUE
10149 122 CONTINUE
10150* save index according to z-bin
10151 IDXZ = INT( (X(3,I)+RMAX)/DR )+1
10152 ICSRT(IDXZ) = ICSRT(IDXZ)+1
10153 IDXSRT(IDXZ,ICSRT(IDXZ)) = I
10154 X1SUM = X1SUM+X(1,I)
10155 X2SUM = X2SUM+X(2,I)
10156 X3SUM = X3SUM+X(3,I)
10157 140 CONTINUE
10158 X1SUM = X1SUM/DBLE(N)
10159 X2SUM = X2SUM/DBLE(N)
10160 X3SUM = X3SUM/DBLE(N)
10161 DO 141 I=1,N
10162 X(1,I) = X(1,I)-X1SUM
10163 X(2,I) = X(2,I)-X2SUM
10164 X(3,I) = X(3,I)-X3SUM
10165 141 CONTINUE
10166
10167 ENDIF
10168
10169 RETURN
10170 END
10171
10172*$ CREATE DT_DENSIT.FOR
10173*COPY DT_DENSIT
10174*
10175*===densit=============================================================*
10176*
10177 DOUBLE PRECISION FUNCTION DT_DENSIT(NA,R,RA)
10178
10179 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10180 SAVE
10181
10182 PARAMETER ( LINP = 10 ,
10183 & LOUT = 6 ,
10184 & LDAT = 9 )
10185 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10186 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
10187 & PI = TWOPI/TWO)
10188
10189 DIMENSION R0(18),FNORM(18)
10190 DATA R0 / ZERO, ZERO, ZERO, ZERO, 2.12D0,
10191 & 2.56D0, 2.41D0, 2.46D0, 2.52D0, 2.45D0,
10192 & 2.37D0, 2.46D0, 2.44D0, 2.54D0, 2.58D0,
10193 & 2.72D0, 2.66D0, 2.79D0/
10194 DATA FNORM /.1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10195 & .1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10196 & .1012D+01,.1039D+01,.1075D+01,.1118D+01,.1164D+01,
10197 & .1214D+01,.1265D+01,.1318D+01/
10198 DATA PDIF /0.545D0/
10199
10200 DT_DENSIT = ZERO
10201* shell model
10202 IF (NA.LE.4) THEN
10203 STOP 'DT_DENSIT-0'
10204 ELSEIF ((NA.GT.4).AND.(NA.LE.18)) THEN
10205 R1 = R0(NA)/SQRT(2.5D0-4.0D0/DBLE(NA))
10206 DT_DENSIT = (ONE+(DBLE(NA)-4.0D0)/6.0D0*(R/R1)**2)
10207 & *EXP(-(R/R1)**2)/FNORM(NA)
10208* Woods-Saxon
10209 ELSEIF (NA.GT.18) THEN
10210 DT_DENSIT = ONE/(ONE+EXP((R-RA)/PDIF))
10211 ENDIF
10212
10213 RETURN
10214 END
10215
10216*$ CREATE DT_RNCLUS.FOR
10217*COPY DT_RNCLUS
10218*
10219*===rnclus=============================================================*
10220*
10221 DOUBLE PRECISION FUNCTION DT_RNCLUS(N)
10222
10223************************************************************************
10224* Nuclear radius for nucleus with mass number N. *
10225* This version dated 26.9.00 is written by S. Roesler *
10226************************************************************************
10227
10228 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10229 SAVE
10230
10231 PARAMETER (ONE=1.0D0,THREE=3.0D0,ONETHI=ONE/THREE)
10232
10233* nucleon radius
10234 PARAMETER (RNUCLE = 1.12D0)
10235
10236* nuclear radii for selected nuclei
10237 DIMENSION RADNUC(18)
10238 DATA RADNUC / 8*0.0D0,2.52D0,2.45D0,2.37D0,2.45D0,2.44D0,2.55D0,
10239 & 2.58D0,2.71D0,2.66D0,2.71D0/
10240
10241 IF (N.LE.18) THEN
10242 IF (RADNUC(N).GT.0.0D0) THEN
10243 DT_RNCLUS = RADNUC(N)
10244 ELSE
10245 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10246 ENDIF
10247 ELSE
10248 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10249 ENDIF
10250
10251 RETURN
10252 END
10253
10254*$ CREATE DT_DENTST.FOR
10255*COPY DT_DENTST
10256*
10257*===dentst=============================================================*
10258*
10259C PROGRAM DT_DENTST
10260 SUBROUTINE DT_DENTST
10261
10262 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10263 SAVE
10264
10265 OPEN(40,FILE='dentst.out',STATUS='UNKNOWN')
10266 OPEN(41,FILE='denmax.out',STATUS='UNKNOWN')
10267
10268 RMIN = 0.0D0
10269 RMAX = 8.0D0
10270 NBINS = 500.0D0
10271 DR = (RMAX-RMIN)/DBLE(NBINS)
10272 DO 1 IA=5,18
10273 FMAX = 0.0D0
10274 DO 2 IR=1,NBINS+1
10275 R = RMIN+DBLE(IR-1)*DR
10276 F = DT_DENSIT(IA,R,R)
10277 IF (F.GT.FMAX) FMAX = F
10278 WRITE(40,'(1X,I3,2E15.5)') IA,R,F
10279 2 CONTINUE
10280 WRITE(41,'(1X,I3,E15.5)') IA,FMAX
10281 1 CONTINUE
10282
10283 CLOSE(40)
10284 CLOSE(41)
10285
10286 END
10287
10288*$ CREATE DT_SHMAKI.FOR
10289*COPY DT_SHMAKI
10290*
10291*===shmaki=============================================================*
10292*
10293 SUBROUTINE DT_SHMAKI(NA,NCA,NB,NCB,IJP,PPN,MODE)
10294
10295************************************************************************
10296* Initialisation of Glauber formalism. This subroutine has to be *
10297* called once (in case of target emulsions as often as many different *
10298* target nuclei are considered) before events are sampled. *
10299* NA / NCA mass number/charge of projectile nucleus *
10300* NB / NCB mass number/charge of target nucleus *
10301* IJP identity of projectile (hadrons/leptons/photons) *
10302* PPN projectile momentum (for projectile nuclei: *
10303* momentum per nucleon) in target rest system *
10304* MODE = 0 Glauber formalism invoked *
10305* = 1 fitted results are loaded from data-file *
10306* = 99 NTARG is forced to be 1 *
10307* (used in connection with GLAUBERI-card only) *
10308* This version dated 22.03.96 is based on the original SHMAKI-routine *
10309* and revised by S. Roesler. *
10310************************************************************************
10311
10312 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10313 SAVE
10314 PARAMETER ( LINP = 10 ,
10315 & LOUT = 6 ,
10316 & LDAT = 9 )
10317 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
10318 & THREE=3.0D0)
10319
10320 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10321* Glauber formalism: parameters
10322 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10323 & BMAX(NCOMPX),BSTEP(NCOMPX),
10324 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10325 & NSITEB,NSTATB
10326* Lorentz-parameters of the current interaction
10327 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10328 & UMO,PPCM,EPROJ,PPROJ
10329* properties of photon/lepton projectiles
10330 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10331* kinematical cuts for lepton-nucleus interactions
10332 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
10333 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
10334* Glauber formalism: cross sections
10335 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10336 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10337 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10338 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10339 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10340 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10341 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10342 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10343 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10344 & BSLOPE,NEBINI,NQBINI
10345* cuts for variable energy runs
10346 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
10347* nucleon-nucleon event-generator
10348 CHARACTER*8 CMODEL
10349 LOGICAL LPHOIN
10350 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10351* Glauber formalism: flags and parameters for statistics
10352 LOGICAL LPROD
10353 CHARACTER*8 CGLB
10354 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10355
10356 DATA NTARG,ICOUT,IVEOUT /0,0,0/
10357
10358C CALL DT_HISHAD
10359C STOP
10360
10361 NTARG = NTARG+1
10362 IF (MODE.EQ.99) NTARG = 1
10363 NIDX = -NTARG
10364 IF (MODE.EQ.-1) NIDX = NTARG
10365
10366 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) ICOUT = ICOUT+1
10367 IF (ICOUT.EQ.1) WRITE(LOUT,1000)
10368 1000 FORMAT(//,1X,'SHMAKI: Glauber formalism (Shmakov et. al) -',
10369 & ' initialization',/,12X,'--------------------------',
10370 & '-------------------------',/)
10371
10372 IF (MODE.EQ.2) THEN
10373 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10374 CALL DT_SHFAST(MODE,PPN,IBACK)
10375 STOP ' Glauber pre-initialization done'
10376 ENDIF
10377 IF (MODE.EQ.1) THEN
10378 CALL DT_PROFBI(NA,NB,PPN,NTARG)
10379 ELSE
10380 IBACK = 1
10381 IF (MODE.EQ.3) CALL DT_SHFAST(MODE,PPN,IBACK)
10382 IF (IBACK.EQ.1) THEN
10383* lepton-nucleus (variable energy runs)
10384 IF ((IJP.EQ. 3).OR.(IJP.EQ. 4).OR.
10385 & (IJP.EQ.10).OR.(IJP.EQ.11)) THEN
10386 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10387 & WRITE(LOUT,1002) NB,NCB
10388 1002 FORMAT(1X,'variable energy run: projectile-id: 7',
10389 & ' target A/Z: ',I3,' /',I3,/,/,8X,
10390 & 'E_cm (GeV) Q^2 (GeV^2)',
10391 & ' Sigma_tot (mb) Sigma_in (mb)',/,7X,
10392 & '--------------------------------',
10393 & '------------------------------')
10394 AECMLO = LOG10(MIN(UMO,ECMLI))
10395 AECMHI = LOG10(MIN(UMO,ECMHI))
10396 IESTEP = NEB-1
10397 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10398 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10399 DO 1 I=1,IESTEP+1
10400 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10401 IF (Q2HI.GT.0.1D0) THEN
10402 IF (Q2LI.LT.0.01D0) THEN
10403 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10404 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10405 & WRITE(LOUT,1003)
10406 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10407 Q2LI = 0.01D0
10408 IBIN = 2
10409 ELSE
10410 IBIN = 1
10411 ENDIF
10412 IQSTEP = NQB-IBIN
10413 AQ2LO = LOG10(Q2LI)
10414 AQ2HI = LOG10(Q2HI)
10415 DAQ2 = (AQ2HI-AQ2LO)/MAX(DBLE(IQSTEP),ONE)
10416 DO 2 J=IBIN,IQSTEP+IBIN
10417 Q2 = 10.0D0**(AQ2LO+DBLE(J-IBIN)*DAQ2)
10418 CALL DT_XSGLAU(NA,NB,7,ZERO,Q2,ECM,I,J,NIDX)
10419 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10420 & WRITE(LOUT,1003) ECMNN(I),
10421 & Q2G(J),XSTOT(I,J,NTARG),XSPRO(I,J,NTARG)
10422 2 CONTINUE
10423 ELSE
10424 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10425 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10426 & WRITE(LOUT,1003)
10427 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10428 ENDIF
10429 1003 FORMAT(9X,F6.1,9X,F6.2,8X,F8.3,11X,F8.3)
10430 1 CONTINUE
10431 IVEOUT = 1
10432 ELSE
10433* hadron/photon/nucleus-nucleus
10434 IF ((ABS(VAREHI).GT.ZERO).AND.
10435 & (ABS(VAREHI).GT.ABS(VARELO))) THEN
10436 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) THEN
10437 WRITE(LOUT,1004) NA,NB,NCB
10438 1004 FORMAT(1X,'variable energy run: projectile-id:',
10439 & I3,' target A/Z: ',I3,' /',I3,/)
10440 WRITE(LOUT,1005)
10441 1005 FORMAT(' E_cm (GeV) E_Lab (GeV) sig_tot^pp (mb)'
10442 & ,' Sigma_tot (mb) Sigma_prod (mb)',/,
10443 & ' -------------------------------------',
10444 & '--------------------------------------')
10445 ENDIF
10446 AECMLO = LOG10(VARCLO)
10447 AECMHI = LOG10(VARCHI)
10448 IESTEP = NEB-1
10449 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10450 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10451 DO 3 I=1,IESTEP+1
10452 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10453 AMP = 0.938D0
10454 AMT = 0.938D0
10455 AMP2 = AMP**2
10456 AMT2 = AMT**2
10457 ELAB = (ECM**2-AMP2-AMT2)/(TWO*AMT)
10458 PLAB = SQRT((ELAB+AMP)*(ELAB-AMP))
10459 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,ECM,I,1,NIDX)
10460 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10461 & WRITE(LOUT,1006)
10462 & ECM,PLAB,SIGSH,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10463 1006 FORMAT(1X,F9.1,1X,E11.3,1X,F12.2,8X,F10.3,8X,F8.3)
10464 3 CONTINUE
10465 IVEOUT = 1
10466 ELSE
10467 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10468 ENDIF
10469 ENDIF
10470 ENDIF
10471 ENDIF
10472
10473 IF ((ICOUT.LT.15).AND.(IVEOUT.EQ.0).AND.(MCGENE.NE.4).AND.
10474 & (IOGLB.NE.100)) THEN
10475 WRITE(LOUT,1001) NA,NCA,NB,NCB,ECMNN(1),SIGSH*10.0D0,ROSH,
10476 & BSLOPE,NSITEB,NSTATB,XSPRO(1,1,NTARG)
10477 1001 FORMAT(38X,'projectile',
10478 & ' target',/,1X,'Mass number / charge',
10479 & 17X,I3,' /',I3,6X,I3,' /',I3,/,/,1X,
10480 & 'Nucleon-nucleon c.m. energy',9X,F10.2,' GeV',/,/,1X,
10481 & 'Parameters of elastic scattering amplitude:',/,5X,
10482 & 'sigma =',F7.2,' mb',6X,'rho = ',F9.4,6X,'slope = ',
10483 & F4.1,' GeV^-2',/,/,1X,'Number of b-steps',4X,I3,8X,
10484 & 'statistics at each b-step',4X,I5,/,/,1X,
10485 & 'Prod. cross section ',5X,F10.4,' mb',/)
10486 ENDIF
10487
10488 RETURN
10489 END
10490
10491*$ CREATE DT_PROFBI.FOR
10492*COPY DT_PROFBI
10493*
10494*===profbi=============================================================*
10495*
10496 SUBROUTINE DT_PROFBI(NA,NB,PPN,NTARG)
10497
10498************************************************************************
10499* Integral over profile function (to be used for impact-parameter *
10500* sampling during event generation). *
10501* Fitted results are used. *
10502* NA / NB mass numbers of proj./target nuclei *
10503* PPN projectile momentum (for projectile nuclei: *
10504* momentum per nucleon) in target rest system *
10505* NTARG index of target material (i.e. kind of nucleus) *
10506* This version dated 31.05.95 is revised by S. Roesler *
10507************************************************************************
10508
10509 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10510 SAVE
10511 PARAMETER ( LINP = 10 ,
10512 & LOUT = 6 ,
10513 & LDAT = 9 )
454792a9 10514CPH SAVE
9aaba0d6 10515
10516 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
10517
10518 LOGICAL LSTART
10519 CHARACTER CNAME*80
10520
10521 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10522* Glauber formalism: parameters
10523 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10524 & BMAX(NCOMPX),BSTEP(NCOMPX),
10525 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10526 & NSITEB,NSTATB
10527* Glauber formalism: cross sections
10528 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10529 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10530 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10531 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10532 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10533 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10534 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10535 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10536 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10537 & BSLOPE,NEBINI,NQBINI
10538
10539 PARAMETER (NGLMAX=8000)
10540 DIMENSION NGLIT(NGLMAX),NGLIP(NGLMAX),GLAPPN(NGLMAX),
10541 & GLASIG(NGLMAX),GLAFIT(5,NGLMAX)
10542
10543 DATA LSTART /.TRUE./
10544
10545 IF (LSTART) THEN
10546* read fit-parameters from file
10547 OPEN(47,FILE='inpdata/glpara.dat',STATUS='UNKNOWN')
10548 I = 0
10549 1 CONTINUE
10550 READ(47,'(A80)') CNAME
10551 IF (CNAME.EQ.'STOP') GOTO 2
10552 I = I+1
10553 READ(CNAME,*) NGLIP(I),NGLIT(I),GLAPPN(I),GLASIG(I),
10554 & GLAFIT(1,I),GLAFIT(2,I),GLAFIT(3,I),
10555 & GLAFIT(4,I),GLAFIT(5,I)
10556 IF (I+1.GT.NGLMAX) THEN
10557 WRITE(LOUT,1000)
10558 1000 FORMAT(1X,'PROFBI: warning! array size exceeded - ',
10559 & 'program stopped')
10560 STOP
10561 ENDIF
10562 GOTO 1
10563 2 CONTINUE
10564 NGLPAR = I
10565 LSTART = .FALSE.
10566 ENDIF
10567
10568 NNA = NA
10569 NNB = NB
10570 IF (NA.GT.NB) THEN
10571 NNA = NB
10572 NNB = NA
10573 ENDIF
10574 IDXGLA = 0
10575 DO 3 J=1,NGLPAR
10576 IF ((NNB.LT.NGLIT(J)).OR.(J.EQ.NGLPAR)) THEN
10577 IF (NNB.NE.NGLIT(J-1)) NNB = NGLIT(J-1)
10578 DO 4 K=1,J-1
10579 IPOINT = J-K
10580 IF (J.EQ.NGLPAR) IPOINT = J+1-K
10581 IF ((NNA.GT.NGLIP(IPOINT)).OR.
10582 & (NNB.NE.NGLIT(IPOINT)).OR.(IPOINT.EQ.1)) THEN
10583 IF (IPOINT.EQ.1) IPOINT = 0
10584 NATMP = NGLIP(IPOINT+1)
10585 IF (PPN.LT.GLAPPN(IPOINT+1)) THEN
10586 IDXGLA = IPOINT+1
10587 GOTO 6
10588 ELSE
10589 J1BEG = IPOINT+1
10590 J1END = J
10591C IF (J.EQ.NGLPAR) THEN
10592C J1BEG = IPOINT
10593C J1END = J
10594C ENDIF
10595 DO 5 J1=J1BEG,J1END
10596 IF (NGLIP(J1).EQ.NATMP) THEN
10597 IF (PPN.LT.GLAPPN(J1)) THEN
10598 IDXGLA = J1
10599 GOTO 6
10600 ENDIF
10601 ELSE
10602 IDXGLA = J1-1
10603 GOTO 6
10604 ENDIF
10605 5 CONTINUE
10606 IF ((J.EQ.NGLPAR).AND.(PPN.GT.GLAPPN(NGLPAR)))
10607 & IDXGLA = NGLPAR
10608 ENDIF
10609 ENDIF
10610 4 CONTINUE
10611 ENDIF
10612 3 CONTINUE
10613
10614 6 CONTINUE
10615 IF (IDXGLA.EQ.0) THEN
10616 WRITE(LOUT,1001) NNA,NNB,PPN
10617 1001 FORMAT(1X,'PROFBI: configuration (NA,NB,PPN = ',
10618 & 2I4,F6.0,') not found ')
10619 STOP
10620 ENDIF
10621
10622* no interpolation yet available
10623 XSPRO(1,1,NTARG) = GLASIG(IDXGLA)
10624
10625 BSITE(1,1,NTARG,1) = ZERO
10626 DO 10 I=2,NSITEB
10627 XX = DBLE(I)
10628 POLY = GLAFIT(1,IDXGLA)+GLAFIT(2,IDXGLA)*XX+
10629 & GLAFIT(3,IDXGLA)*XX**2+GLAFIT(4,IDXGLA)*XX**3+
10630 & GLAFIT(5,IDXGLA)*XX**4
10631 IF (ABS(POLY).GT.35.0D0) POLY = SIGN(35.0D0,POLY)
10632 BSITE(1,1,NTARG,I) = (1.0D0-EXP(-POLY))
10633 IF (BSITE(1,1,NTARG,I).LT.ZERO) BSITE(1,1,NTARG,I) = ZERO
10634 10 CONTINUE
10635
10636 RETURN
10637 END
10638
10639*$ CREATE DT_GLAUBE.FOR
10640*COPY DT_GLAUBE
10641*
10642*===glaube=============================================================*
10643*
10644 SUBROUTINE DT_GLAUBE(NA,NB,IJPROJ,B,INTT,INTA,INTB,JS,JT,NIDX)
10645
10646************************************************************************
10647* Calculation of configuartion of interacting nucleons for one event. *
10648* NB / NB mass numbers of proj./target nuclei (input) *
10649* B impact parameter (output) *
10650* INTT total number of wounded nucleons " *
10651* INTA / INTB number of wounded nucleons in proj. / target " *
10652* JS / JT(i) number of collisions proj. / target nucleon i is *
10653* involved (output) *
10654* NIDX index of projectile/target material (input) *
10655* = -2 call within FLUKA transport calculation *
10656* This is an update of the original routine SHMAKO by J.Ranft/HJM *
10657* This version dated 22.03.96 is revised by S. Roesler *
10658* *
10659* Last change 27.12.2006 by S. Roesler. *
10660************************************************************************
10661
10662 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10663 SAVE
10664 PARAMETER ( LINP = 10 ,
10665 & LOUT = 6 ,
10666 & LDAT = 9 )
10667 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
10668 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
10669
10670 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10671 PARAMETER ( MAXNCL = 260,
10672 & MAXVQU = MAXNCL,
10673 & MAXSQU = 20*MAXVQU,
10674 & MAXINT = MAXVQU+MAXSQU)
10675* Glauber formalism: parameters
10676 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10677 & BMAX(NCOMPX),BSTEP(NCOMPX),
10678 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10679 & NSITEB,NSTATB
10680* Glauber formalism: cross sections
10681 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10682 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10683 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10684 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10685 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10686 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10687 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10688 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10689 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10690 & BSLOPE,NEBINI,NQBINI
10691* Lorentz-parameters of the current interaction
10692 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10693 & UMO,PPCM,EPROJ,PPROJ
10694* properties of photon/lepton projectiles
10695 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10696* Glauber formalism: collision properties
10697 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
10698 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
10699* Glauber formalism: flags and parameters for statistics
10700 LOGICAL LPROD
10701 CHARACTER*8 CGLB
10702 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10703
10704 DIMENSION JS(MAXNCL),JT(MAXNCL)
10705
10706 NTARG = ABS(NIDX)
10707
10708* get actual energy from /DTLTRA/
10709 ECMNOW = UMO
10710 Q2 = VIRT
10711*
10712* new patch for pre-initialized variable projectile/target/energy runs,
10713* bypassed for use within FLUKA (Nidx=-2)
10714 IF (IOGLB.EQ.100) THEN
10715 IF (NIDX.NE.-2) CALL DT_GLBSET(IJPROJ,NA,NB,EPROJ,1)
10716*
10717* variable energy run, interpolate profile function
10718 ELSE
10719 I1 = 1
10720 I2 = 1
10721 RATE = ONE
10722 IF (NEBINI.GT.1) THEN
10723 IF (ECMNOW.GE.ECMNN(NEBINI)) THEN
10724 I1 = NEBINI
10725 I2 = NEBINI
10726 RATE = ONE
10727 ELSEIF (ECMNOW.GT.ECMNN(1)) THEN
10728 DO 1 I=2,NEBINI
10729 IF (ECMNOW.LT.ECMNN(I)) THEN
10730 I1 = I-1
10731 I2 = I
10732 RATE = (ECMNOW-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
10733 GOTO 2
10734 ENDIF
10735 1 CONTINUE
10736 2 CONTINUE
10737 ENDIF
10738 ENDIF
10739 J1 = 1
10740 J2 = 1
10741 RATQ = ONE
10742 IF (NQBINI.GT.1) THEN
10743 IF (Q2.GE.Q2G(NQBINI)) THEN
10744 J1 = NQBINI
10745 J2 = NQBINI
10746 RATQ = ONE
10747 ELSEIF (Q2.GT.Q2G(1)) THEN
10748 DO 3 I=2,NQBINI
10749 IF (Q2.LT.Q2G(I)) THEN
10750 J1 = I-1
10751 J2 = I
10752 RATQ = LOG10( Q2/MAX(Q2G(J1),TINY14))/
10753 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
10754C RATQ = (Q2-Q2G(J1))/(Q2G(J2)-Q2G(J1))
10755 GOTO 4
10756 ENDIF
10757 3 CONTINUE
10758 4 CONTINUE
10759 ENDIF
10760 ENDIF
10761
10762 DO 5 I=1,KSITEB
10763 BSITE(0,1,NTARG,I) = BSITE(I1,J1,NTARG,I)+
10764 & RATE*(BSITE(I2,J1,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10765 & RATQ*(BSITE(I1,J2,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10766 & RATE*RATQ*(BSITE(I2,J2,NTARG,I)-BSITE(I1,J2,NTARG,I)+
10767 & BSITE(I1,J1,NTARG,I)-BSITE(I2,J1,NTARG,I))
10768 5 CONTINUE
10769 ENDIF
10770
10771 CALL DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,INTT,INTA,INTB,IDIREC,NIDX)
10772 IF (NIDX.LE.-1) THEN
10773 RPROJ = RASH(1)
10774 RTARG = RBSH(NTARG)
10775 ELSE
10776 RPROJ = RASH(NTARG)
10777 RTARG = RBSH(1)
10778 ENDIF
10779
10780 RETURN
10781 END
10782
10783*$ CREATE DT_DIAGR.FOR
10784*COPY DT_DIAGR
10785*
10786*===diagr==============================================================*
10787*
10788 SUBROUTINE DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,JNT,INTA,INTB,IDIREC,
10789 & NIDX)
10790
10791************************************************************************
10792* Based on the original version by Shmakov et al. *
10793* This version dated 21.04.95 is revised by S. Roesler *
10794************************************************************************
10795
10796 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10797 SAVE
10798 PARAMETER ( LINP = 10 ,
10799 & LOUT = 6 ,
10800 & LDAT = 9 )
10801 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10802 PARAMETER (TWOPI = 6.283185307179586454D+00,
10803 & PI = TWOPI/TWO,
10804 & GEV2MB = 0.38938D0,
10805 & GEV2FM = 0.1972D0,
10806 & ALPHEM = ONE/137.0D0,
10807* proton mass
10808 & AMP = 0.938D0,
10809 & AMP2 = AMP**2,
10810* rho0 mass
10811 & AMRHO0 = 0.77D0)
10812
10813 COMPLEX*16 C,CA,CI
10814 PARAMETER ( MAXNCL = 260,
10815 & MAXVQU = MAXNCL,
10816 & MAXSQU = 20*MAXVQU,
10817 & MAXINT = MAXVQU+MAXSQU)
10818* particle properties (BAMJET index convention)
10819 CHARACTER*8 ANAME
10820 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
10821 & IICH(210),IIBAR(210),K1(210),K2(210)
10822 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10823* emulsion treatment
10824 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
10825 & NCOMPO,IEMUL
10826* Glauber formalism: parameters
10827 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10828 & BMAX(NCOMPX),BSTEP(NCOMPX),
10829 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10830 & NSITEB,NSTATB
10831* Glauber formalism: cross sections
10832 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10833 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10834 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10835 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10836 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10837 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10838 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10839 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10840 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10841 & BSLOPE,NEBINI,NQBINI
10842* VDM parameter for photon-nucleus interactions
10843 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
10844* nucleon-nucleon event-generator
10845 CHARACTER*8 CMODEL
10846 LOGICAL LPHOIN
10847 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10848**PHOJET105a
10849C COMMON /CUTOFF/ PTCUT(4),CUTMU(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10850**PHOJET112
10851C obsolete cut-off information
10852 DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
10853 COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10854**
10855* coordinates of nucleons
10856 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
10857* interface between Glauber formalism and DPM
10858 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
10859 & INTER1(MAXINT),INTER2(MAXINT)
10860* statistics: Glauber-formalism
10861 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
10862* n-n cross section fluctuations
10863 PARAMETER (NBINS = 1000)
10864 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
10865
10866 DIMENSION JS(MAXNCL),JT(MAXNCL),
10867 & JS0(MAXNCL),JT0(MAXNCL,MAXNCL),
10868 & JI1(MAXNCL,MAXNCL),JI2(MAXNCL,MAXNCL),JNT0(MAXNCL)
10869 DIMENSION NWA(0:210),NWB(0:210)
10870
10871 LOGICAL LFIRST
10872 DATA LFIRST /.TRUE./
10873
10874 DATA NTARGO,ICNT /0,0/
10875
10876 NTARG = ABS(NIDX)
10877
10878 IF (LFIRST) THEN
10879 LFIRST = .FALSE.
10880 IF (NCOMPO.EQ.0) THEN
10881 NCALL = 0
10882 NWAMAX = NA
10883 NWBMAX = NB
10884 DO 17 I=0,210
10885 NWA(I) = 0
10886 NWB(I) = 0
10887 17 CONTINUE
10888 ENDIF
10889 ENDIF
10890 IF (NTARG.EQ.-1) THEN
10891 IF (NCOMPO.EQ.0) THEN
10892 WRITE(LOUT,*) ' DIAGR: distribution of wounded nucleons'
10893 WRITE(LOUT,'(8X,A,3I7)') 'NCALL,NWAMAX,NWBMAX = ',
10894 & NCALL,NWAMAX,NWBMAX
10895 DO 18 I=1,MAX(NWAMAX,NWBMAX)
10896 WRITE(LOUT,'(8X,2I7,E12.4,I7,E12.4)')
10897 & I,NWA(I),DBLE(NWA(I))/DBLE(NCALL),
10898 & NWB(I),DBLE(NWB(I))/DBLE(NCALL)
10899 18 CONTINUE
10900 ENDIF
10901 RETURN
10902 ENDIF
10903
10904 DCOH = 1.0D10
10905 IPNT = 0
10906
10907 SQ2 = Q2
10908 IF (SQ2.LE.ZERO) SQ2 = 0.0001D0
10909 S = ECMNOW**2
10910 X = SQ2/(S+SQ2-AMP2)
10911 XNU = (S+SQ2-AMP2)/(TWO*AMP)
10912* photon projectiles: recalculate photon-nucleon amplitude
10913 IF (IJPROJ.EQ.7) THEN
10914 15 CONTINUE
10915* VDM assumption: mass of V-meson
10916 AMV2 = DT_SAM2(SQ2,ECMNOW)
10917 AMV = SQRT(AMV2)
10918 IF (AMV.GT.2.0D0*PTCUT(1)) GOTO 15
10919* check for pointlike interaction
10920 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,1)
10921**sr 27.10.
10922C SIGSH = DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10923 SIGSH = (ONE-RPNT)*DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10924**
10925 ROSH = 0.1D0
10926 BSLOPE = 2.0D0*(2.0D0+AMRHO0**2/(AMV2+SQ2)
10927 & +0.25D0*LOG(S/(AMV2+SQ2)))
10928* coherence length
10929 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+SQ2)*GEV2FM
10930 ELSEIF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
10931 IF (MCGENE.EQ.2) THEN
10932 ZERO1 = ZERO
10933 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SDUM1,SDUM2,SDUM3,
10934 & BSLOPE,0)
10935 ELSE
10936 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
10937 ENDIF
10938 IF (ECMNOW.LE.3.0D0) THEN
10939 ROSH = -0.43D0
10940 ELSEIF ((ECMNOW.GT.3.0D0).AND.(ECMNOW.LE.50.D0)) THEN
10941 ROSH = -0.63D0+0.175D0*LOG(ECMNOW)
10942 ELSEIF (ECMNOW.GT.50.0D0) THEN
10943 ROSH = 0.1D0
10944 ENDIF
10945 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10946 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10947 IF (MCGENE.EQ.2) THEN
10948 ZERO1 = ZERO
10949 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SIGSH,SDUM2,SDUM3,
10950 & BDUM,0)
10951 SIGSH = SIGSH/10.0D0
10952 ELSE
10953C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10954 DUMZER = ZERO
10955 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10956 SIGSH = SIGSH/10.0D0
10957 ENDIF
10958 ELSE
10959 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
10960 ROSH = 0.01D0
10961 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10962 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10963C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10964 DUMZER = ZERO
10965 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10966 SIGSH = SIGSH/10.0D0
10967 ENDIF
10968 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
10969 GAM = GSH
10970 RCA = GAM*SIGSH/TWOPI
10971 FCA = -ROSH*RCA
10972 CA = DCMPLX(RCA,FCA)
10973 CI = DCMPLX(ONE,ZERO)
10974
10975 16 CONTINUE
10976* impact parameter
10977 IF (MCGENE.NE.3) CALL DT_MODB(B,NIDX)
10978
10979 NTRY = 0
10980 3 CONTINUE
10981 NTRY = NTRY+1
10982* initializations
10983 JNT = 0
10984 DO 1 I=1,NA
10985 JS(I) = 0
10986 1 CONTINUE
10987 DO 2 I=1,NB
10988 JT(I) = 0
10989 2 CONTINUE
10990 IF (IJPROJ.EQ.7) THEN
10991 DO 8 I=1,MAXNCL
10992 JS0(I) = 0
10993 JNT0(I)= 0
10994 DO 9 J=1,NB
10995 JT0(I,J) = 0
10996 9 CONTINUE
10997 8 CONTINUE
10998 ENDIF
10999
11000* nucleon configuration
11001C IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,5).EQ.0)) THEN
11002 IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,1).EQ.0)) THEN
11003C CALL DT_CONUCL(PKOO,NA,RASH,2)
11004C CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),1)
11005 IF (NIDX.LE.-1) THEN
11006 CALL DT_CONUCL(PKOO,NA,RASH(1),0)
11007 CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),0)
11008 ELSE
11009 CALL DT_CONUCL(PKOO,NA,RASH(NTARG),0)
11010 CALL DT_CONUCL(TKOO,NB,RBSH(1),0)
11011 ENDIF
11012 NTARGO = NTARG
11013 ENDIF
11014 ICNT = ICNT+1
11015
11016* LEPTO: pick out one struck nucleon
11017 IF (MCGENE.EQ.3) THEN
11018 JNT = 1
11019 JS(1) = 1
11020 IDX = INT(DT_RNDM(X)*NB)+1
11021 JT(IDX) = 1
11022 B = ZERO
11023 GOTO 19
11024 ENDIF
11025
11026 DO 4 INA=1,NA
11027* cross section fluctuations
11028 AFLUC = ONE
11029 IF (IFLUCT.EQ.1) THEN
11030 IFLUK = INT((DT_RNDM(X)+0.001D0)*1000.0D0)
11031 AFLUC = FLUIXX(IFLUK)
11032 ENDIF
11033 KK1 = 1
11034 KINT = 1
11035 DO 5 INB=1,NB
11036* photon-projectile: check for supression by coherence length
11037 IF (IJPROJ.EQ.7) THEN
11038 IF (ABS(TKOO(3,INB)-TKOO(3,KK1)).GT.DCOH) THEN
11039 KK1 = INB
11040 KINT = KINT+1
11041 ENDIF
11042 ENDIF
11043 QQ1 = B+TKOO(1,INB)-PKOO(1,INA)
11044 QQ2 = TKOO(2,INB)-PKOO(2,INA)
11045 XY = GAM*(QQ1*QQ1+QQ2*QQ2)
11046 IF (XY.LE.15.0D0) THEN
11047 C = CI-CA*AFLUC*EXP(-XY)
11048 AR = DBLE(C)
11049 AI = DIMAG(C)
11050 P = AR*AR+AI*AI
11051 IF (DT_RNDM(XY).GE.P) THEN
11052 JNT = JNT+1
11053 IF (IJPROJ.EQ.7) THEN
11054 JNT0(KINT) = JNT0(KINT)+1
11055 IF (JNT0(KINT).GT.MAXNCL) THEN
11056 WRITE(LOUT,1001) MAXNCL
11057 1001 FORMAT(1X,
11058 & 'DIAGR: no. of requested interactions',
11059 & ' exceeds array dimensions ',I4)
11060 STOP
11061 ENDIF
11062 JS0(KINT) = JS0(KINT)+1
11063 JT0(KINT,INB) = JT0(KINT,INB)+1
11064 JI1(KINT,JNT0(KINT)) = INA
11065 JI2(KINT,JNT0(KINT)) = INB
11066 ELSE
11067 IF (JNT.GT.MAXINT) THEN
11068 WRITE(LOUT,1000) JNT, MAXINT
11069 1000 FORMAT(1X,
11070 & 'DIAGR: no. of requested interactions ('
11071 & ,I4,') exceeds array dimensions (',I4,')')
11072 STOP
11073 ENDIF
11074 JS(INA) = JS(INA)+1
11075 JT(INB) = JT(INB)+1
11076 INTER1(JNT) = INA
11077 INTER2(JNT) = INB
11078 ENDIF
11079 ENDIF
11080 ENDIF
11081 5 CONTINUE
11082 4 CONTINUE
11083
11084 IF (JNT.EQ.0) THEN
11085 IF (NTRY.LT.500) THEN
11086 GOTO 3
11087 ELSE
11088C WRITE(6,*) ' new impact parameter required (old= ',B,')'
11089 GOTO 16
11090 ENDIF
11091 ENDIF
11092
11093 IDIREC = 0
11094 IF (IJPROJ.EQ.7) THEN
11095 K = INT(ONE+DT_RNDM(X)*DBLE(KINT))
11096 10 CONTINUE
11097 IF (JNT0(K).EQ.0) THEN
11098 K = K+1
11099 IF (K.GT.KINT) K = 1
11100 GOTO 10
11101 ENDIF
11102* supress Glauber-cascade by direct photon processes
11103 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,2)
11104 IF (IPNT.GT.0) THEN
11105 JNT = 1
11106 JS(1) = 1
11107 DO 11 INB=1,NB
11108 JT(INB) = JT0(K,INB)
11109 IF (JT(INB).GT.0) GOTO 12
11110 11 CONTINUE
11111 12 CONTINUE
11112 INTER1(1) = 1
11113 INTER2(1) = INB
11114 IDIREC = IPNT
11115 ELSE
11116 JNT = JNT0(K)
11117 JS(1) = JS0(K)
11118 DO 13 INB=1,NB
11119 JT(INB) = JT0(K,INB)
11120 13 CONTINUE
11121 DO 14 I=1,JNT
11122 INTER1(I) = JI1(K,I)
11123 INTER2(I) = JI2(K,I)
11124 14 CONTINUE
11125 ENDIF
11126 ENDIF
11127
11128 19 CONTINUE
11129 INTA = 0
11130 INTB = 0
11131 DO 6 I=1,NA
11132 IF (JS(I).NE.0) INTA=INTA+1
11133 6 CONTINUE
11134 DO 7 I=1,NB
11135 IF (JT(I).NE.0) INTB=INTB+1
11136 7 CONTINUE
11137 ICWPG = INTA
11138 ICWTG = INTB
11139 ICIG = JNT
11140 IPGLB = IPGLB+INTA
11141 ITGLB = ITGLB+INTB
11142 NGLB = NGLB+1
11143
11144 IF (NCOMPO.EQ.0) THEN
11145 NCALL = NCALL+1
11146 NWA(INTA) = NWA(INTA)+1
11147 NWB(INTB) = NWB(INTB)+1
11148 ENDIF
11149
11150 RETURN
11151 END
11152
11153*$ CREATE DT_MODB.FOR
11154*COPY DT_MODB
11155*
11156*===modb===============================================================*
11157*
11158 SUBROUTINE DT_MODB(B,NIDX)
11159
11160************************************************************************
11161* Sampling of impact parameter of collision. *
11162* B impact parameter (output) *
11163* NIDX index of projectile/target material (input)*
11164* Based on the original version by Shmakov et al. *
11165* This version dated 21.04.95 is revised by S. Roesler *
11166* *
11167* Last change 27.12.2006 by S. Roesler. *
11168************************************************************************
11169
11170 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11171 SAVE
11172 PARAMETER ( LINP = 10 ,
11173 & LOUT = 6 ,
11174 & LDAT = 9 )
11175 PARAMETER (ZERO=0.0D0,TINY15=1.0D-15,ONE=1.0D0,TWO=2.0D0)
11176
11177 LOGICAL LEFT,LFIRST
11178
11179* central particle production, impact parameter biasing
11180 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
11181 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11182* Glauber formalism: parameters
11183 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11184 & BMAX(NCOMPX),BSTEP(NCOMPX),
11185 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11186 & NSITEB,NSTATB
11187* Glauber formalism: cross sections
11188 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11189 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11190 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11191 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11192 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11193 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11194 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11195 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11196 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11197 & BSLOPE,NEBINI,NQBINI
11198
11199 DATA LFIRST /.TRUE./
11200
11201 NTARG = ABS(NIDX)
11202 IF (NIDX.LE.-1) THEN
11203 RA = RASH(1)
11204 RB = RBSH(NTARG)
11205 ELSE
11206 RA = RASH(NTARG)
11207 RB = RBSH(1)
11208 ENDIF
11209
11210 IF (ICENTR.EQ.2) THEN
11211 IF (RA.EQ.RB) THEN
11212 BB = DT_RNDM(B)*(0.3D0*RA)**2
11213 B = SQRT(BB)
11214 ELSEIF(RA.LT.RB)THEN
11215 BB = DT_RNDM(B)*1.4D0*(RB-RA)**2
11216 B = SQRT(BB)
11217 ELSEIF(RA.GT.RB)THEN
11218 BB = DT_RNDM(B)*1.4D0*(RA-RB)**2
11219 B = SQRT(BB)
11220 ENDIF
11221 ELSE
11222 9 CONTINUE
11223 Y = DT_RNDM(BB)
11224 I0 = 1
11225 I2 = NSITEB
11226 10 CONTINUE
11227 I1 = (I0+I2)/2
11228 LEFT = ((BSITE(0,1,NTARG,I0)-Y)
11229 & *(BSITE(0,1,NTARG,I1)-Y)).LT.ZERO
11230 IF (LEFT) GOTO 20
11231 I0 = I1
11232 GOTO 30
11233 20 CONTINUE
11234 I2 = I1
11235 30 CONTINUE
11236 IF (I2-I0-2) 40,50,60
11237 40 CONTINUE
11238 I1 = I2+1
11239 IF (I1.GT.NSITEB) I1 = I0-1
11240 GOTO 70
11241 50 CONTINUE
11242 I1 = I0+1
11243 GOTO 70
11244 60 CONTINUE
11245 GOTO 10
11246 70 CONTINUE
11247 X0 = DBLE(I0-1)*BSTEP(NTARG)
11248 X1 = DBLE(I1-1)*BSTEP(NTARG)
11249 X2 = DBLE(I2-1)*BSTEP(NTARG)
11250 Y0 = BSITE(0,1,NTARG,I0)
11251 Y1 = BSITE(0,1,NTARG,I1)
11252 Y2 = BSITE(0,1,NTARG,I2)
11253 80 CONTINUE
11254 B = X0*(Y-Y1)*(Y-Y2)/((Y0-Y1)*(Y0-Y2)+TINY15)+
11255 & X1*(Y-Y0)*(Y-Y2)/((Y1-Y0)*(Y1-Y2)+TINY15)+
11256 & X2*(Y-Y0)*(Y-Y1)/((Y2-Y0)*(Y2-Y1)+TINY15)
11257**sr 5.4.98: shift B by half the bin width to be in agreement with BPROD
11258 B = B+0.5D0*BSTEP(NTARG)
11259 IF (B.LT.ZERO) B = X1
11260 IF (B.GT.BMAX(NTARG)) B = BMAX(NTARG)
11261 IF (ICENTR.LT.0) THEN
11262 IF (LFIRST) THEN
11263 LFIRST = .FALSE.
11264 IF (ICENTR.LE.-100) THEN
11265 BIMIN = 0.0D0
11266 ELSE
11267 XSFRAC = 0.0D0
11268 ENDIF
11269 CALL DT_GETBXS(XSFRAC,BIMIN,BIMAX,NTARG)
11270 WRITE(LOUT,1000) RASH(1),RBSH(NTARG),BMAX(NTARG),
11271 & BIMIN,BIMAX,XSFRAC*100.0D0,
11272 & XSFRAC*XSPRO(1,1,NTARG)
11273 10000 FORMAT(/,1X,'DT_MODB: Biasing in impact parameter',
11274 & /,15X,'---------------------------'/,/,4X,
11275 & 'average radii of proj / targ :',F10.3,' fm /',
11276 & F7.3,' fm',/,4X,'corresp. b_max (4*(r_p+r_t)) :',
11277 & F10.3,' fm',/,/,21X,'b_lo / b_hi :',
11278 & F10.3,' fm /',F7.3,' fm',/,5X,'percentage of',
11279 & ' cross section :',F10.3,' %',/,5X,
11280 & 'corresponding cross section :',F10.3,' mb',/)
11281 ENDIF
11282 IF (ABS(BIMAX-BIMIN).LT.1.0D-3) THEN
11283 B = BIMIN
11284 ELSE
11285 IF ((B.LT.BIMIN).OR.(B.GT.BIMAX)) GOTO 9
11286 ENDIF
11287 ENDIF
11288 ENDIF
11289
11290 RETURN
11291 END
11292
11293*$ CREATE DT_SHFAST.FOR
11294*COPY DT_SHFAST
11295*
11296*===shfast=============================================================*
11297*
11298 SUBROUTINE DT_SHFAST(MODE,PPN,IBACK)
11299
11300 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11301 SAVE
11302 PARAMETER ( LINP = 10 ,
11303 & LOUT = 6 ,
11304 & LDAT = 9 )
11305 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY1=1.0D-1,
11306 & ONE=1.0D0,TWO=2.0D0)
11307
11308 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11309* Glauber formalism: parameters
11310 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11311 & BMAX(NCOMPX),BSTEP(NCOMPX),
11312 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11313 & NSITEB,NSTATB
11314* properties of interacting particles
11315 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11316* Glauber formalism: cross sections
11317 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11318 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11319 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11320 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11321 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11322 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11323 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11324 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11325 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11326 & BSLOPE,NEBINI,NQBINI
11327
11328 IBACK = 0
11329
11330 IF (MODE.EQ.2) THEN
11331 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11332 WRITE(47,1000) IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG,PPN
11333 1000 FORMAT(1X,8I5,E15.5)
11334 WRITE(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11335 1001 FORMAT(1X,4E15.5)
11336 WRITE(47,1002) SIGSH,ROSH,GSH
11337 1002 FORMAT(1X,3E15.5)
11338 DO 10 I=1,100
11339 WRITE(47,'(1X,E15.5)') BSITE(1,1,1,I)
11340 10 CONTINUE
11341 WRITE(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11342 1003 FORMAT(1X,2I10,3E15.5)
11343 CLOSE(47)
11344 ELSE
11345 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11346 READ(47,1000) JT,JTZ,JP,JPZ,JJPROJ,JBPROJ,JJTARG,JBTARG,PP
11347 IF ((JT.EQ.IT).AND.(JTZ.EQ.ITZ).AND.(JP.EQ.IP).AND.
11348 & (JPZ.EQ.IPZ).AND.(JJPROJ.EQ.IJPROJ).AND.(JBPROJ.EQ.IBPROJ)
11349 & .AND.(JJTARG.EQ.IJTARG).AND.(JBTARG.EQ.IBTARG).AND.
11350 & (ABS(PP-PPN).LT.(PPN*0.01D0))) THEN
11351 READ(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11352 READ(47,1002) SIGSH,ROSH,GSH
11353 DO 11 I=1,100
11354 READ(47,'(1X,E15.5)') BSITE(1,1,1,I)
11355 11 CONTINUE
11356 READ(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11357 ELSE
11358 IBACK = 1
11359 ENDIF
11360 CLOSE(47)
11361 ENDIF
11362
11363 RETURN
11364 END
11365
11366*$ CREATE DT_POILIK.FOR
11367*COPY DT_POILIK
11368*
11369*===poilik=============================================================*
11370*
11371 SUBROUTINE DT_POILIK(NB,NTARG,ECM,VIRT,IPNT,RPNT,MODE)
11372
11373 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
11374 SAVE
11375
11376 PARAMETER ( LINP = 10 ,
11377 & LOUT = 6 ,
11378 & LDAT = 9 )
11379 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.0D0)
11380 PARAMETER (NE = 8)
11381
11382**PHOJET105a
11383C CHARACTER*8 MDLNA
11384C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
11385C PARAMETER (IEETAB=10)
11386C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
11387**PHOJET110
11388C model switches and parameters
11389 CHARACTER*8 MDLNA
11390 INTEGER ISWMDL,IPAMDL
11391 DOUBLE PRECISION PARMDL
11392 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
11393C energy-interpolation table
11394 INTEGER IEETA2
11395 PARAMETER ( IEETA2 = 20 )
11396 INTEGER ISIMAX
11397 DOUBLE PRECISION SIGTAB,SIGECM
11398 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
11399**
11400* VDM parameter for photon-nucleus interactions
11401 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
11402**sr 22.7.97
11403 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11404* Glauber formalism: cross sections
11405 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11406 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11407 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11408 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11409 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11410 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11411 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11412 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11413 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11414 & BSLOPE,NEBINI,NQBINI
11415**
11416
11417 DATA ECMOLD,Q2OLD /-1.0D0,-1.0D0/
11418
11419 IF ((ECM.EQ.ECMOLD).AND.(VIRT.EQ.Q2OLD)) GOTO 3
11420
11421* load cross sections from interpolation table
11422 IP = 1
11423 IF(ECM.LE.SIGECM(IP,1)) THEN
11424 I1 = 1
11425 I2 = 1
11426 ELSE IF(ECM.LT.SIGECM(IP,ISIMAX)) THEN
11427 DO 50 I=2,ISIMAX
11428 IF(ECM.LE.SIGECM(IP,I)) GOTO 200
11429 50 CONTINUE
11430 200 CONTINUE
11431 I1 = I-1
11432 I2 = I
11433 ELSE
11434 WRITE(LOUT,'(/1X,A,2E12.3)')
11435 & 'POILIK:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
11436 I1 = ISIMAX
11437 I2 = ISIMAX
11438 ENDIF
11439 FAC2 = ZERO
11440 IF(I1.NE.I2) FAC2=LOG(ECM/SIGECM(IP,I1))
11441 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
11442 FAC1 = ONE-FAC2
11443
11444 SIGANO = DT_SANO(ECM)
11445
11446* cross section dependence on photon virtuality
11447 FSUP1 = ZERO
11448 DO 150 I=1,3
11449 FSUP1 = FSUP1+PARMDL(26+I)*(ONE+VIRT/(4.D0*PARMDL(30+I)))
11450 & /(ONE+VIRT/PARMDL(30+I))**2
11451 150 CONTINUE
11452 FSUP1 = FSUP1+PARMDL(30)/(ONE+VIRT/PARMDL(34))
11453 FAC1 = FAC1*FSUP1
11454 FAC2 = FAC2*FSUP1
11455 FSUP2 = ONE
11456
11457 ECMOLD = ECM
11458 Q2OLD = VIRT
11459
11460 3 CONTINUE
11461
11462C SIGTOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
11463 CALL DT_SIGGP(ZERO,VIRT,ECM,ZERO,SIGTOT,DUM1,DUM2)
11464 IF (ISHAD(1).EQ.1) THEN
11465 SIGDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
11466 ELSE
11467 SIGDIR = ZERO
11468 ENDIF
11469 SIGANO = FSUP1*FSUP2*SIGANO
11470 SIGTOT = SIGTOT-SIGDIR-SIGANO
11471 SIGDIR = SIGDIR/(FSUP1*FSUP2)
11472 SIGANO = SIGANO/(FSUP1*FSUP2)
11473 SIGTOT = SIGTOT+SIGDIR+SIGANO
11474
11475 RR = DT_RNDM(SIGTOT)
11476 IF (RR.LT.SIGDIR/SIGTOT) THEN
11477 IPNT = 1
11478 ELSEIF ((RR.GE.SIGDIR/SIGTOT).AND.
11479 & (RR.LT.(SIGDIR+SIGANO)/SIGTOT)) THEN
11480 IPNT = 2
11481 ELSE
11482 IPNT = 0
11483 ENDIF
11484 RPNT = (SIGDIR+SIGANO)/SIGTOT
11485C WRITE(LOUT,'(I3,2F15.5)') ISHAD(1),FAC1,FAC2
11486C WRITE(LOUT,'(I3,2F15.5)') MODE,SIGDIR,SIGANO
11487C WRITE(LOUT,'(I3,4F15.5)') MODE,SIGDIR+SIGANO,SIGTOT,RPNT,ECM
11488C WRITE(LOUT,'(1X,6E12.4)') ECM,VIRT,SIGTOT,SIGDIR,SIGANO,RPNT
11489 IF (MODE.EQ.1) RETURN
11490
11491**sr 22.7.97
11492 K1 = 1
11493 K2 = 1
11494 RATE = ZERO
11495 IF (ECM.GE.ECMNN(NEBINI)) THEN
11496 K1 = NEBINI
11497 K2 = NEBINI
11498 RATE = ONE
11499 ELSEIF (ECM.GT.ECMNN(1)) THEN
11500 DO 10 I=2,NEBINI
11501 IF (ECM.LT.ECMNN(I)) THEN
11502 K1 = I-1
11503 K2 = I
11504 RATE = (ECM-ECMNN(K1))/(ECMNN(K2)-ECMNN(K1))
11505 GOTO 11
11506 ENDIF
11507 10 CONTINUE
11508 11 CONTINUE
11509 ENDIF
11510 J1 = 1
11511 J2 = 1
11512 RATQ = ZERO
11513 IF (NQBINI.GT.1) THEN
11514 IF (VIRT.GE.Q2G(NQBINI)) THEN
11515 J1 = NQBINI
11516 J2 = NQBINI
11517 RATQ = ONE
11518 ELSEIF (VIRT.GT.Q2G(1)) THEN
11519 DO 12 I=2,NQBINI
11520 IF (VIRT.LT.Q2G(I)) THEN
11521 J1 = I-1
11522 J2 = I
11523 RATQ = LOG10( VIRT/MAX(Q2G(J1),TINY14))/
11524 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
11525 GOTO 13
11526 ENDIF
11527 12 CONTINUE
11528 13 CONTINUE
11529 ENDIF
11530 ENDIF
11531 SGA = XSPRO(K1,J1,NTARG)+
11532 & RATE*(XSPRO(K2,J1,NTARG)-XSPRO(K1,J1,NTARG))+
11533 & RATQ*(XSPRO(K1,J2,NTARG)-XSPRO(K1,J1,NTARG))+
11534 & RATE*RATQ*(XSPRO(K2,J2,NTARG)-XSPRO(K1,J2,NTARG)+
11535 & XSPRO(K1,J1,NTARG)-XSPRO(K2,J1,NTARG))
11536 SDI = DBLE(NB)*SIGDIR
11537 SAN = DBLE(NB)*SIGANO
11538 SPL = SDI+SAN
11539 RR = DT_RNDM(SPL)
11540 IF (RR.LT.SDI/SGA) THEN
11541 IPNT = 1
11542 ELSEIF ((RR.GE.SDI/SGA).AND.
11543 & (RR.LT.SPL/SGA)) THEN
11544 IPNT = 2
11545 ELSE
11546 IPNT = 0
11547 ENDIF
11548 RPNT = SPL/SGA
11549C WRITE(LOUT,'(I3,4F15.5)') MODE,SPL,SGA,RPNT,ECM
11550**
11551
11552 RETURN
11553 END
11554
11555*$ CREATE DT_GLBINI.FOR
11556*COPY DT_GLBINI
11557*
11558*===glbini=============================================================*
11559*
11560 SUBROUTINE DT_GLBINI(WHAT)
11561
11562************************************************************************
11563* Pre-initialization of profile function *
11564* This version dated 28.11.00 is written by S. Roesler. *
11565* *
11566* Last change 27.12.2006 by S. Roesler. *
11567************************************************************************
11568
11569 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11570 SAVE
11571
11572 PARAMETER ( LINP = 10 ,
11573 & LOUT = 6 ,
11574 & LDAT = 9 )
11575 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.D-14)
11576
11577 LOGICAL LCMS
11578
11579* particle properties (BAMJET index convention)
11580 CHARACTER*8 ANAME
11581 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11582 & IICH(210),IIBAR(210),K1(210),K2(210)
11583* properties of interacting particles
11584 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11585 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11586* emulsion treatment
11587 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11588 & NCOMPO,IEMUL
11589* Glauber formalism: flags and parameters for statistics
11590 LOGICAL LPROD
11591 CHARACTER*8 CGLB
11592 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11593* number of data sets other than protons and nuclei
11594* at the moment = 2 (pions and kaons)
11595 PARAMETER (MAXOFF=2)
11596 DIMENSION IJPINI(5),IOFFST(25)
11597 DATA IJPINI / 13, 15, 0, 0, 0/
11598* Glauber data-set to be used for hadron projectiles
11599* (0=proton, 1=pion, 2=kaon)
11600 DATA (IOFFST(K),K=1,25) /
11601 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11602 & 0, 0, 1, 2, 2/
11603* Acceptance interval for target nucleus mass
11604 PARAMETER (KBACC = 6)
11605* flags for input different options
11606 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
11607 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
11608 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
11609
11610 PARAMETER (MAXMSS = 100)
11611 DIMENSION IASAV(MAXMSS),IBSAV(MAXMSS)
11612 DIMENSION WHAT(6)
11613
11614 DATA JPEACH,JPSTEP / 18, 5 /
11615
11616* temporary patch until fix has been implemented in phojet:
11617* maximum energy for pion projectile
11618 DATA ECMXPI / 100000.0D0 /
11619*
11620*--------------------------------------------------------------------------
11621* general initializations
11622*
11623* steps in projectile mass number for initialization
11624 IF (WHAT(4).GT.ZERO) JPEACH = INT(WHAT(4))
11625 IF (WHAT(5).GT.ZERO) JPSTEP = INT(WHAT(5))
11626*
11627* energy range and binning
11628 ELO = ABS(WHAT(1))
11629 EHI = ABS(WHAT(2))
11630 IF (ELO.GT.EHI) ELO = EHI
11631 NEBIN = MAX(INT(WHAT(3)),1)
11632 IF (ELO.EQ.EHI) NEBIN = 0
11633 LCMS = (WHAT(1).LT.ZERO).OR.(WHAT(2).LT.ZERO)
11634 IF (LCMS) THEN
11635 ECMINI = EHI
11636 ELSE
11637 ECMINI = SQRT(AAM(IJPROJ)**2+AAM(IJTARG)**2
11638 & +2.0D0*AAM(IJTARG)*EHI)
11639 ENDIF
11640*
11641* default arguments for Glauber-routine
11642 XI = ZERO
11643 Q2I = ZERO
11644*
11645* initialize nuclear parameters, etc.
11646 CALL DT_BERTTP
11647 CALL DT_INCINI
11648*
11649* open Glauber-data output file
11650 IDX = INDEX(CGLB,' ')
11651 K = 12
11652 IF (IDX.GT.1) K = IDX-1
11653 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11654*
11655*--------------------------------------------------------------------------
11656* Glauber-initialization for proton and nuclei projectiles
11657*
11658* initialize phojet for proton-proton interactions
11659 ELAB = ZERO
11660 PLAB = ZERO
11661 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11662 CALL DT_PHOINI
11663*
11664* record projectile masses
11665 NASAV = 0
11666 NPROJ = MIN(IP,JPEACH)
11667 DO 10 KPROJ=1,NPROJ
11668 NASAV = NASAV+1
11669 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11670 IASAV(NASAV) = KPROJ
11671 10 CONTINUE
11672 IF (IP.GT.JPEACH) THEN
11673 NPROJ = DBLE(IP-JPEACH)/DBLE(JPSTEP)
11674 IF (NPROJ.EQ.0) THEN
11675 NASAV = NASAV+1
11676 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11677 IASAV(NASAV) = IP
11678 ELSE
11679 DO 11 IPROJ=1,NPROJ
11680 KPROJ = JPEACH+IPROJ*JPSTEP
11681 NASAV = NASAV+1
11682 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11683 IASAV(NASAV) = KPROJ
11684 11 CONTINUE
11685 IF (KPROJ.LT.IP) THEN
11686 NASAV = NASAV+1
11687 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11688 IASAV(NASAV) = IP
11689 ENDIF
11690 ENDIF
11691 ENDIF
11692*
11693* record target masses
11694 NBSAV = 0
11695 NTARG = 1
11696 IF (NCOMPO.GT.0) NTARG = NCOMPO
11697 DO 12 ITARG=1,NTARG
11698 NBSAV = NBSAV+1
11699 IF (NBSAV.GT.MAXMSS) STOP ' GLBINI: NBSAV > MAXMSS ! '
11700 IF (NCOMPO.GT.0) THEN
11701 IBSAV(NBSAV) = IEMUMA(ITARG)
11702 ELSE
11703 IBSAV(NBSAV) = IT
11704 ENDIF
11705 12 CONTINUE
11706*
11707* print masses
11708 WRITE(LDAT,1000) NEBIN,': ',SIGN(ELO,WHAT(1)),SIGN(EHI,WHAT(2))
11709 1000 FORMAT(I4,A,1P,2E13.5)
11710 NLINES = DBLE(NASAV)/18.0D0
11711 IF (NLINES.GT.0) THEN
11712 DO 13 I=1,NLINES
11713 IF (I.EQ.1) THEN
11714 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=1,18)
11715 ELSE
11716 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=18*I-17,18*I)
11717 ENDIF
11718 13 CONTINUE
11719 ENDIF
11720 I0 = 18*NLINES+1
11721 IF (I0.LE.NASAV) THEN
11722 IF (I0.EQ.1) THEN
11723 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=I0,NASAV)
11724 ELSE
11725 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=I0,NASAV)
11726 ENDIF
11727 ENDIF
11728 NLINES = DBLE(NBSAV)/18.0D0
11729 IF (NLINES.GT.0) THEN
11730 DO 14 I=1,NLINES
11731 IF (I.EQ.1) THEN
11732 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=1,18)
11733 ELSE
11734 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=18*I-17,18*I)
11735 ENDIF
11736 14 CONTINUE
11737 ENDIF
11738 I0 = 18*NLINES+1
11739 IF (I0.LE.NBSAV) THEN
11740 IF (I0.EQ.1) THEN
11741 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=I0,NBSAV)
11742 ELSE
11743 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=I0,NBSAV)
11744 ENDIF
11745 ENDIF
11746*
11747* calculate Glauber-data for each energy and mass combination
11748*
11749* loop over energy bins
11750 ELO = LOG10(ELO)
11751 EHI = LOG10(EHI)
11752 DEBIN = (EHI-ELO)/MAX(DBLE(NEBIN),ONE)
11753 DO 1 IE=1,NEBIN+1
11754 E = ELO+DBLE(IE-1)*DEBIN
11755 E = 10**E
11756 IF (LCMS) THEN
11757 E = MAX(2.0D0*AAM(IJPROJ)+0.1D0,E)
11758 ECM = E
11759 ELSE
11760 PLAB = ZERO
11761 ECM = ZERO
11762 E = MAX(AAM(IJPROJ)+0.1D0,E)
11763 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11764 ENDIF
11765*
11766* loop over projectile and target masses
11767 DO 2 ITARG=1,NBSAV
11768 DO 3 IPROJ=1,NASAV
11769 CALL DT_XSGLAU(IASAV(IPROJ),IBSAV(ITARG),IJPROJ,
11770 & XI,Q2I,ECM,1,1,-1)
11771 3 CONTINUE
11772 2 CONTINUE
11773*
11774 1 CONTINUE
11775*
11776*--------------------------------------------------------------------------
11777* Glauber-initialization for pion, kaon, ... projectiles
11778*
11779 DO 6 IJ=1,MAXOFF
11780*
11781* initialize phojet for this interaction
11782 ELAB = ZERO
11783 PLAB = ZERO
11784 IJPROJ = IJPINI(IJ)
11785 IP = 1
11786 IPZ = 1
11787*
11788* temporary patch until fix has been implemented in phojet:
11789 IF (ECMINI.GT.ECMXPI) THEN
11790 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMXPI,1)
11791 ELSE
11792 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11793 ENDIF
11794 CALL DT_PHOINI
11795*
11796* calculate Glauber-data for each energy and mass combination
11797*
11798* loop over energy bins
11799 DO 4 IE=1,NEBIN+1
11800 E = ELO+DBLE(IE-1)*DEBIN
11801 E = 10**E
11802 IF (LCMS) THEN
11803 E = MAX(2.0D0*AAM(IJPROJ)+TINY14,E)
11804 ECM = E
11805 ELSE
11806 PLAB = ZERO
11807 ECM = ZERO
11808 E = MAX(AAM(IJPROJ)+TINY14,E)
11809 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11810 ENDIF
11811*
11812* loop over projectile and target masses
11813 DO 5 ITARG=1,NBSAV
11814 CALL DT_XSGLAU(1,IBSAV(ITARG),IJPROJ,XI,Q2I,ECM,1,1,-1)
11815 5 CONTINUE
11816*
11817 4 CONTINUE
11818*
11819 6 CONTINUE
11820
11821*--------------------------------------------------------------------------
11822* close output unit(s), etc.
11823*
11824 CLOSE(LDAT)
11825
11826 RETURN
11827 END
11828
11829*$ CREATE DT_GLBSET.FOR
11830*COPY DT_GLBSET
11831*
11832*===glbset=============================================================*
11833*
11834 SUBROUTINE DT_GLBSET(IDPROJ,NA,NB,ELAB,MODE)
11835************************************************************************
11836* Interpolation of pre-initialized profile functions *
11837* This version dated 28.11.00 is written by S. Roesler. *
11838************************************************************************
11839
11840 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11841 SAVE
11842
11843 PARAMETER ( LINP = 10 ,
11844 & LOUT = 6 ,
11845 & LDAT = 9 )
11846 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
11847
11848 LOGICAL LCMS,LREAD,LFRST1,LFRST2
11849
11850* particle properties (BAMJET index convention)
11851 CHARACTER*8 ANAME
11852 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11853 & IICH(210),IIBAR(210),K1(210),K2(210)
11854* Glauber formalism: flags and parameters for statistics
11855 LOGICAL LPROD
11856 CHARACTER*8 CGLB
11857 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11858 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11859* Glauber formalism: parameters
11860 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11861 & BMAX(NCOMPX),BSTEP(NCOMPX),
11862 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11863 & NSITEB,NSTATB
11864* Glauber formalism: cross sections
11865 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11866 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11867 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11868 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11869 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11870 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11871 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11872 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11873 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11874 & BSLOPE,NEBINI,NQBINI
11875* number of data sets other than protons and nuclei
11876* at the moment = 2 (pions and kaons)
11877 PARAMETER (MAXOFF=2)
11878 DIMENSION IJPINI(5),IOFFST(25)
11879 DATA IJPINI / 13, 15, 0, 0, 0/
11880* Glauber data-set to be used for hadron projectiles
11881* (0=proton, 1=pion, 2=kaon)
11882 DATA (IOFFST(K),K=1,25) /
11883 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11884 & 0, 0, 1, 2, 2/
11885* Acceptance interval for target nucleus mass
11886 PARAMETER (KBACC = 6)
11887* emulsion treatment
11888 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11889 & NCOMPO,IEMUL
11890
11891 PARAMETER (MAXSET=5000,
11892 & MAXBIN=100)
11893 DIMENSION XSIG(MAXSET,6),XERR(MAXSET,6),BPROFL(MAXSET,KSITEB)
11894 DIMENSION IABIN(MAXBIN),IBBIN(MAXBIN),XS(6),XE(6),
11895 & BPRO0(KSITEB),BPRO1(KSITEB),BPRO(KSITEB),
11896 & IAIDX(10)
11897
11898 DATA LREAD,LFRST1,LFRST2 /.FALSE.,.TRUE.,.TRUE./
11899*
11900* read data from file
11901*
11902 IF (MODE.EQ.0) THEN
11903
11904 IF (LREAD) RETURN
11905
11906 DO 1 I=1,MAXSET
11907 DO 2 J=1,6
11908 XSIG(I,J) = ZERO
11909 XERR(I,J) = ZERO
11910 2 CONTINUE
11911 DO 3 J=1,KSITEB
11912 BPROFL(I,J) = ZERO
11913 3 CONTINUE
11914 1 CONTINUE
11915 DO 4 I=1,MAXBIN
11916 IABIN(I) = 0
11917 IBBIN(I) = 0
11918 4 CONTINUE
11919 DO 5 I=1,KSITEB
11920 BPRO0(I) = ZERO
11921 BPRO1(I) = ZERO
11922 BPRO(I) = ZERO
11923 5 CONTINUE
11924
11925 IDX = INDEX(CGLB,' ')
11926 K = 12
11927 IF (IDX.GT.1) K = IDX-1
11928 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11929 WRITE(LOUT,1000) CGLB(1:K)//'.glb'
11930 1000 FORMAT(/,' GLBSET: impact parameter distributions read from ',
11931 & 'file ',A12,/)
11932*
11933* read binning information
11934 READ(LDAT,'(I4,2X,2E13.5)') NEBIN,ELO,EHI
11935* return lower energy threshold to Fluka-interface
11936 ELAB = ELO
11937 LCMS = ELO.LT.ZERO
11938 WRITE(LOUT,'(1X,A)') ' equidistant logarithmic energy binning:'
11939 IF (LCMS) THEN
11940 WRITE(LOUT,1001) '(cms)',ABS(ELO),ABS(EHI),NEBIN
11941 ELSE
11942 WRITE(LOUT,1001) '(lab)',ABS(ELO),ABS(EHI),NEBIN
11943 ENDIF
11944 1001 FORMAT(2X,A5,' E_lo = ',1P,E9.3,' E_hi = ',1P,E9.3,4X,
11945 & 'No. of bins:',I5,/)
11946 ELO = LOG10(ABS(ELO))
11947 EHI = LOG10(ABS(EHI))
11948 DEBIN = (EHI-ELO)/ABS(DBLE(NEBIN))
11949 WRITE(LOUT,'(/,1X,A)') ' projectiles: (mass number)'
11950 READ(LDAT,'(I4,2X,18I4)') NABIN,(IABIN(J),J=1,18)
11951 IF (NABIN.LT.18) THEN
11952 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,NABIN)
11953 ELSE
11954 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,18)
11955 ENDIF
11956 IF (NABIN.GT.MAXBIN) STOP ' GLBSET: NABIN > MAXBIN !'
11957 IF (NABIN.GT.18) THEN
11958 NLINES = DBLE(NABIN-18)/18.0D0
11959 IF (NLINES.GT.0) THEN
11960 DO 7 I=1,NLINES
11961 I0 = 18*(I+1)-17
11962 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11963 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11964 7 CONTINUE
11965 ENDIF
11966 I0 = 18*(NLINES+1)+1
11967 IF (I0.LE.NABIN) THEN
11968 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11969 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11970 ENDIF
11971 ENDIF
11972 WRITE(LOUT,'(/,1X,A)') ' targets: (mass number)'
11973 READ(LDAT,'(I4,2X,18I4)') NBBIN,(IBBIN(J),J=1,18)
11974 IF (NBBIN.LT.18) THEN
11975 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,NBBIN)
11976 ELSE
11977 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,18)
11978 ENDIF
11979 IF (NBBIN.GT.MAXBIN) STOP ' GLBSET: NBBIN > MAXBIN !'
11980 IF (NBBIN.GT.18) THEN
11981 NLINES = DBLE(NBBIN-18)/18.0D0
11982 IF (NLINES.GT.0) THEN
11983 DO 8 I=1,NLINES
11984 I0 = 18*(I+1)-17
11985 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
11986 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
11987 8 CONTINUE
11988 ENDIF
11989 I0 = 18*(NLINES+1)+1
11990 IF (I0.LE.NBBIN) THEN
11991 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
11992 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
11993 ENDIF
11994 ENDIF
11995* number of data sets to follow in the Glauber data file
11996* this variable is used for checks of consistency of projectile
11997* and target mass configurations given in header of Glauber data
11998* file and the data-sets which follow in this file
11999 NSET0 = (NEBIN+1)*(NABIN+MAXOFF)*NBBIN
12000*
12001* read profile function data
12002 NSET = 0
12003 NAIDX = 0
12004 IPOLD = 0
12005 10 CONTINUE
12006 NSET = NSET+1
12007 IF (NSET.GT.MAXSET) STOP ' GLBSET: NSET > MAXSET ! '
12008 READ(LDAT,1002,END=100) IP,IA,IB,ISTATB,ISITEB,ECM
12009 1002 FORMAT(5I10,E15.5)
12010 IF ((IP.NE.1).AND.(IP.NE.IPOLD)) THEN
12011 NAIDX = NAIDX+1
12012 IF (NAIDX.GT.10) STOP ' GLBSET: NAIDX > 10 !'
12013 IAIDX(NAIDX) = IP
12014 IPOLD = IP
12015 ENDIF
12016 READ(LDAT,'(6E12.5)') (XSIG(NSET,I),I=1,6)
12017 READ(LDAT,'(6E12.5)') (XERR(NSET,I),I=1,6)
12018 NLINES = INT(DBLE(ISITEB)/7.0D0)
12019 IF (NLINES.GT.0) THEN
12020 DO 11 I=1,NLINES
12021 READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=7*I-6,7*I)
12022 11 CONTINUE
12023 ENDIF
12024 I0 = 7*NLINES+1
12025 IF (I0.LE.ISITEB)
12026 & READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=I0,ISITEB)
12027 GOTO 10
12028 100 CONTINUE
12029 NSET = NSET-1
12030 IF (NSET.NE.NSET0) STOP ' GLBSET: NSET.NE.NSET0 !'
12031 WRITE(LOUT,'(/,1X,A)')
12032 & ' projectiles other than protons and nuclei: (particle index)'
12033 IF (NAIDX.GT.0) THEN
12034 WRITE(LOUT,'(6X,18I4)') (IAIDX(J),J=1,NAIDX)
12035 ELSE
12036 WRITE(LOUT,'(6X,A)') 'none'
12037 ENDIF
12038*
12039 CLOSE(LDAT)
12040 WRITE(LOUT,*)
12041 LREAD = .TRUE.
12042
12043 IF (NCOMPO.EQ.0) THEN
12044 DO 12 J=1,NBBIN
12045 NCOMPO = NCOMPO+1
12046 IEMUMA(NCOMPO) = IBBIN(J)
12047 IEMUCH(NCOMPO) = IEMUMA(NCOMPO)/2
12048 EMUFRA(NCOMPO) = 1.0D0
12049 12 CONTINUE
12050 IEMUL = 1
12051 ENDIF
12052*
12053* calculate profile function for certain set of parameters
12054*
12055 ELSE
12056
12057c write(*,*) 'glbset called for ',IDPROJ,NA,NB,ELAB,MODE
12058*
12059* check for type of projectile and set index-offset to entry in
12060* Glauber data array correspondingly
12061 IF (IDPROJ.GT.25) STOP ' GLBSET: IDPROJ > 25 !'
12062 IF (IOFFST(IDPROJ).EQ.-1) THEN
12063 STOP ' GLBSET: no data for this projectile !'
12064 ELSEIF (IOFFST(IDPROJ).GT.0) THEN
12065 IDXOFF = (NEBIN+1)*(NABIN+IOFFST(IDPROJ)-1)*NBBIN
12066 ELSE
12067 IDXOFF = 0
12068 ENDIF
12069*
12070* get energy bin and interpolation factor
12071 IF (LCMS) THEN
12072 E = SQRT(AAM(IDPROJ)**2+AAM(1)**2+2.0D0*AAM(1)*ELAB)
12073 ELSE
12074 E = ELAB
12075 ENDIF
12076 E = LOG10(E)
12077 IF (E.LT.ELO) THEN
12078 IF (LFRST1) THEN
12079 WRITE(LOUT,*) ' GLBSET: Too low energy! (E_lo,E) ',ELO,E
12080 LFRST1 = .FALSE.
12081 ENDIF
12082 E = ELO
12083 ENDIF
12084 IF (E.GT.EHI) THEN
12085 IF (LFRST2) THEN
12086 WRITE(LOUT,*) ' GLBSET: Too high energy! (E_hi,E) ',EHI,E
12087 LFRST2 = .FALSE.
12088 ENDIF
12089 E = EHI
12090 ENDIF
12091 IE0 = (E-ELO)/DEBIN+1
12092 IE1 = IE0+1
12093 FACE = (E-(ELO+DBLE(IE0-1)*DEBIN))/DEBIN
12094*
12095* get target nucleus index
12096 KB = 0
12097 NBACC = KBACC
12098 DO 20 I=1,NBBIN
12099 NBDIFF = ABS(NB-IBBIN(I))
12100 IF (NB.EQ.IBBIN(I)) THEN
12101 KB = I
12102 GOTO 21
12103 ELSEIF (NBDIFF.LE.NBACC) THEN
12104 KB = I
12105 NBACC = NBDIFF
12106 ENDIF
12107 20 CONTINUE
12108 IF (KB.NE.0) GOTO 21
12109 WRITE(LOUT,*) ' GLBSET: data not found for target ',NB
12110 STOP
12111 21 CONTINUE
12112*
12113* get projectile nucleus bin and interpolation factor
12114 KA0 = 0
12115 KA1 = 0
12116 FACNA = 0
12117 IF (IDXOFF.GT.0) THEN
12118 KA0 = 1
12119 KA1 = 1
12120 KABIN = 1
12121 ELSE
12122 IF (NA.GT.IABIN(NABIN)) STOP ' GLBSET: NA > IABIN(NABIN) !'
12123 DO 22 I=1,NABIN
12124 IF (NA.EQ.IABIN(I)) THEN
12125 KA0 = I
12126 KA1 = I
12127 GOTO 23
12128 ELSEIF (NA.LT.IABIN(I)) THEN
12129 KA0 = I-1
12130 KA1 = I
12131 GOTO 23
12132 ENDIF
12133 22 CONTINUE
12134 WRITE(LOUT,*) ' GLBSET: data not found for projectile ',NA
12135 STOP
12136 23 CONTINUE
12137 IF (KA0.NE.KA1)
12138 & FACNA = DBLE(NA-IABIN(KA0))/DBLE(IABIN(KA1)-IABIN(KA0))
12139 KABIN = NABIN
12140 ENDIF
12141*
12142* interpolate profile functions for interactions ka0-kb and ka1-kb
12143* for energy E separately
12144 IDX0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12145 IDX1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12146 IDY0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12147 IDY1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12148 DO 30 I=1,ISITEB
12149 BPRO0(I) = BPROFL(IDX0,I)
12150 & +FACE*(BPROFL(IDX1,I)-BPROFL(IDX0,I))
12151 BPRO1(I) = BPROFL(IDY0,I)
12152 & +FACE*(BPROFL(IDY1,I)-BPROFL(IDY0,I))
12153 30 CONTINUE
12154 RADB = DT_RNCLUS(NB)
12155 BSTP0 = 2.0D0*(DT_RNCLUS(IABIN(KA0))+RADB)/DBLE(ISITEB-1)
12156 BSTP1 = 2.0D0*(DT_RNCLUS(IABIN(KA1))+RADB)/DBLE(ISITEB-1)
12157*
12158* interpolate cross sections for energy E and projectile mass
12159 DO 31 I=1,6
12160 XS0 = XSIG(IDX0,I)+FACE*(XSIG(IDX1,I)-XSIG(IDX0,I))
12161 XS1 = XSIG(IDY0,I)+FACE*(XSIG(IDY1,I)-XSIG(IDY0,I))
12162 XS(I) = XS0+FACNA*(XS1-XS0)
12163 XE0 = XERR(IDX0,I)+FACE*(XERR(IDX1,I)-XERR(IDX0,I))
12164 XE1 = XERR(IDY0,I)+FACE*(XERR(IDY1,I)-XERR(IDY0,I))
12165 XE(I) = XE0+FACNA*(XE1-XE0)
12166 31 CONTINUE
12167*
12168* interpolate between ka0 and ka1
12169 RADA = DT_RNCLUS(NA)
12170 BMX = 2.0D0*(RADA+RADB)
12171 BSTP = BMX/DBLE(ISITEB-1)
12172 BPRO(1) = ZERO
12173 DO 32 I=1,ISITEB-1
12174 B = DBLE(I)*BSTP
12175*
12176* calculate values of profile functions at B
12177 IDX0 = B/BSTP0+1
12178 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12179 IDX1 = MIN(IDX0+1,ISITEB)
12180 FACB = (B-DBLE(IDX0-1)*BSTP0)/BSTP0
12181 BPR0 = BPRO0(IDX0)+FACB*(BPRO0(IDX1)-BPRO0(IDX0))
12182 IDX0 = B/BSTP1+1
12183 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12184 IDX1 = MIN(IDX0+1,ISITEB)
12185 FACB = (B-DBLE(IDX0-1)*BSTP1)/BSTP1
12186 BPR1 = BPRO1(IDX0)+FACB*(BPRO1(IDX1)-BPRO1(IDX0))
12187*
12188 BPRO(I+1) = BPR0+FACNA*(BPR1-BPR0)
12189 32 CONTINUE
12190*
12191* fill common dtglam
12192 NSITEB = ISITEB
12193 RASH(1) = RADA
12194 RBSH(1) = RADB
12195 BMAX(1) = BMX
12196 BSTEP(1) = BSTP
12197 DO 33 I=1,KSITEB
12198 BSITE(0,1,1,I) = BPRO(I)
12199 33 CONTINUE
12200*
12201* fill common dtglxs
12202 XSTOT(1,1,1) = XS(1)
12203 XSELA(1,1,1) = XS(2)
12204 XSQEP(1,1,1) = XS(3)
12205 XSQET(1,1,1) = XS(4)
12206 XSQE2(1,1,1) = XS(5)
12207 XSPRO(1,1,1) = XS(6)
12208 XETOT(1,1,1) = XE(1)
12209 XEELA(1,1,1) = XE(2)
12210 XEQEP(1,1,1) = XE(3)
12211 XEQET(1,1,1) = XE(4)
12212 XEQE2(1,1,1) = XE(5)
12213 XEPRO(1,1,1) = XE(6)
12214
12215 ENDIF
12216
12217 RETURN
12218 END
12219
12220*$ CREATE DT_XKSAMP.FOR
12221*COPY DT_XKSAMP
12222*
12223*===xksamp=============================================================*
12224*
12225 SUBROUTINE DT_XKSAMP(NN,ECM)
12226
12227************************************************************************
12228* Sampling of parton x-values and chain system for one interaction. *
12229* processed by S. Roesler, 9.8.95 *
12230************************************************************************
12231
12232 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
12233 SAVE
12234 PARAMETER ( LINP = 10 ,
12235 & LOUT = 6 ,
12236 & LDAT = 9 )
12237 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
454792a9 12238CPH SAVE
9aaba0d6 12239
12240 PARAMETER (
12241* lower cuts for (valence-sea/sea-valence) chain masses
12242* antiquark-quark (u/d-sea quark) (s-sea quark)
12243 & AMIU = 0.5D0, AMIS = 0.8D0,
12244* quark-diquark (u/d-sea quark) (s-sea quark)
12245 & AMAU = 2.6D0, AMAS = 2.6D0,
12246* maximum lower valence-x threshold
12247 & XVMAX = 0.98D0,
12248* fraction of sea-diquarks sampled out of sea-partons
12249**test
12250C & FRCDIQ = 0.9D0,
12251**
12252*
12253 & SQMA = 0.7D0,
12254*
12255* maximum number of trials to generate x's for the required number
12256* of sea quark pairs for a given hadron
12257 & NSEATY = 12
12258C & NSEATY = 3
12259 & )
12260
12261 LOGICAL ZUOVP,ZUOSP,ZUOVT,ZUOST,INTLO
12262
12263 PARAMETER ( MAXNCL = 260,
12264 & MAXVQU = MAXNCL,
12265 & MAXSQU = 20*MAXVQU,
12266 & MAXINT = MAXVQU+MAXSQU)
12267* event history
12268 PARAMETER (NMXHKK=200000)
12269 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
12270 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
12271 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
12272* particle properties (BAMJET index convention)
12273 CHARACTER*8 ANAME
12274 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
12275 & IICH(210),IIBAR(210),K1(210),K2(210)
12276* interface between Glauber formalism and DPM
12277 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
12278 & INTER1(MAXINT),INTER2(MAXINT)
12279* properties of interacting particles
12280 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
12281* threshold values for x-sampling (DTUNUC 1.x)
12282 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
12283 & SSMIMQ,VVMTHR
12284* x-values of partons (DTUNUC 1.x)
12285 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
12286 & XTVQ(MAXVQU),XTVD(MAXVQU),
12287 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
12288 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
12289* flavors of partons (DTUNUC 1.x)
12290 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
12291 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
12292 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
12293 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
12294 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
12295 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
12296 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
12297* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12298 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
12299 & IXPV,IXPS,IXTV,IXTS,
12300 & INTVV1(MAXVQU),INTVV2(MAXVQU),
12301 & INTSV1(MAXVQU),INTSV2(MAXVQU),
12302 & INTVS1(MAXVQU),INTVS2(MAXVQU),
12303 & INTSS1(MAXSQU),INTSS2(MAXSQU),
12304 & INTDV1(MAXVQU),INTDV2(MAXVQU),
12305 & INTVD1(MAXVQU),INTVD2(MAXVQU),
12306 & INTDS1(MAXSQU),INTDS2(MAXSQU),
12307 & INTSD1(MAXSQU),INTSD2(MAXSQU)
12308* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12309 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
12310 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
12311* auxiliary common for chain system storage (DTUNUC 1.x)
12312 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
12313* flags for input different options
12314 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
12315 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
12316 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
12317* various options for treatment of partons (DTUNUC 1.x)
12318* (chain recombination, Cronin,..)
12319 LOGICAL LCO2CR,LINTPT
12320 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
12321 & LCO2CR,LINTPT
12322
12323 DIMENSION ZUOVP(MAXVQU),ZUOSP(MAXSQU),ZUOVT(MAXVQU),ZUOST(MAXSQU),
12324 & INTLO(MAXINT)
12325
12326* (1) initializations
12327*-----------------------------------------------------------------------
12328
12329**test
12330 IF (ECM.LT.4.5D0) THEN
12331C FRCDIQ = 0.6D0
12332 FRCDIQ = 0.4D0
12333 ELSEIF ((ECM.GE.4.5D0).AND.(ECM.LT.7.5)) THEN
12334C FRCDIQ = 0.6D0+(ECM-4.5D0)/3.0D0*0.3D0
12335 FRCDIQ = 0.4D0+(ECM-4.5D0)/3.0D0*0.3D0
12336 ELSE
12337C FRCDIQ = 0.9D0
12338 FRCDIQ = 0.7D0
12339 ENDIF
12340**
12341 DO 30 I=1,MAXSQU
12342 ZUOSP(I) = .FALSE.
12343 ZUOST(I) = .FALSE.
12344 IF (I.LE.MAXVQU) THEN
12345 ZUOVP(I) = .FALSE.
12346 ZUOVT(I) = .FALSE.
12347 ENDIF
12348 30 CONTINUE
12349
12350* lower thresholds for x-selection
12351* sea-quarks (default: CSEA=0.2)
12352 IF (ECM.LT.10.0D0) THEN
12353**!!test
12354 XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM
12355C XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM**2.0D0
12356 NSEA = NSEATY
12357C XSTHR = ONE/ECM**2
12358 ELSE
12359**sr 30.3.98
12360C XSTHR = CSEA/ECM
12361 XSTHR = CSEA/ECM**2
12362C XSTHR = ONE/ECM**2
12363**
12364 IF ((IP.GE.150).AND.(IT.GE.150))
12365 & XSTHR = 2.5D0/(ECM*SQRT(ECM))
12366 NSEA = NSEATY
12367 ENDIF
12368* (default: SSMIMA=0.14) used for sea-diquarks (?)
12369 XSSTHR = SSMIMA/ECM
12370 BSQMA = SQMA/ECM
12371* valence-quarks (default: CVQ=1.0)
12372 XVTHR = CVQ/ECM
12373* valence-diquarks (default: CDQ=2.0)
12374 XDTHR = CDQ/ECM
12375
12376* maximum-x for sea-quarks
12377 XVCUT = XVTHR+XDTHR
12378 IF (XVCUT.GT.XVMAX) THEN
12379 XVCUT = XVMAX
12380 XVTHR = XVCUT/3.0D0
12381 XDTHR = XVCUT-XVTHR
12382 ENDIF
12383 XXSEAM = ONE-XVCUT
12384**sr 18.4. test: DPMJET
12385C XXSEAM=1.0 - XVTHR*(1.D0+0.3D0*DT_RNDM(V1))
12386C & - XDTHR*(1.D0+0.3D0*DT_RNDM(V2))
12387C & -0.01*(1.D0+1.5D0*DT_RNDM(V3))
12388**
12389* maximum number of sea-pairs allowed kinematically
12390C NSMAX = INT(OHALF*XXSEAM/XSTHR)
12391 RNSMAX = OHALF*XXSEAM/XSTHR
12392 IF (RNSMAX.GT.10000.0D0) THEN
12393 NSMAX = 10000
12394 ELSE
12395 NSMAX = INT(OHALF*XXSEAM/XSTHR)
12396 ENDIF
12397* check kinematical limit for valence-x thresholds
12398* (should be obsolete now)
12399 IF (XVCUT.GT.XVMAX) THEN
12400 WRITE(LOUT,1000) XVCUT,ECM
12401 1000 FORMAT(' XKSAMP: kin. limit for valence-x',
12402 & ' thresholds not allowed (',2E9.3,')')
12403C XVTHR = XVMAX-XDTHR
12404C IF (XVTHR.LT.ZERO) STOP
12405 STOP
12406 ENDIF
12407
12408* set eta for valence-x sampling (BETREJ)
12409* (UNON per default, UNOM used for projectile mesons only)
12410 IF ((IJPROJ.NE.0).AND.(IBPROJ.EQ.0)) THEN
12411 UNOPRV = UNOM
12412 ELSE
12413 UNOPRV = UNON
12414 ENDIF
12415
12416* (2) select parton x-values of interacting projectile nucleons
12417*-----------------------------------------------------------------------
12418
12419 IXPV = 0
12420 IXPS = 0
12421
12422 DO 100 IPP=1,IP
12423* get interacting projectile nucleon as sampled by Glauber
12424 IF (JSSH(IPP).NE.0) THEN
12425 IXSTMP = IXPS
12426 IXVTMP = IXPV
12427 99 CONTINUE
12428 IXPS = IXSTMP
12429 IXPV = IXVTMP
12430* JIPP is the actual number of sea-pairs sampled for this nucleon
12431 JIPP = MIN(JSSH(IPP)-1,NSMAX)
12432 41 CONTINUE
12433 XXSEA = ZERO
12434 IF (JIPP.GT.0) THEN
12435 XSMAX = XXSEAM-2.0D0*DBLE(JIPP)*XSTHR
12436*???
12437 IF (XSTHR.GE.XSMAX) THEN
12438 JIPP = JIPP-1
12439 GOTO 41
12440 ENDIF
12441
12442*>>>get x-values of sea-quark pairs
12443 NSCOUN = 0
12444 PLW = 0.5D0
12445 40 CONTINUE
12446* accumulator for sea x-values
12447 XXSEA = ZERO
12448 NSCOUN = NSCOUN+1
12449 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12450 IF (NSCOUN.GT.NSEA) THEN
12451* decrease the number of interactions after NSEA trials
12452 JIPP = JIPP-1
12453 NSCOUN = 0
12454 ENDIF
12455 DO 70 ISQ=1,JIPP
12456* sea-quarks
12457 IF (IPSQ(IXPS+1).LE.2) THEN
12458**sr 8.4.98 (1/sqrt(x))
12459C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12460C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12461 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12462**
12463 ELSE
12464 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12465 XPSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12466 ELSE
12467**sr 8.4.98 (1/sqrt(x))
12468C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12469C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12470 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12471**
12472 ENDIF
12473 ENDIF
12474* sea-antiquarks
12475 IF (IPSAQ(IXPS+1).GE.-2) THEN
12476**sr 8.4.98 (1/sqrt(x))
12477C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12478C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12479 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12480**
12481 ELSE
12482 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12483 XPSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12484 ELSE
12485**sr 8.4.98 (1/sqrt(x))
12486C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12487C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12488 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12489**
12490 ENDIF
12491 ENDIF
12492 XXSEA = XXSEA+XPSQI+XPSAQI
12493* check for maximum allowed sea x-value
12494 IF (XXSEA.GE.XXSEAM) THEN
12495 IXPS = IXPS-ISQ+1
12496 GOTO 40
12497 ENDIF
12498* accept this sea-quark pair
12499 IXPS = IXPS+1
12500 XPSQ(IXPS) = XPSQI
12501 XPSAQ(IXPS) = XPSAQI
12502 IFROSP(IXPS) = IPP
12503 ZUOSP(IXPS) = .TRUE.
12504 70 CONTINUE
12505 ENDIF
12506
12507*>>>get x-values of valence partons
12508* valence quark
12509 IF (XVTHR.GT.0.05D0) THEN
12510 XVHI = ONE-XXSEA-XDTHR
12511 XPVQI = DT_BETREJ(OHALF,UNOPRV,XVTHR,XVHI)
12512 ELSE
12513 90 CONTINUE
12514 XPVQI = DT_DBETAR(OHALF,UNOPRV)
12515 IF ((XPVQI.LT.XVTHR).OR.(ONE-XPVQI-XXSEA.LT.XDTHR))
12516 & GOTO 90
12517 ENDIF
12518* valence diquark
12519 XPVDI = ONE-XPVQI-XXSEA
12520* reject according to x**1.5
12521 XDTMP = XPVDI**1.5D0
12522 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 99
12523* accept these valence partons
12524 IXPV = IXPV+1
12525 XPVQ(IXPV) = XPVQI
12526 XPVD(IXPV) = XPVDI
12527 IFROVP(IXPV) = IPP
12528 ITOVP(IPP) = IXPV
12529 ZUOVP(IXPV) = .TRUE.
12530
12531 ENDIF
12532 100 CONTINUE
12533
12534* (3) select parton x-values of interacting target nucleons
12535*-----------------------------------------------------------------------
12536
12537 IXTV = 0
12538 IXTS = 0
12539
12540 DO 170 ITT=1,IT
12541* get interacting target nucleon as sampled by Glauber
12542 IF (JTSH(ITT).NE.0) THEN
12543 IXSTMP = IXTS
12544 IXVTMP = IXTV
12545 169 CONTINUE
12546 IXTS = IXSTMP
12547 IXTV = IXVTMP
12548* JITT is the actual number of sea-pairs sampled for this nucleon
12549 JITT = MIN(JTSH(ITT)-1,NSMAX)
12550 111 CONTINUE
12551 XXSEA = ZERO
12552 IF (JITT.GT.0) THEN
12553 XSMAX = XXSEAM-2.0D0*DBLE(JITT)*XSTHR
12554*???
12555 IF (XSTHR.GE.XSMAX) THEN
12556 JITT = JITT-1
12557 GOTO 111
12558 ENDIF
12559
12560*>>>get x-values of sea-quark pairs
12561 NSCOUN = 0
12562 PLW = 0.5D0
12563 110 CONTINUE
12564* accumulator for sea x-values
12565 XXSEA = ZERO
12566 NSCOUN = NSCOUN+1
12567 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12568 IF (NSCOUN.GT.NSEA)THEN
12569* decrease the number of interactions after NSEA trials
12570 JITT = JITT-1
12571 NSCOUN = 0
12572 ENDIF
12573 DO 140 ISQ=1,JITT
12574* sea-quarks
12575 IF (ITSQ(IXTS+1).LE.2) THEN
12576**sr 8.4.98 (1/sqrt(x))
12577C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12578C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12579 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12580**
12581 ELSE
12582 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12583 XTSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12584 ELSE
12585**sr 8.4.98 (1/sqrt(x))
12586C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12587C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12588 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12589**
12590 ENDIF
12591 ENDIF
12592* sea-antiquarks
12593 IF (ITSAQ(IXTS+1).GE.-2) THEN
12594**sr 8.4.98 (1/sqrt(x))
12595C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12596C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12597 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12598**
12599 ELSE
12600 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12601 XTSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12602 ELSE
12603**sr 8.4.98 (1/sqrt(x))
12604C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12605C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12606 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12607**
12608 ENDIF
12609 ENDIF
12610 XXSEA = XXSEA+XTSQI+XTSAQI
12611* check for maximum allowed sea x-value
12612 IF (XXSEA.GE.XXSEAM) THEN
12613 IXTS = IXTS-ISQ+1
12614 GOTO 110
12615 ENDIF
12616* accept this sea-quark pair
12617 IXTS = IXTS+1
12618 XTSQ(IXTS) = XTSQI
12619 XTSAQ(IXTS) = XTSAQI
12620 IFROST(IXTS) = ITT
12621 ZUOST(IXTS) = .TRUE.
12622 140 CONTINUE
12623 ENDIF
12624
12625*>>>get x-values of valence partons
12626* valence quark
12627 IF (XVTHR.GT.0.05D0) THEN
12628 XVHI = ONE-XXSEA-XDTHR
12629 XTVQI = DT_BETREJ(OHALF,UNON,XVTHR,XVHI)
12630 ELSE
12631 160 CONTINUE
12632 XTVQI = DT_DBETAR(OHALF,UNON)
12633 IF ((XTVQI.LT.XVTHR).OR.(ONE-XTVQI-XXSEA.LT.XDTHR))
12634 & GOTO 160
12635 ENDIF
12636* valence diquark
12637 XTVDI = ONE-XTVQI-XXSEA
12638* reject according to x**1.5
12639 XDTMP = XTVDI**1.5D0
12640 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 169
12641* accept these valence partons
12642 IXTV = IXTV+1
12643 XTVQ(IXTV) = XTVQI
12644 XTVD(IXTV) = XTVDI
12645 IFROVT(IXTV) = ITT
12646 ITOVT(ITT) = IXTV
12647 ZUOVT(IXTV) = .TRUE.
12648
12649 ENDIF
12650 170 CONTINUE
12651
12652* (4) get valence-valence chains
12653*-----------------------------------------------------------------------
12654
12655 NVV = 0
12656 DO 240 I=1,NN
12657 INTLO(I) = .TRUE.
12658 IPVAL = ITOVP(INTER1(I))
12659 ITVAL = ITOVT(INTER2(I))
12660 IF (ZUOVP(IPVAL).AND.ZUOVT(ITVAL)) THEN
12661 INTLO(I) = .FALSE.
12662 ZUOVP(IPVAL) = .FALSE.
12663 ZUOVT(ITVAL) = .FALSE.
12664 NVV = NVV+1
12665 ISKPCH(8,NVV) = 0
12666 INTVV1(NVV) = IPVAL
12667 INTVV2(NVV) = ITVAL
12668 ENDIF
12669 240 CONTINUE
12670
12671* (5) get sea-valence chains
12672*-----------------------------------------------------------------------
12673
12674 NSV = 0
12675 NDV = 0
12676 PLW = 0.5D0
12677 DO 270 I=1,NN
12678 IF (INTLO(I)) THEN
12679 IPVAL = ITOVP(INTER1(I))
12680 ITVAL = ITOVT(INTER2(I))
12681 DO 250 J=1,IXPS
12682 IF (ZUOSP(J).AND.(IFROSP(J).EQ.INTER1(I)).AND.
12683 & ZUOVT(ITVAL)) THEN
12684 ZUOSP(J) = .FALSE.
12685 ZUOVT(ITVAL) = .FALSE.
12686 INTLO(I) = .FALSE.
12687 IF (LSEADI.AND.(DT_RNDM(PLW).GT.FRCDIQ)) THEN
12688* sample sea-diquark pair
12689 CALL DT_SAMSDQ(ECM,ITVAL,J,2,IREJ1)
12690 IF (IREJ1.EQ.0) GOTO 260
12691 ENDIF
12692 NSV = NSV+1
12693 ISKPCH(4,NSV) = 0
12694 INTSV1(NSV) = J
12695 INTSV2(NSV) = ITVAL
12696
12697*>>>correct chain kinematics according to minimum chain masses
12698* the actual chain masses
12699 AMSVQ1 = XPSQ(J) *XTVD(ITVAL)*ECM**2
12700 AMSVQ2 = XPSAQ(J)*XTVQ(ITVAL)*ECM**2
12701* get lower mass cuts
12702 IF (IPSQ(J).EQ.3) THEN
12703* q being s-quark
12704 AMCHK1 = AMAS
12705 AMCHK2 = AMIS
12706 ELSE
12707* q being u/d-quark
12708 AMCHK1 = AMAU
12709 AMCHK2 = AMIU
12710 ENDIF
12711* q-qq chain
12712* chain mass above minimum - resampling of sea-q x-value
12713 IF (AMSVQ1.GT.AMCHK1) THEN
12714 XPSQTH = AMCHK1/(XTVD(ITVAL)*ECM**2)
12715**sr 8.4.98 (1/sqrt(x))
12716C XPSQXX = DT_SAMPEX(XPSQTH,XPSQ(J))
12717C XPSQXX = DT_SAMSQX(XPSQTH,XPSQ(J))
12718 XPSQXX = DT_SAMPLW(XPSQTH,XPSQ(J),PLW)
12719**
12720 XPVD(IPVAL) = XPVD(IPVAL)+XPSQ(J)-XPSQXX
12721 XPSQ(J) = XPSQXX
12722* chain mass below minimum - reset sea-q x-value and correct
12723* diquark-x of the same nucleon
12724 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12725 XPSQW = AMCHK1/(XTVD(ITVAL)*ECM**2)
12726 DXPSQ = XPSQW-XPSQ(J)
12727 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12728 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12729 XPSQ(J) = XPSQW
12730 ENDIF
12731 ENDIF
12732* aq-q chain
12733* chain mass below minimum - reset sea-aq x-value and correct
12734* diquark-x of the same nucleon
12735 IF (AMSVQ2.LT.AMCHK2) THEN
12736 XPSQW = AMCHK2/(XTVQ(ITVAL)*ECM**2)
12737 DXPSQ = XPSQW-XPSAQ(J)
12738 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12739 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12740 XPSAQ(J) = XPSQW
12741 ENDIF
12742 ENDIF
12743*>>>end of chain mass correction
12744
12745 GOTO 260
12746 ENDIF
12747 250 CONTINUE
12748 ENDIF
12749 260 CONTINUE
12750 270 CONTINUE
12751
12752* (6) get valence-sea chains
12753*-----------------------------------------------------------------------
12754
12755 NVS = 0
12756 NVD = 0
12757 DO 300 I=1,NN
12758 IF (INTLO(I)) THEN
12759 IPVAL = ITOVP(INTER1(I))
12760 ITVAL = ITOVT(INTER2(I))
12761 DO 280 J=1,IXTS
12762 IF (ZUOVP(IPVAL).AND.ZUOST(J).AND.
12763 & (IFROST(J).EQ.INTER2(I))) THEN
12764 ZUOST(J) = .FALSE.
12765 ZUOVP(IPVAL) = .FALSE.
12766 INTLO(I) = .FALSE.
12767 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
12768* sample sea-diquark pair
12769 CALL DT_SAMSDQ(ECM,IPVAL,J,1,IREJ1)
12770 IF (IREJ1.EQ.0) GOTO 290
12771 ENDIF
12772 NVS = NVS + 1
12773 ISKPCH(6,NVS) = 0
12774 INTVS1(NVS) = IPVAL
12775 INTVS2(NVS) = J
12776
12777*>>>correct chain kinematics according to minimum chain masses
12778* the actual chain masses
12779 AMVSQ1 = XPVQ(IPVAL)*XTSAQ(J)*ECM**2
12780 AMVSQ2 = XPVD(IPVAL)*XTSQ(J) *ECM**2
12781* get lower mass cuts
12782 IF (ITSQ(J).EQ.3) THEN
12783* q being s-quark
12784 AMCHK1 = AMIS
12785 AMCHK2 = AMAS
12786 ELSE
12787* q being u/d-quark
12788 AMCHK1 = AMIU
12789 AMCHK2 = AMAU
12790 ENDIF
12791* q-aq chain
12792* chain mass below minimum - reset sea-aq x-value and correct
12793* diquark-x of the same nucleon
12794 IF (AMVSQ1.LT.AMCHK1) THEN
12795 XTSQW = AMCHK1/(XPVQ(IPVAL)*ECM**2)
12796 DXTSQ = XTSQW-XTSAQ(J)
12797 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12798 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12799 XTSAQ(J) = XTSQW
12800 ENDIF
12801 ENDIF
12802* qq-q chain
12803* chain mass above minimum - resampling of sea-q x-value
12804 IF (AMVSQ2.GT.AMCHK2) THEN
12805 XTSQTH = AMCHK2/(XPVD(IPVAL)*ECM**2)
12806**sr 8.4.98 (1/sqrt(x))
12807C XTSQXX = DT_SAMPEX(XTSQTH,XTSQ(J))
12808C XTSQXX = DT_SAMSQX(XTSQTH,XTSQ(J))
12809 XTSQXX = DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
12810**
12811 XTVD(ITVAL) = XTVD(ITVAL)+XTSQ(J)-XTSQXX
12812 XTSQ(J) = XTSQXX
12813* chain mass below minimum - reset sea-q x-value and correct
12814* diquark-x of the same nucleon
12815 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
12816 XTSQW = AMCHK2/(XPVD(IPVAL)*ECM**2)
12817 DXTSQ = XTSQW-XTSQ(J)
12818 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12819 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12820 XTSQ(J) = XTSQW
12821 ENDIF
12822 ENDIF
12823*>>>end of chain mass correction
12824
12825 GOTO 290
12826 ENDIF
12827 280 CONTINUE
12828 ENDIF
12829 290 CONTINUE
12830 300 CONTINUE
12831
12832* (7) get sea-sea chains
12833*-----------------------------------------------------------------------
12834
12835 NSS = 0
12836 NDS = 0
12837 NSD = 0
12838 DO 420 I=1,NN
12839 IF (INTLO(I)) THEN
12840 IPVAL = ITOVP(INTER1(I))
12841 ITVAL = ITOVT(INTER2(I))
12842* loop over target partons not yet matched
12843 DO 400 J=1,IXTS
12844 IF (ZUOST(J).AND.(IFROST(J).EQ.INTER2(I))) THEN
12845* loop over projectile partons not yet matched
12846 DO 390 JJ=1,IXPS
12847 IF (ZUOSP(JJ).AND.(IFROSP(JJ).EQ.INTER1(I))) THEN
12848 ZUOSP(JJ) = .FALSE.
12849 ZUOST(J) = .FALSE.
12850 INTLO(I) = .FALSE.
12851 NSS = NSS+1
12852 ISKPCH(1,NSS) = 0
12853 INTSS1(NSS) = JJ
12854 INTSS2(NSS) = J
12855
12856*---->chain recombination option
12857 VALFRA = DBLE(NVV/(NVV+IXPS+IXTS))
12858 IF (IRECOM.EQ.1.AND.(DT_RNDM(BSQMA).GT.VALFRA))
12859 & THEN
12860* sea-sea chains may recombine with valence-valence chains
12861* only if they have the same projectile or target nucleon
12862 DO 4201 IVV=1,NVV
12863 IF (ISKPCH(8,IVV).NE.99) THEN
12864 IXVPR = INTVV1(IVV)
12865 IXVTA = INTVV2(IVV)
12866 IF ((INTER1(I).EQ.IFROVP(IXVPR)).OR.
12867 & (INTER2(I).EQ.IFROVT(IXVTA))) THEN
12868* recombination possible, drop old v-v and s-s chains
12869 ISKPCH(1,NSS) = 99
12870 ISKPCH(8,IVV) = 99
12871
12872* (a) assign new s-v chains
12873* ~~~~~~~~~~~~~~~~~~~~~~~~~
12874 IF (LSEADI.AND.
12875 & (DT_RNDM(VALFRA).GT.FRCDIQ))
12876 & THEN
12877* sample sea-diquark pair
12878 CALL DT_SAMSDQ(ECM,IXVTA,JJ,2,
12879 & IREJ1)
12880 IF (IREJ1.EQ.0) GOTO 4202
12881 ENDIF
12882 NSV = NSV+1
12883 ISKPCH(4,NSV) = 0
12884 INTSV1(NSV) = JJ
12885 INTSV2(NSV) = IXVTA
12886*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12887* the actual chain masses
12888 AMSVQ1 = XPSQ(JJ) *XTVD(IXVTA)
12889 & *ECM**2
12890 AMSVQ2 = XPSAQ(JJ)*XTVQ(IXVTA)
12891 & *ECM**2
12892* get lower mass cuts
12893 IF (IPSQ(JJ).EQ.3) THEN
12894* q being s-quark
12895 AMCHK1 = AMAS
12896 AMCHK2 = AMIS
12897 ELSE
12898* q being u/d-quark
12899 AMCHK1 = AMAU
12900 AMCHK2 = AMIU
12901 ENDIF
12902* q-qq chain
12903* chain mass above minimum - resampling of sea-q x-value
12904 IF (AMSVQ1.GT.AMCHK1) THEN
12905 XPSQTH =
12906 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12907**sr 8.4.98 (1/sqrt(x))
12908 XPSQXX =
12909 & DT_SAMPLW(XPSQTH,XPSQ(JJ),PLW)
12910C & DT_SAMSQX(XPSQTH,XPSQ(JJ))
12911C & DT_SAMPEX(XPSQTH,XPSQ(JJ))
12912**
12913 XPVD(IPVAL) =
12914 & XPVD(IPVAL)+XPSQ(JJ)-XPSQXX
12915 XPSQ(JJ) = XPSQXX
12916* chain mass below minimum - reset sea-q x-value and correct
12917* diquark-x of the same nucleon
12918 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12919 XPSQW =
12920 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12921 DXPSQ = XPSQW-XPSQ(JJ)
12922 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12923 & THEN
12924 XPVD(IPVAL) =
12925 & XPVD(IPVAL)-DXPSQ
12926 XPSQ(JJ) = XPSQW
12927 ENDIF
12928 ENDIF
12929* aq-q chain
12930* chain mass below minimum - reset sea-aq x-value and correct
12931* diquark-x of the same nucleon
12932 IF (AMSVQ2.LT.AMCHK2) THEN
12933 XPSQW =
12934 & AMCHK2/(XTVQ(IXVTA)*ECM**2)
12935 DXPSQ = XPSQW-XPSAQ(JJ)
12936 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12937 & THEN
12938 XPVD(IPVAL) =
12939 & XPVD(IPVAL)-DXPSQ
12940 XPSAQ(JJ) = XPSQW
12941 ENDIF
12942 ENDIF
12943*>>>>>>>>>>>end of chain mass correction
12944 4202 CONTINUE
12945
12946* (b) assign new v-s chains
12947* ~~~~~~~~~~~~~~~~~~~~~~~~~
12948 IF (LSEADI.AND.(
12949 & DT_RNDM(AMSVQ2).GT.FRCDIQ))
12950 & THEN
12951* sample sea-diquark pair
12952 CALL DT_SAMSDQ(ECM,IXVPR,J,1,
12953 & IREJ1)
12954 IF (IREJ1.EQ.0) GOTO 4203
12955 ENDIF
12956 NVS = NVS+1
12957 ISKPCH(6,NVS) = 0
12958 INTVS1(NVS) = IXVPR
12959 INTVS2(NVS) = J
12960*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12961* the actual chain masses
12962 AMVSQ1 = XPVQ(IXVPR)*XTSAQ(J)*ECM**2
12963 AMVSQ2 = XPVD(IXVPR)*XTSQ(J) *ECM**2
12964* get lower mass cuts
12965 IF (ITSQ(J).EQ.3) THEN
12966* q being s-quark
12967 AMCHK1 = AMIS
12968 AMCHK2 = AMAS
12969 ELSE
12970* q being u/d-quark
12971 AMCHK1 = AMIU
12972 AMCHK2 = AMAU
12973 ENDIF
12974* q-aq chain
12975* chain mass below minimum - reset sea-aq x-value and correct
12976* diquark-x of the same nucleon
12977 IF (AMVSQ1.LT.AMCHK1) THEN
12978 XTSQW =
12979 & AMCHK1/(XPVQ(IXVPR)*ECM**2)
12980 DXTSQ = XTSQW-XTSAQ(J)
12981 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
12982 & THEN
12983 XTVD(ITVAL) =
12984 & XTVD(ITVAL)-DXTSQ
12985 XTSAQ(J) = XTSQW
12986 ENDIF
12987 ENDIF
12988 IF (AMVSQ2.GT.AMCHK2) THEN
12989 XTSQTH =
12990 & AMCHK2/(XPVD(IXVPR)*ECM**2)
12991**sr 8.4.98 (1/sqrt(x))
12992 XTSQXX =
12993 & DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
12994C & DT_SAMSQX(XTSQTH,XTSQ(J))
12995C & DT_SAMPEX(XTSQTH,XTSQ(J))
12996**
12997 XTVD(ITVAL) =
12998 & XTVD(ITVAL)+XTSQ(J)-XTSQXX
12999 XTSQ(J) = XTSQXX
13000 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
13001 XTSQW =
13002 & AMCHK2/(XPVD(IXVPR)*ECM**2)
13003 DXTSQ = XTSQW-XTSQ(J)
13004 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
13005 & THEN
13006 XTVD(ITVAL) =
13007 & XTVD(ITVAL)-DXTSQ
13008 XTSQ(J) = XTSQW
13009 ENDIF
13010 ENDIF
13011*>>>>>>>>>end of chain mass correction
13012 4203 CONTINUE
13013* jump out of s-s chain loop
13014 GOTO 420
13015 ENDIF
13016 ENDIF
13017 4201 CONTINUE
13018 ENDIF
13019*---->end of chain recombination option
13020
13021* sample sea-diquark pair (projectile)
13022 IF (LSEADI.AND.(DT_RNDM(BSQMA).GT.FRCDIQ)) THEN
13023 CALL DT_SAMSDQ(ECM,J,JJ,4,IREJ1)
13024 IF (IREJ1.EQ.0) THEN
13025 ISKPCH(1,NSS) = 99
13026 GOTO 410
13027 ENDIF
13028 ENDIF
13029* sample sea-diquark pair (target)
13030 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
13031 CALL DT_SAMSDQ(ECM,JJ,J,3,IREJ1)
13032 IF (IREJ1.EQ.0) THEN
13033 ISKPCH(1,NSS) = 99
13034 GOTO 410
13035 ENDIF
13036 ENDIF
13037*>>>>>correct chain kinematics according to minimum chain masses
13038* the actual chain masses
13039 SSMA1Q = XPSQ(JJ) *XTSAQ(J)*ECM**2
13040 SSMA2Q = XPSAQ(JJ)*XTSQ(J) *ECM**2
13041* check for lower mass cuts
13042 IF ((SSMA1Q.LT.SSMIMQ).OR.
13043 & (SSMA2Q.LT.SSMIMQ)) THEN
13044 IPVAL = ITOVP(INTER1(I))
13045 ITVAL = ITOVT(INTER2(I))
13046 IF ((XPVD(IPVAL).GT.XDTHR+3.5D0*XSSTHR).AND.
13047 & (XTVD(ITVAL).GT.XDTHR+3.5D0*XSSTHR))THEN
13048* maximum allowed x values for sea quarks
13049 XSPMAX = ONE-XPVQ(IPVAL)-XDTHR-
13050 & 1.2D0*XSSTHR
13051 XSTMAX = ONE-XTVQ(ITVAL)-XDTHR-
13052 & 1.2D0*XSSTHR
13053* resampling of x values not possible - skip sea-sea chains
13054 IF ((XSPMAX.LE.XSSTHR+0.05D0).OR.
13055 & (XSTMAX.LE.XSSTHR+0.05D0)) GOTO 380
13056* resampling of x for projectile sea quark pair
13057 ICOUS = 0
13058 310 CONTINUE
13059 ICOUS = ICOUS+1
13060 IF (XSSTHR.GT.0.05D0) THEN
13061 XPSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13062 & XSPMAX)
13063 XPSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13064 & XSPMAX)
13065 ELSE
13066 320 CONTINUE
13067 XPSQI = DT_DBETAR(XSEACU,UNOSEA)
13068 IF ((XPSQI.LT.XSSTHR).OR.
13069 & (XPSQI.GT.XSPMAX)) GOTO 320
13070 330 CONTINUE
13071 XPSAQI = DT_DBETAR(XSEACU,UNOSEA)
13072 IF ((XPSAQI.LT.XSSTHR).OR.
13073 & (XPSAQI.GT.XSPMAX)) GOTO 330
13074 ENDIF
13075* final test of remaining x for projectile diquark
13076 XPVDCO = XPVD(IPVAL)-XPSQI-XPSAQI
13077 & +XPSQ(JJ)+XPSAQ(JJ)
13078 IF (XPVDCO.LE.XDTHR) THEN
13079*!!!
13080C IF (ICOUS.LT.5) GOTO 310
13081 IF (ICOUS.LT.0.5D0) GOTO 310
13082 GOTO 380
13083 ENDIF
13084* resampling of x for target sea quark pair
13085 ICOUS = 0
13086 350 CONTINUE
13087 ICOUS = ICOUS+1
13088 IF (XSSTHR.GT.0.05D0) THEN
13089 XTSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13090 & XSTMAX)
13091 XTSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13092 & XSTMAX)
13093 ELSE
13094 360 CONTINUE
13095 XTSQI = DT_DBETAR(XSEACU,UNOSEA)
13096 IF ((XTSQI.LT.XSSTHR).OR.
13097 & (XTSQI.GT.XSTMAX)) GOTO 360
13098 370 CONTINUE
13099 XTSAQI = DT_DBETAR(XSEACU,UNOSEA)
13100 IF ((XTSAQI.LT.XSSTHR).OR.
13101 & (XTSAQI.GT.XSTMAX)) GOTO 370
13102 ENDIF
13103* final test of remaining x for target diquark
13104 XTVDCO = XTVD(ITVAL)-XTSQI-XTSAQI
13105 & +XTSQ(J)+XTSAQ(J)
13106 IF (XTVDCO.LT.XDTHR) THEN
13107 IF (ICOUS.LT.5) GOTO 350
13108 GOTO 380
13109 ENDIF
13110 XPVD(IPVAL) = XPVDCO
13111 XTVD(ITVAL) = XTVDCO
13112 XPSQ(JJ) = XPSQI
13113 XPSAQ(JJ) = XPSAQI
13114 XTSQ(J) = XTSQI
13115 XTSAQ(J) = XTSAQI
13116*>>>>>end of chain mass correction
13117 GOTO 410
13118 ENDIF
13119* come here to discard s-s interaction
13120* resampling of x values not allowed or unsuccessful
13121 380 CONTINUE
13122 INTLO(I) = .FALSE.
13123 ZUOST(J) = .TRUE.
13124 ZUOSP(JJ) = .TRUE.
13125 NSS = NSS-1
13126 ENDIF
13127* consider next s-s interaction
13128 GOTO 410
13129 ENDIF
13130 390 CONTINUE
13131 ENDIF
13132 400 CONTINUE
13133 ENDIF
13134 410 CONTINUE
13135 420 CONTINUE
13136
13137* correct x-values of valence quarks for non-matching sea quarks
13138 DO 430 I=1,IXPS
13139 IF (ZUOSP(I)) THEN
13140 IPVAL = ITOVP(IFROSP(I))
13141 XPVQ(IPVAL) = XPVQ(IPVAL)+XPSQ(I)+XPSAQ(I)
13142 XPSQ(I) = ZERO
13143 XPSAQ(I) = ZERO
13144 ZUOSP(I) = .FALSE.
13145 ENDIF
13146 430 CONTINUE
13147 DO 440 I=1,IXTS
13148 IF (ZUOST(I)) THEN
13149 ITVAL = ITOVT(IFROST(I))
13150 XTVQ(ITVAL) = XTVQ(ITVAL)+XTSQ(I)+XTSAQ(I)
13151 XTSQ(I) = ZERO
13152 XTSAQ(I) = ZERO
13153 ZUOST(I) = .FALSE.
13154 ENDIF
13155 440 CONTINUE
13156 DO 450 I=1,IXPV
13157 IF (ZUOVP(I)) ISTHKK(IFROVP(I)) = 13
13158 450 CONTINUE
13159 DO 460 I=1,IXTV
13160 IF (ZUOVT(I)) ISTHKK(IFROVT(I)+IP) = 14
13161 460 CONTINUE
13162
13163 RETURN
13164 END
13165
13166*$ CREATE DT_SAMSDQ.FOR
13167*COPY DT_SAMSDQ
13168*
13169*===samsdq=============================================================*
13170*
13171 SUBROUTINE DT_SAMSDQ(ECM,IDX1,IDX2,MODE,IREJ)
13172
13173************************************************************************
13174* SAMpling of Sea-DiQuarks *
13175* ECM cm-energy of the nucleon-nucleon system *
13176* IDX1,2 indices of x-values of the participating *
13177* partons (IDX2 is always the sea-q-pair to be *
13178* changed to sea-qq-pair) *
13179* MODE = 1 valence-q - sea-diq *
13180* = 2 sea-diq - valence-q *
13181* = 3 sea-q - sea-diq *
13182* = 4 sea-diq - sea-q *
13183* Based on DIQVS, DIQSV, DIQSSD, DIQDSS. *
13184* This version dated 17.10.95 is written by S. Roesler *
13185************************************************************************
13186
13187 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13188 SAVE
13189
13190 PARAMETER (ZERO=0.0D0)
13191
13192* threshold values for x-sampling (DTUNUC 1.x)
13193 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
13194 & SSMIMQ,VVMTHR
13195* various options for treatment of partons (DTUNUC 1.x)
13196* (chain recombination, Cronin,..)
13197 LOGICAL LCO2CR,LINTPT
13198 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
13199 & LCO2CR,LINTPT
13200 PARAMETER ( MAXNCL = 260,
13201 & MAXVQU = MAXNCL,
13202 & MAXSQU = 20*MAXVQU,
13203 & MAXINT = MAXVQU+MAXSQU)
13204* x-values of partons (DTUNUC 1.x)
13205 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
13206 & XTVQ(MAXVQU),XTVD(MAXVQU),
13207 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
13208 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
13209* flavors of partons (DTUNUC 1.x)
13210 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
13211 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
13212 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
13213 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
13214 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
13215 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
13216 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
13217* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13218 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
13219 & IXPV,IXPS,IXTV,IXTS,
13220 & INTVV1(MAXVQU),INTVV2(MAXVQU),
13221 & INTSV1(MAXVQU),INTSV2(MAXVQU),
13222 & INTVS1(MAXVQU),INTVS2(MAXVQU),
13223 & INTSS1(MAXSQU),INTSS2(MAXSQU),
13224 & INTDV1(MAXVQU),INTDV2(MAXVQU),
13225 & INTVD1(MAXVQU),INTVD2(MAXVQU),
13226 & INTDS1(MAXSQU),INTDS2(MAXSQU),
13227 & INTSD1(MAXSQU),INTSD2(MAXSQU)
13228* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13229 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
13230 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
13231* auxiliary common for chain system storage (DTUNUC 1.x)
13232 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
13233
13234 IREJ = 0
13235* threshold-x for valence diquarks
13236 XDTHR = CDQ/ECM
13237
13238 GOTO (1,2,3,4) MODE
13239
13240*---------------------------------------------------------------------
13241* proj. valence partons - targ. sea partons
13242* get x-values and flavors for target sea-diquark pair
13243
13244 1 CONTINUE
13245 IDXVP = IDX1
13246 IDXST = IDX2
13247
13248* index of corr. val-diquark-x in target nucleon
13249 IDXVT = ITOVT(IFROST(IDXST))
13250* available x above diquark thresholds for valence- and sea-diquarks
13251 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13252
13253 IF (XXD.GE.ZERO) THEN
13254* x-values for the three diquarks of the target nucleon
13255 RR1 = DT_RNDM(XXD)
13256 RR2 = DT_RNDM(RR1)
13257 RR3 = DT_RNDM(RR2)
13258 SR123 = RR1+RR2+RR3
13259 XXTV = XDTHR+RR1*XXD/SR123
13260 XXTSQ = XDTHR+RR2*XXD/SR123
13261 XXTSAQ = XDTHR+RR3*XXD/SR123
13262 ELSE
13263 XXTV = XTVD(IDXVT)
13264 XXTSQ = XTSQ(IDXST)
13265 XXTSAQ = XTSAQ(IDXST)
13266 ENDIF
13267* flavor of the second quarks in the sea-diquark pair
13268 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13269 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13270* check masses of the new val-q - sea-qq, val-qq - sea-aqaq chains
13271 AM1 = XXTSQ *XPVQ(IDXVP)*ECM**2
13272 AM2 = XXTSAQ*XPVD(IDXVP)*ECM**2
13273 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13274* ss-asas pair
13275 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13276 IREJ = 1
13277 RETURN
13278 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13279* at least one strange quark
13280 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13281 IREJ = 1
13282 RETURN
13283 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13284 IREJ = 1
13285 RETURN
13286 ENDIF
13287* accept the new sea-diquark
13288 XTVD(IDXVT) = XXTV
13289 XTSQ(IDXST) = XXTSQ
13290 XTSAQ(IDXST) = XXTSAQ
13291 NVD = NVD+1
13292 INTVD1(NVD) = IDXVP
13293 INTVD2(NVD) = IDXST
13294 ISKPCH(7,NVD) = 0
13295 RETURN
13296
13297*---------------------------------------------------------------------
13298* proj. sea partons - targ. valence partons
13299* get x-values and flavors for projectile sea-diquark pair
13300
13301 2 CONTINUE
13302 IDXSP = IDX2
13303 IDXVT = IDX1
13304
13305* index of corr. val-diquark-x in projectile nucleon
13306 IDXVP = ITOVP(IFROSP(IDXSP))
13307* available x above diquark thresholds for valence- and sea-diquarks
13308 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13309
13310 IF (XXD.GE.ZERO) THEN
13311* x-values for the three diquarks of the projectile nucleon
13312 RR1 = DT_RNDM(XXD)
13313 RR2 = DT_RNDM(RR1)
13314 RR3 = DT_RNDM(RR2)
13315 SR123 = RR1+RR2+RR3
13316 XXPV = XDTHR+RR1*XXD/SR123
13317 XXPSQ = XDTHR+RR2*XXD/SR123
13318 XXPSAQ = XDTHR+RR3*XXD/SR123
13319 ELSE
13320 XXPV = XPVD(IDXVP)
13321 XXPSQ = XPSQ(IDXSP)
13322 XXPSAQ = XPSAQ(IDXSP)
13323 ENDIF
13324* flavor of the second quarks in the sea-diquark pair
13325 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13326 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13327* check masses of the new sea-qq - val-q, sea-aqaq - val-qq chains
13328 AM1 = XXPSQ *XTVQ(IDXVT)*ECM**2
13329 AM2 = XXPSAQ*XTVD(IDXVT)*ECM**2
13330 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13331* ss-asas pair
13332 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13333 IREJ = 1
13334 RETURN
13335 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13336* at least one strange quark
13337 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13338 IREJ = 1
13339 RETURN
13340 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13341 IREJ = 1
13342 RETURN
13343 ENDIF
13344* accept the new sea-diquark
13345 XPVD(IDXVP) = XXPV
13346 XPSQ(IDXSP) = XXPSQ
13347 XPSAQ(IDXSP) = XXPSAQ
13348 NDV = NDV+1
13349 INTDV1(NDV) = IDXSP
13350 INTDV2(NDV) = IDXVT
13351 ISKPCH(5,NDV) = 0
13352 RETURN
13353
13354*---------------------------------------------------------------------
13355* proj. sea partons - targ. sea partons
13356* get x-values and flavors for target sea-diquark pair
13357
13358 3 CONTINUE
13359 IDXSP = IDX1
13360 IDXST = IDX2
13361
13362* index of corr. val-diquark-x in target nucleon
13363 IDXVT = ITOVT(IFROST(IDXST))
13364* available x above diquark thresholds for valence- and sea-diquarks
13365 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13366
13367 IF (XXD.GE.ZERO) THEN
13368* x-values for the three diquarks of the target nucleon
13369 RR1 = DT_RNDM(XXD)
13370 RR2 = DT_RNDM(RR1)
13371 RR3 = DT_RNDM(RR2)
13372 SR123 = RR1+RR2+RR3
13373 XXTV = XDTHR+RR1*XXD/SR123
13374 XXTSQ = XDTHR+RR2*XXD/SR123
13375 XXTSAQ = XDTHR+RR3*XXD/SR123
13376 ELSE
13377 XXTV = XTVD(IDXVT)
13378 XXTSQ = XTSQ(IDXST)
13379 XXTSAQ = XTSAQ(IDXST)
13380 ENDIF
13381* flavor of the second quarks in the sea-diquark pair
13382 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13383 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13384* check masses of the new sea-q - sea-qq, sea-aq - sea-aqaq chains
13385 AM1 = XXTSQ *XPSQ(IDXSP)*ECM**2
13386 AM2 = XXTSAQ*XPSAQ(IDXSP)*ECM**2
13387 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13388* ss-asas pair
13389 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13390 IREJ = 1
13391 RETURN
13392 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13393* at least one strange quark
13394 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13395 IREJ = 1
13396 RETURN
13397 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13398 IREJ = 1
13399 RETURN
13400 ENDIF
13401* accept the new sea-diquark
13402 XTVD(IDXVT) = XXTV
13403 XTSQ(IDXST) = XXTSQ
13404 XTSAQ(IDXST) = XXTSAQ
13405 NSD = NSD+1
13406 INTSD1(NSD) = IDXSP
13407 INTSD2(NSD) = IDXST
13408 ISKPCH(3,NSD) = 0
13409 RETURN
13410
13411*---------------------------------------------------------------------
13412* proj. sea partons - targ. sea partons
13413* get x-values and flavors for projectile sea-diquark pair
13414
13415 4 CONTINUE
13416 IDXSP = IDX2
13417 IDXST = IDX1
13418
13419* index of corr. val-diquark-x in projectile nucleon
13420 IDXVP = ITOVP(IFROSP(IDXSP))
13421* available x above diquark thresholds for valence- and sea-diquarks
13422 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13423
13424 IF (XXD.GE.ZERO) THEN
13425* x-values for the three diquarks of the projectile nucleon
13426 RR1 = DT_RNDM(XXD)
13427 RR2 = DT_RNDM(RR1)
13428 RR3 = DT_RNDM(RR2)
13429 SR123 = RR1+RR2+RR3
13430 XXPV = XDTHR+RR1*XXD/SR123
13431 XXPSQ = XDTHR+RR2*XXD/SR123
13432 XXPSAQ = XDTHR+RR3*XXD/SR123
13433 ELSE
13434 XXPV = XPVD(IDXVP)
13435 XXPSQ = XPSQ(IDXSP)
13436 XXPSAQ = XPSAQ(IDXSP)
13437 ENDIF
13438* flavor of the second quarks in the sea-diquark pair
13439 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13440 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13441* check masses of the new sea-qq - sea-q, sea-aqaq - sea-qq chains
13442 AM1 = XXPSQ *XTSQ(IDXST)*ECM**2
13443 AM2 = XXPSAQ*XTSAQ(IDXST)*ECM**2
13444 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13445* ss-asas pair
13446 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13447 IREJ = 1
13448 RETURN
13449 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13450* at least one strange quark
13451 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13452 IREJ = 1
13453 RETURN
13454 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13455 IREJ = 1
13456 RETURN
13457 ENDIF
13458* accept the new sea-diquark
13459 XPVD(IDXVP) = XXPV
13460 XPSQ(IDXSP) = XXPSQ
13461 XPSAQ(IDXSP) = XXPSAQ
13462 NDS = NDS+1
13463 INTDS1(NDS) = IDXSP
13464 INTDS2(NDS) = IDXST
13465 ISKPCH(2,NDS) = 0
13466 RETURN
13467 END
13468
13469*$ CREATE DT_DIFEVT.FOR
13470*COPY DT_DIFEVT
13471*
13472*===difevt=============================================================*
13473*
13474 SUBROUTINE DT_DIFEVT(IFP1,IFP2,PP,MOP,
13475 & IFT1,IFT2,PT,MOT,JDIFF,NCSY,IREJ)
13476
13477************************************************************************
13478* Interface to treatment of diffractive interactions. *
13479* (input) IFP1/2 PDG-indizes of projectile partons *
13480* (baryon: IFP2 - adiquark) *
13481* PP(4) projectile 4-momentum *
13482* IFT1/2 PDG-indizes of target partons *
13483* (baryon: IFT1 - adiquark) *
13484* PT(4) target 4-momentum *
13485* (output) JDIFF = 0 no diffraction *
13486* = 1/-1 LMSD/LMDD *
13487* = 2/-2 HMSD/HMDD *
13488* NCSY counter for two-chain systems *
13489* dumped to DTEVT1 *
13490* This version dated 14.02.95 is written by S. Roesler *
13491************************************************************************
13492
13493 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13494 SAVE
13495 PARAMETER ( LINP = 10 ,
13496 & LOUT = 6 ,
13497 & LDAT = 9 )
13498 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5,
13499 & OHALF=0.5D0)
13500
13501* event history
13502 PARAMETER (NMXHKK=200000)
13503 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
13504 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
13505 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
13506* extended event history
13507 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
13508 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
13509 & IHIST(2,NMXHKK)
13510* flags for diffractive interactions (DTUNUC 1.x)
13511 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
13512
13513 DIMENSION PP(4),PT(4)
13514
13515 LOGICAL LFIRST
13516 DATA LFIRST /.TRUE./
13517
13518 IREJ = 0
13519 JDIFF = 0
13520 IFLAGD = JDIFF
13521
13522* cm. energy
13523 XM = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
13524 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
13525* identities of projectile hadron / target nucleon
13526 KPROJ = IDT_ICIHAD(IDHKK(MOP))
13527 KTARG = IDT_ICIHAD(IDHKK(MOT))
13528
13529* single diffractive xsections
13530 CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM)
13531* double diffractive xsections
13532**!! no double diff yet
13533C CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM,DDTOT,DDHM)
13534 DDTOT = 0.0D0
13535 DDHM = 0.0D0
13536**!!
13537* total inelastic xsection
13538C SIGIN = DT_SHNTOT(KPROJ,KTARG,XM,ZERO)-DT_SHNELA(KPROJ,KTARG,XM)
13539 DUMZER = ZERO
13540 CALL DT_XSHN(KPROJ,KTARG,DUMZER,XM,SIGTO,SIGEL)
13541 SIGIN = MAX(SIGTO-SIGEL,ZERO)
13542
13543* fraction of diffractive processes
13544 FRADIF = (SDTOT+DDTOT)/SIGIN
13545
13546 IF (LFIRST) THEN
13547 WRITE(LOUT,1000) XM,SDTOT,SIGIN
13548 1000 FORMAT(1X,'DIFEVT: single diffraction requested at E_cm = ',
13549 & F5.1,' GeV',/,9X,'sigma_sd = ',F4.1,' mb, sigma_in = ',
13550 & F5.1,' mb',/)
13551 LFIRST = .FALSE.
13552 ENDIF
13553
13554 IF ((DT_RNDM(DDHM).LE.FRADIF).OR.
13555 & (ISINGD.GT.1).OR.(IDOUBD.GT.1)) THEN
13556* diffractive interaction requested by x-section or by user
13557 FRASD = SDTOT/(SDTOT+DDTOT)
13558 FRASDH = SDHM/SDTOT
13559**sr needs to be specified!!
13560C FRADDH = DDHM/DDTOT
13561 FRADDH = 1.0D0
13562**
13563 IF ((DT_RNDM(FRASD).LE.FRASD).OR.(ISINGD.GT.1)) THEN
13564* single diffraction
13565 KDIFF = 1
13566 IF (DT_RNDM(DDTOT).LE.FRASDH) THEN
13567 KP = 2
13568 KT = 0
13569 IF (((ISINGD.EQ.4).OR.(DT_RNDM(DDTOT).GE.OHALF)).AND.
13570 & ISINGD.NE.3) THEN
13571 KP = 0
13572 KT = 2
13573 ENDIF
13574 ELSE
13575 KP = 1
13576 KT = 0
13577 IF (((ISINGD.EQ.4).OR.(DT_RNDM(FRADDH).GE.OHALF)).AND.
13578 & ISINGD.NE.3) THEN
13579 KP = 0
13580 KT = 1
13581 ENDIF
13582 ENDIF
13583 ELSE
13584* double diffraction
13585 KDIFF = -1
13586 IF (DT_RNDM(FRADDH).LE.FRADDH) THEN
13587 KP = 2
13588 KT = 2
13589 ELSE
13590 KP = 1
13591 KT = 1
13592 ENDIF
13593 ENDIF
13594 CALL DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13595 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13596 IF (IREJ1.EQ.0) THEN
13597 IFLAGD = 2*KDIFF
13598 IF ((KP.EQ.1).OR.(KT.EQ.1)) IFLAGD = KDIFF
13599 ELSE
13600 GOTO 9999
13601 ENDIF
13602 ENDIF
13603 JDIFF = IFLAGD
13604
13605 RETURN
13606
13607 9999 CONTINUE
13608 IREJ = 1
13609 RETURN
13610 END
13611
13612*$ CREATE DT_DIFFKI.FOR
13613*COPY DT_DIFFKI
13614*
13615*===difkin=============================================================*
13616*
13617 SUBROUTINE DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13618 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ)
13619
13620************************************************************************
13621* Kinematics of diffractive nucleon-nucleon interaction. *
13622* IFP1/2 PDG-indizes of projectile partons *
13623* (baryon: IFP2 - adiquark) *
13624* PP(4) projectile 4-momentum *
13625* IFT1/2 PDG-indizes of target partons *
13626* (baryon: IFT1 - adiquark) *
13627* PT(4) target 4-momentum *
13628* KP = 0 projectile quasi-elastically scattered *
13629* = 1 excited to low-mass diff. state *
13630* = 2 excited to high-mass diff. state *
13631* KT = 0 target quasi-elastically scattered *
13632* = 1 excited to low-mass diff. state *
13633* = 2 excited to high-mass diff. state *
13634* This version dated 12.02.95 is written by S. Roesler *
13635************************************************************************
13636
13637 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13638 SAVE
13639 PARAMETER ( LINP = 10 ,
13640 & LOUT = 6 ,
13641 & LDAT = 9 )
13642 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5)
13643
13644 LOGICAL LSTART
13645
13646* particle properties (BAMJET index convention)
13647 CHARACTER*8 ANAME
13648 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
13649 & IICH(210),IIBAR(210),K1(210),K2(210)
13650* flags for input different options
13651 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
13652 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
13653 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
13654* rejection counter
13655 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
13656 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
13657 & IREXCI(3),IRDIFF(2),IRINC
13658* kinematics of diffractive interactions (DTUNUC 1.x)
13659 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13660 & PPF(4),PTF(4),
13661 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13662 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13663
13664 DIMENSION PITOT(4),BGTOT(4),PP1(4),PT1(4),PPBLOB(4),PTBLOB(4),
13665 & PP(4),PT(4),PPOM1(4),DEV1(4),DEV2(4)
13666
13667 DATA LSTART /.TRUE./
13668
13669 IF (LSTART) THEN
13670 WRITE(LOUT,2000)
13671 2000 FORMAT(/,1X,'DIFEVT: diffractive interactions treated ')
13672 LSTART = .FALSE.
13673 ENDIF
13674
13675 IREJ = 0
13676
13677* initialize common /DTDIKI/
13678 CALL DT_DIFINI
13679* store momenta of initial incoming particles for emc-check
13680 IF (LEMCCK) THEN
13681 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM,IDUM)
13682 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM,IDUM)
13683 ENDIF
13684
13685* masses of initial particles
13686 XMP2 = PP(4)**2-PP(1)**2-PP(2)**2-PP(3)**2
13687 XMT2 = PT(4)**2-PT(1)**2-PT(2)**2-PT(3)**2
13688 IF ((XMP2.LT.ZERO).OR.(XMT2.LT.ZERO)) GOTO 9999
13689 XMP = SQRT(XMP2)
13690 XMT = SQRT(XMT2)
13691* check quark-input (used to adjust coherence cond. for M-selection)
13692 IBP = 0
13693 IF ((ABS(IFP1).GE.1000).OR.(ABS(IFP2).GE.1000)) IBP = 1
13694 IBT = 0
13695 IF ((ABS(IFT1).GE.1000).OR.(ABS(IFT2).GE.1000)) IBT = 1
13696
13697* parameter for Lorentz-transformation into nucleon-nucleon cms
13698 DO 3 K=1,4
13699 PITOT(K) = PP(K)+PT(K)
13700 3 CONTINUE
13701 XMTOT2 = PITOT(4)**2-PITOT(1)**2-PITOT(2)**2-PITOT(3)**2
13702 IF (XMTOT2.LE.ZERO) THEN
13703 WRITE(LOUT,1000) XMTOT2
13704 1000 FORMAT(1X,'DIFEVT: negative cm. energy! ',
13705 & 'XMTOT2 = ',E12.3)
13706 GOTO 9999
13707 ENDIF
13708 XMTOT = SQRT(XMTOT2)
13709 DO 4 K=1,4
13710 BGTOT(K) = PITOT(K)/XMTOT
13711 4 CONTINUE
13712* transformation of nucleons into cms
13713 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PP(1),PP(2),
13714 & PP(3),PP(4),PPTOT,PP1(1),PP1(2),PP1(3),PP1(4))
13715 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PT(1),PT(2),
13716 & PT(3),PT(4),PTTOT,PT1(1),PT1(2),PT1(3),PT1(4))
13717* rotation angles
13718 COD = PP1(3)/PPTOT
13719C SID = SQRT((ONE-COD)*(ONE+COD))
13720 PPT = SQRT(PP1(1)**2+PP1(2)**2)
13721 SID = PPT/PPTOT
13722 COF = ONE
13723 SIF = ZERO
13724 IF(PPTOT*SID.GT.TINY10) THEN
13725 COF = PP1(1)/(SID*PPTOT)
13726 SIF = PP1(2)/(SID*PPTOT)
13727 ANORF = SQRT(COF*COF+SIF*SIF)
13728 COF = COF/ANORF
13729 SIF = SIF/ANORF
13730 ENDIF
13731* check consistency
13732 DO 5 K=1,4
13733 DEV1(K) = ABS(PP1(K)+PT1(K))
13734 5 CONTINUE
13735 DEV1(4) = ABS(DEV1(4)-XMTOT)
13736 IF ((DEV1(1).GT.TINY10).OR.(DEV1(2).GT.TINY10).OR.
13737 & (DEV1(3).GT.TINY10).OR.(DEV1(4).GT.TINY10)) THEN
13738 WRITE(LOUT,1001) DEV1
13739 1001 FORMAT(1X,'DIFEVT: inconsitent Lorentz-transformation! ',
13740 & /,8X,4E12.3)
13741 GOTO 9999
13742 ENDIF
13743
13744* select x-fractions in high-mass diff. interactions
13745 IF ((KP.EQ.2).OR.(KT.EQ.2)) CALL DT_XVALHM(KP,KT)
13746
13747* select diffractive masses
13748* - projectile
13749 IF (KP.EQ.1) THEN
13750 XMPF = DT_XMLMD(XMTOT)
13751 CALL DT_LM2RES(IFP1,IFP2,XMPF,IDPR,IDXPR,IREJ1)
13752 IF (IREJ1.GT.0) GOTO 9999
13753 ELSEIF (KP.EQ.2) THEN
13754 XMPF = DT_XMHMD(XMTOT,IBP,1)
13755 ELSE
13756 XMPF = XMP
13757 ENDIF
13758* - target
13759 IF (KT.EQ.1) THEN
13760 XMTF = DT_XMLMD(XMTOT)
13761 CALL DT_LM2RES(IFT1,IFT2,XMTF,IDTR,IDXTR,IREJ1)
13762 IF (IREJ1.GT.0) GOTO 9999
13763 ELSEIF (KT.EQ.2) THEN
13764 XMTF = DT_XMHMD(XMTOT,IBT,2)
13765 ELSE
13766 XMTF = XMT
13767 ENDIF
13768
13769* kinematical treatment of "two-particle" system (masses - XMPF,XMTF)
13770 XMPF2 = XMPF**2
13771 XMTF2 = XMTF**2
13772 PPBLOB(3) = DT_YLAMB(XMTOT2,XMPF2,XMTF2)/(2.D0*XMTOT)
13773 PPBLOB(4) = SQRT(XMPF2+PPBLOB(3)**2)
13774
13775* select momentum transfer (all t-values used here are <0)
13776* minimum absolute value to produce diffractive masses
13777 TMIN = XMP2+XMPF2-2.0D0*(PP1(4)*PPBLOB(4)-PPTOT*PPBLOB(3))
13778 TT = DT_TDIFF(XMTOT,TMIN,XMPF,KP,XMTF,KT,IREJ1)
13779 IF (IREJ1.GT.0) GOTO 9999
13780
13781* longitudinal momentum of excited/elastically scattered projectile
13782 PPBLOB(3) = (TT-XMP2-XMPF2+2.0D0*PP1(4)*PPBLOB(4))/(2.0D0*PPTOT)
13783* total transverse momentum due to t-selection
13784 PPBLT2 = PPBLOB(4)**2-PPBLOB(3)**2-XMPF2
13785 IF (PPBLT2.LT.ZERO) THEN
13786 WRITE(LOUT,1002) PPBLT2,KP,PP1,XMPF,KT,PT1,XMTF,TT
13787 1002 FORMAT(1X,'DIFEVT: inconsistent transverse momentum! ',
13788 & E12.3,2(/,1X,I2,5E12.3),/,1X,E12.3)
13789 GOTO 9999
13790 ENDIF
13791 CALL DT_DSFECF(SINPHI,COSPHI)
13792 PPBLT = SQRT(PPBLT2)
13793 PPBLOB(1) = COSPHI*PPBLT
13794 PPBLOB(2) = SINPHI*PPBLT
13795
13796* rotate excited/elastically scattered projectile into n-n cms.
13797 CALL DT_MYTRAN(1,PPBLOB(1),PPBLOB(2),PPBLOB(3),COD,SID,COF,SIF,
13798 & XX,YY,ZZ)
13799 PPBLOB(1) = XX
13800 PPBLOB(2) = YY
13801 PPBLOB(3) = ZZ
13802
13803* 4-momentum of excited/elastically scattered target and of exchanged
13804* Pomeron
13805 DO 6 K=1,4
13806 IF (K.LT.4) PTBLOB(K) = -PPBLOB(K)
13807 PPOM1(K) = PP1(K)-PPBLOB(K)
13808 6 CONTINUE
13809 PTBLOB(4) = XMTOT-PPBLOB(4)
13810
13811* Lorentz-transformation back into system of initial diff. collision
13812 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13813 & PPBLOB(1),PPBLOB(2),PPBLOB(3),PPBLOB(4),
13814 & PPTOTF,PPF(1),PPF(2),PPF(3),PPF(4))
13815 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13816 & PTBLOB(1),PTBLOB(2),PTBLOB(3),PTBLOB(4),
13817 & PTTOTF,PTF(1),PTF(2),PTF(3),PTF(4))
13818 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13819 & PPOM1(1),PPOM1(2),PPOM1(3),PPOM1(4),
13820 & PPOMTO,PPOM(1),PPOM(2),PPOM(3),PPOM(4))
13821
13822* store 4-momentum of elastically scattered particle (in single diff.
13823* events)
13824 IF (KP.EQ.0) THEN
13825 DO 7 K=1,4
13826 PSC(K) = PPF(K)
13827 7 CONTINUE
13828 ELSEIF (KT.EQ.0) THEN
13829 DO 8 K=1,4
13830 PSC(K) = PTF(K)
13831 8 CONTINUE
13832 ENDIF
13833
13834* check consistency of kinematical treatment so far
13835 IF (LEMCCK) THEN
13836 CALL DT_EVTEMC(-PPF(1),-PPF(2),-PPF(3),-PPF(4),2,IDUM,IDUM)
13837 CALL DT_EVTEMC(-PTF(1),-PTF(2),-PTF(3),-PTF(4),2,IDUM,IDUM)
13838 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,60,IREJ1)
13839 IF (IREJ1.NE.0) GOTO 9999
13840 ENDIF
13841 DO 9 K=1,4
13842 DEV1(K) = ABS(PP(K)-PPF(K)-PPOM(K))
13843 DEV2(K) = ABS(PT(K)-PTF(K)+PPOM(K))
13844 9 CONTINUE
13845 IF ((DEV1(1).GT.TINY5).OR.(DEV1(2).GT.TINY5).OR.
13846 & (DEV1(3).GT.TINY5).OR.(DEV1(4).GT.TINY5).OR.
13847 & (DEV2(1).GT.TINY5).OR.(DEV2(2).GT.TINY5).OR.
13848 & (DEV2(3).GT.TINY5).OR.(DEV2(4).GT.TINY5)) THEN
13849 WRITE(LOUT,1003) DEV1,DEV2
13850 1003 FORMAT(1X,'DIFEVT: inconsitent kinematical treatment! ',
13851 & 2(/,8X,4E12.3))
13852 GOTO 9999
13853 ENDIF
13854
13855* kinematical treatment for low-mass diffraction
13856 CALL DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ1)
13857 IF (IREJ1.NE.0) GOTO 9999
13858
13859* dump diffractive chains into DTEVT1
13860 CALL DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13861 IF (IREJ1.NE.0) GOTO 9999
13862
13863 RETURN
13864
13865 9999 CONTINUE
13866 IRDIFF(1) = IRDIFF(1)+1
13867 IREJ = 1
13868 RETURN
13869 END
13870
13871*$ CREATE DT_XMHMD.FOR
13872*COPY DT_XMHMD
13873*
13874*===xmhmd==============================================================*
13875*
13876 DOUBLE PRECISION FUNCTION DT_XMHMD(ECM,IB,MODE)
13877
13878************************************************************************
13879* Diffractive mass in high mass single/double diffractive events. *
13880* This version dated 11.02.95 is written by S. Roesler *
13881************************************************************************
13882
13883 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13884 SAVE
13885 PARAMETER ( LINP = 10 ,
13886 & LOUT = 6 ,
13887 & LDAT = 9 )
13888 PARAMETER (OHALF=0.5D0,ONE=1.0D0,ZERO=0.0D0)
13889
13890* kinematics of diffractive interactions (DTUNUC 1.x)
13891 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13892 & PPF(4),PTF(4),
13893 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13894 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13895
13896C DATA XCOLOW /0.05D0/
13897 DATA XCOLOW /0.15D0/
13898
13899 DT_XMHMD = ZERO
13900 XH = XPH(2)
13901 IF (MODE.EQ.2) XH = XTH(2)
13902
13903* minimum Pomeron-x for high-mass diffraction
13904* (adjusted to get a smooth transition between HM and LM component)
13905 R = DT_RNDM(XH)
13906 XDIMIN = (3.0D0+400.0D0*R**2)/(XH*ECM**2)
13907 IF (ECM.LE.300.0D0) THEN
13908 RR = (1.0D0-EXP(-((ECM/140.0D0)**4)))
13909 XDIMIN = (3.0D0+400.0D0*(R**2)*RR)/(XH*ECM**2)
13910 ENDIF
13911* maximum Pomeron-x for high-mass diffraction
13912* (coherence condition, adjusted to fit to experimental data)
13913 IF (IB.NE.0) THEN
13914* baryon-diffraction
13915 XDIMAX = XCOLOW*(1.0D0+EXP(-((ECM/420.0D0)**2)))
13916 ELSE
13917* meson-diffraction
13918 XDIMAX = XCOLOW*(1.0D0+4.0D0*EXP(-((ECM/420.0D0)**2)))
13919 ENDIF
13920* check boundaries
13921 IF (XDIMIN.GE.XDIMAX) THEN
13922 XDIMIN = OHALF*XDIMAX
13923 ENDIF
13924
13925 KLOOP = 0
13926 1 CONTINUE
13927 KLOOP = KLOOP+1
13928 IF (KLOOP.GT.20) RETURN
13929* sample Pomeron-x from 1/x-distribution (critical Pomeron)
13930 XDIFF = DT_SAMPEX(XDIMIN,XDIMAX)
13931* corr. diffr. mass
13932 DT_XMHMD = ECM*SQRT(XDIFF)
13933 IF (DT_XMHMD.LT.2.5D0) GOTO 1
13934
13935 RETURN
13936 END
13937
13938*$ CREATE DT_XMLMD.FOR
13939*COPY DT_XMLMD
13940*
13941*===xmlmd==============================================================*
13942*
13943 DOUBLE PRECISION FUNCTION DT_XMLMD(ECM)
13944
13945************************************************************************
13946* Diffractive mass in high mass single/double diffractive events. *
13947* This version dated 11.02.95 is written by S. Roesler *
13948************************************************************************
13949
13950 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13951 SAVE
13952 PARAMETER ( LINP = 10 ,
13953 & LOUT = 6 ,
13954 & LDAT = 9 )
13955
13956* minimum Pomeron-x for low-mass diffraction
13957C AMO = 1.5D0
13958 AMO = 2.0D0
13959* maximum Pomeron-x for low-mass diffraction
13960* (adjusted to get a smooth transition between HM and LM component)
13961 R = DT_RNDM(AMO)
13962 SAM = 1.0D0
13963 IF (ECM.LE.300.0D0) SAM = 1.0D0-EXP(-((ECM/200.0D0)**4))
13964 R = DT_RNDM(AMO)*SAM
13965 AMAX= (1.0D0-SAM)*SQRT(0.1D0*ECM**2)+SAM*SQRT(400.0D0)
13966 AMU = R*SQRT(100.0D0)+(1.0D0-R)*AMAX
13967
13968* selection of diffractive mass
13969* (adjusted to get a smooth transition between HM and LM component)
13970 R = DT_RNDM(AMU)
13971 IF (ECM.LE.50.0D0) THEN
13972 DT_XMLMD = AMO*(AMU/AMO)**R
13973 ELSE
13974 A = 0.7D0
13975 IF (ECM.LE.300.0D0) A = 0.7D0*(1.0D0-EXP(-((ECM/100.0D0)**2)))
13976 DT_XMLMD = 1.0D0/((R/(AMU**A)+(1.0D0-R)/(AMO**A))**(1.0D0/A))
13977 ENDIF
13978
13979 RETURN
13980 END
13981
13982*$ CREATE DT_TDIFF.FOR
13983*COPY DT_TDIFF
13984*
13985*===tdiff==============================================================*
13986*
13987 DOUBLE PRECISION FUNCTION DT_TDIFF(ECM,TMIN,XM1I,K1,XM2I,K2,IREJ)
13988
13989************************************************************************
13990* t-selection for single/double diffractive interactions. *
13991* ECM cm. energy *
13992* TMIN minimum momentum transfer to produce diff. masses *
13993* XM1/XM2 diffractively produced masses *
13994* (for single diffraction XM2 is obsolete) *
13995* K1/K2= 0 not excited *
13996* = 1 low-mass excitation *
13997* = 2 high-mass excitation *
13998* This version dated 11.02.95 is written by S. Roesler *
13999************************************************************************
14000
14001 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14002 SAVE
14003 PARAMETER ( LINP = 10 ,
14004 & LOUT = 6 ,
14005 & LDAT = 9 )
14006 PARAMETER (ZERO=0.0D0)
14007
14008 PARAMETER ( BTP0 = 3.7D0,
14009 & ALPHAP = 0.24D0 )
14010
14011 IREJ = 0
14012 NCLOOP = 0
14013 DT_TDIFF = ZERO
14014
14015 IF (K1.GT.0) THEN
14016 XM1 = XM1I
14017 XM2 = XM2I
14018 ELSE
14019 XM1 = XM2I
14020 ENDIF
14021 XDI = (XM1/ECM)**2
14022 IF ((K1.EQ.0).OR.(K2.EQ.0)) THEN
14023* slope for single diffraction
14024 SLOPE = BTP0-2.0D0*ALPHAP*LOG(XDI)
14025 ELSE
14026* slope for double diffraction
14027 SLOPE = -2.0D0*ALPHAP*LOG(XDI*XM2**2)
14028 ENDIF
14029
14030 1 CONTINUE
14031 NCLOOP = NCLOOP+1
14032 IF (MOD(NCLOOP,1000).EQ.0) GOTO 9999
14033 Y = DT_RNDM(XDI)
14034 T = -LOG(1.0D0-Y)/SLOPE
14035 IF (ABS(T).LE.ABS(TMIN)) GOTO 1
14036 DT_TDIFF = -ABS(T)
14037
14038 RETURN
14039
14040 9999 CONTINUE
14041 WRITE(LOUT,1000) ECM,TMIN,XM1I,XM2I,K1,K2
14042 1000 FORMAT(1X,'DT_TDIFF: t-selection rejected!',/,
14043 & 1X,'ECM = ',E12.3,' TMIN = ',E12.2,/,1X,'XM1I = ',
14044 & E12.3,' XM2I = ',E12.3,' K1 = ',I2,' K2 = ',I2)
14045 IREJ = 1
14046 RETURN
14047 END
14048
14049*$ CREATE DT_XVALHM.FOR
14050*COPY DT_XVALHM
14051*
14052*===xvalhm=============================================================*
14053*
14054 SUBROUTINE DT_XVALHM(KP,KT)
14055
14056************************************************************************
14057* Sampling of parton x-values in high-mass diffractive interactions. *
14058* This version dated 12.02.95 is written by S. Roesler *
14059************************************************************************
14060
14061 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14062 SAVE
14063 PARAMETER ( LINP = 10 ,
14064 & LOUT = 6 ,
14065 & LDAT = 9 )
14066 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0,TINY2=1.0D-2)
14067
14068* kinematics of diffractive interactions (DTUNUC 1.x)
14069 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14070 & PPF(4),PTF(4),
14071 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14072 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14073* various options for treatment of partons (DTUNUC 1.x)
14074* (chain recombination, Cronin,..)
14075 LOGICAL LCO2CR,LINTPT
14076 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
14077 & LCO2CR,LINTPT
14078
14079 DATA UNON,XVQTHR /2.0D0,0.8D0/
14080
14081 IF (KP.EQ.2) THEN
14082* x-fractions of projectile valence partons
14083 1 CONTINUE
14084 XPH(1) = DT_DBETAR(OHALF,UNON)
14085 IF (XPH(1).GE.XVQTHR) GOTO 1
14086 XPH(2) = ONE-XPH(1)
14087* x-fractions of Pomeron q-aq-pair
14088 XPOLO = TINY2
14089 XPOHI = ONE-TINY2
14090 XPPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14091 XPPO(2) = ONE-XPPO(1)
14092* flavors of Pomeron q-aq-pair
14093 IFLAV = INT(ONE+DT_RNDM(UNON)*(2.0D0+SEASQ))
14094 IFPPO(1) = IFLAV
14095 IFPPO(2) = -IFLAV
14096 IF (DT_RNDM(UNON).GT.OHALF) THEN
14097 IFPPO(1) = -IFLAV
14098 IFPPO(2) = IFLAV
14099 ENDIF
14100 ENDIF
14101
14102 IF (KT.EQ.2) THEN
14103* x-fractions of projectile target partons
14104 2 CONTINUE
14105 XTH(1) = DT_DBETAR(OHALF,UNON)
14106 IF (XTH(1).GE.XVQTHR) GOTO 2
14107 XTH(2) = ONE-XTH(1)
14108* x-fractions of Pomeron q-aq-pair
14109 XPOLO = TINY2
14110 XPOHI = ONE-TINY2
14111 XTPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14112 XTPO(2) = ONE-XTPO(1)
14113* flavors of Pomeron q-aq-pair
14114 IFLAV = INT(ONE+DT_RNDM(XPOLO)*(2.0D0+SEASQ))
14115 IFTPO(1) = IFLAV
14116 IFTPO(2) = -IFLAV
14117 IF (DT_RNDM(XPOLO).GT.OHALF) THEN
14118 IFTPO(1) = -IFLAV
14119 IFTPO(2) = IFLAV
14120 ENDIF
14121 ENDIF
14122
14123 RETURN
14124 END
14125
14126*$ CREATE DT_LM2RES.FOR
14127*COPY DT_LM2RES
14128*
14129*===lm2res=============================================================*
14130*
14131 SUBROUTINE DT_LM2RES(IF1,IF2,XM,IDR,IDXR,IREJ)
14132
14133************************************************************************
14134* Check low-mass diffractive excitation for resonance mass. *
14135* (input) IF1/2 PDG-indizes of valence partons *
14136* (in/out) XM diffractive mass requested/corrected *
14137* (output) IDR/IDXR id./BAMJET-index of resonance *
14138* This version dated 12.02.95 is written by S. Roesler *
14139************************************************************************
14140
14141 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14142 SAVE
14143 PARAMETER ( LINP = 10 ,
14144 & LOUT = 6 ,
14145 & LDAT = 9 )
14146 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14147
14148* kinematics of diffractive interactions (DTUNUC 1.x)
14149 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14150 & PPF(4),PTF(4),
14151 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14152 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14153
14154 IREJ = 0
14155 IF1B = 0
14156 IF2B = 0
14157 XMI = XM
14158
14159* BAMJET indices of partons
14160 IF1A = IDT_IPDG2B(IF1,1,2)
14161 IF (ABS(IF1).GE.1000) IF1B = IDT_IPDG2B(IF1,2,2)
14162 IF2A = IDT_IPDG2B(IF2,1,2)
14163 IF (ABS(IF2).GE.1000) IF2B = IDT_IPDG2B(IF2,2,2)
14164
14165* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq)
14166 IDCH = 2
14167 IF ((IF1B.EQ.0).AND.(IF2B.EQ.0)) IDCH = 1
14168
14169* check for resonance mass
14170 CALL DT_CH2RES(IF1A,IF1B,IF2A,IF2B,IDR,IDXR,XMI,XMN,IDCH,IREJ1)
14171 IF (IREJ1.NE.0) GOTO 9999
14172
14173 XM = XMN
14174 RETURN
14175
14176 9999 CONTINUE
14177 IREJ = 1
14178 RETURN
14179 END
14180
14181*$ CREATE DT_LMKINE.FOR
14182*COPY DT_LMKINE
14183*
14184*===lmkine=============================================================*
14185*
14186 SUBROUTINE DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ)
14187
14188************************************************************************
14189* Kinematical treatment of low-mass excitations. *
14190* This version dated 12.02.95 is written by S. Roesler *
14191************************************************************************
14192
14193 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14194 SAVE
14195 PARAMETER ( LINP = 10 ,
14196 & LOUT = 6 ,
14197 & LDAT = 9 )
14198 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14199
14200* flags for input different options
14201 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14202 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14203 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14204* kinematics of diffractive interactions (DTUNUC 1.x)
14205 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14206 & PPF(4),PTF(4),
14207 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14208 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14209
14210 DIMENSION P1(4),P2(4)
14211
14212 IREJ = 0
14213
14214 IF (KP.EQ.1) THEN
14215 PABS = SQRT(PPF(1)**2+PPF(2)**2+PPF(3)**2)
14216 POE = PPF(4)/PABS
14217 FAC1 = OHALF*(POE+ONE)
14218 FAC2 = -OHALF*(POE-ONE)
14219 DO 1 K=1,3
14220 PPLM1(K) = FAC1*PPF(K)
14221 PPLM2(K) = FAC2*PPF(K)
14222 1 CONTINUE
14223 PPLM1(4) = FAC1*PABS
14224 PPLM2(4) = -FAC2*PABS
14225 IF (IMSHL.EQ.1) THEN
14226 XM1 = PYMASS(IFP1)
14227 XM2 = PYMASS(IFP2)
14228 CALL DT_MASHEL(PPLM1,PPLM2,XM1,XM2,P1,P2,IREJ1)
14229 IF (IREJ1.NE.0) GOTO 9999
14230 DO 2 K=1,4
14231 PPLM1(K) = P1(K)
14232 PPLM2(K) = P2(K)
14233 2 CONTINUE
14234 ENDIF
14235 ENDIF
14236
14237 IF (KT.EQ.1) THEN
14238 PABS = SQRT(PTF(1)**2+PTF(2)**2+PTF(3)**2)
14239 POE = PTF(4)/PABS
14240 FAC1 = OHALF*(POE+ONE)
14241 FAC2 = -OHALF*(POE-ONE)
14242 DO 3 K=1,3
14243 PTLM2(K) = FAC1*PTF(K)
14244 PTLM1(K) = FAC2*PTF(K)
14245 3 CONTINUE
14246 PTLM2(4) = FAC1*PABS
14247 PTLM1(4) = -FAC2*PABS
14248 IF (IMSHL.EQ.1) THEN
14249 XM1 = PYMASS(IFT1)
14250 XM2 = PYMASS(IFT2)
14251 CALL DT_MASHEL(PTLM1,PTLM2,XM1,XM2,P1,P2,IREJ1)
14252 IF (IREJ1.NE.0) GOTO 9999
14253 DO 4 K=1,4
14254 PTLM1(K) = P1(K)
14255 PTLM2(K) = P2(K)
14256 4 CONTINUE
14257 ENDIF
14258 ENDIF
14259
14260 RETURN
14261
14262 9999 CONTINUE
14263 WRITE(LOUT,'(A)') 'LMKINE: kinematical treatment rejected'
14264 IREJ = 1
14265 RETURN
14266 END
14267
14268*$ CREATE DT_DIFINI.FOR
14269*COPY DT_DIFINI
14270*
14271*===difini=============================================================*
14272*
14273 SUBROUTINE DT_DIFINI
14274
14275************************************************************************
14276* Initialization of common /DTDIKI/ *
14277* This version dated 12.02.95 is written by S. Roesler *
14278************************************************************************
14279
14280 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14281 SAVE
14282 PARAMETER ( LINP = 10 ,
14283 & LOUT = 6 ,
14284 & LDAT = 9 )
14285 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14286
14287* kinematics of diffractive interactions (DTUNUC 1.x)
14288 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14289 & PPF(4),PTF(4),
14290 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14291 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14292
14293 DO 1 K=1,4
14294 PPOM(K) = ZERO
14295 PSC(K) = ZERO
14296 PPF(K) = ZERO
14297 PTF(K) = ZERO
14298 PPLM1(K) = ZERO
14299 PPLM2(K) = ZERO
14300 PTLM1(K) = ZERO
14301 PTLM2(K) = ZERO
14302 1 CONTINUE
14303 DO 2 K=1,2
14304 XPH(K) = ZERO
14305 XPPO(K) = ZERO
14306 XTH(K) = ZERO
14307 XTPO(K) = ZERO
14308 IFPPO(K) = 0
14309 IFTPO(K) = 0
14310 2 CONTINUE
14311 IDPR = 0
14312 IDXPR = 0
14313 IDTR = 0
14314 IDXTR = 0
14315
14316 RETURN
14317 END
14318
14319*$ CREATE DT_DIFPUT.FOR
14320*COPY DT_DIFPUT
14321*
14322*===difput=============================================================*
14323*
14324 SUBROUTINE DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,
14325 & IREJ)
14326
14327************************************************************************
14328* Dump diffractive chains into DTEVT1 *
14329* This version dated 12.02.95 is written by S. Roesler *
14330************************************************************************
14331
14332 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14333 SAVE
14334 PARAMETER ( LINP = 10 ,
14335 & LOUT = 6 ,
14336 & LDAT = 9 )
14337 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14338
14339 LOGICAL LCHK
14340
14341* kinematics of diffractive interactions (DTUNUC 1.x)
14342 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14343 & PPF(4),PTF(4),
14344 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14345 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14346* event history
14347 PARAMETER (NMXHKK=200000)
14348 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14349 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14350 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14351* extended event history
14352 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14353 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14354 & IHIST(2,NMXHKK)
14355* rejection counter
14356 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
14357 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
14358 & IREXCI(3),IRDIFF(2),IRINC
14359
14360 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PCH(4),PP(4),PT(4),
14361 & P1(4),P2(4),P3(4),P4(4)
14362
14363 IREJ = 0
14364
14365 IF (KP.EQ.1) THEN
14366 DO 1 K=1,4
14367 PCH(K) = PPLM1(K)+PPLM2(K)
14368 1 CONTINUE
14369 ID1 = IFP1
14370 ID2 = IFP2
14371 IF (DT_RNDM(PT).GT.OHALF) THEN
14372 ID1 = IFP2
14373 ID2 = IFP1
14374 ENDIF
14375 CALL DT_EVTPUT(21,ID1,MOP,0,PPLM1(1),PPLM1(2),PPLM1(3),
14376 & PPLM1(4),0,0,0)
14377 CALL DT_EVTPUT(21,ID2,MOP,0,PPLM2(1),PPLM2(2),PPLM2(3),
14378 & PPLM2(4),0,0,0)
14379 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14380 & IDPR,IDXPR,8)
14381 ELSEIF (KP.EQ.2) THEN
14382 DO 2 K=1,4
14383 PP1(K) = XPH(1)*PP(K)
14384 PP2(K) = XPH(2)*PP(K)
14385 PT1(K) = -XPPO(1)*PPOM(K)
14386 PT2(K) = -XPPO(2)*PPOM(K)
14387 2 CONTINUE
14388 CALL DT_CHKCSY(IFP1,IFPPO(1),LCHK)
14389 XM1 = ZERO
14390 XM2 = ZERO
14391 IF (LCHK) THEN
14392 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14393 IF (IREJ1.NE.0) GOTO 9999
14394 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14395 IF (IREJ1.NE.0) GOTO 9999
14396 DO 3 K=1,4
14397 PP1(K) = P1(K)
14398 PT1(K) = P2(K)
14399 PP2(K) = P3(K)
14400 PT2(K) = P4(K)
14401 3 CONTINUE
14402 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14403 & 0,0,8)
14404 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14405 & PT1(4),0,0,8)
14406 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14407 & 0,0,8)
14408 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14409 & PT2(4),0,0,8)
14410 ELSE
14411 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14412 IF (IREJ1.NE.0) GOTO 9999
14413 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14414 IF (IREJ1.NE.0) GOTO 9999
14415 DO 4 K=1,4
14416 PP1(K) = P1(K)
14417 PT2(K) = P2(K)
14418 PP2(K) = P3(K)
14419 PT1(K) = P4(K)
14420 4 CONTINUE
14421 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14422 & 0,0,8)
14423 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14424 & PT2(4),0,0,8)
14425 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14426 & 0,0,8)
14427 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14428 & PT1(4),0,0,8)
14429 ENDIF
14430 NCSY = NCSY+1
14431 ELSE
14432 CALL DT_EVTPUT(1,IDHKK(MOP),MOP,0,PSC(1),PSC(2),PSC(3),PSC(4),
14433 & 0,0,0)
14434 ENDIF
14435
14436 IF (KT.EQ.1) THEN
14437 DO 5 K=1,4
14438 PCH(K) = PTLM1(K)+PTLM2(K)
14439 5 CONTINUE
14440 ID1 = IFT1
14441 ID2 = IFT2
14442 IF (DT_RNDM(PT).GT.OHALF) THEN
14443 ID1 = IFT2
14444 ID2 = IFT1
14445 ENDIF
14446 CALL DT_EVTPUT(22,ID1,MOT,0,PTLM1(1),PTLM1(2),PTLM1(3),
14447 & PTLM1(4),0,0,0)
14448 CALL DT_EVTPUT(22,ID2,MOT,0,PTLM2(1),PTLM2(2),PTLM2(3),
14449 & PTLM2(4),0,0,0)
14450 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14451 & IDTR,IDXTR,8)
14452 ELSEIF (KT.EQ.2) THEN
14453 DO 6 K=1,4
14454 PP1(K) = XTPO(1)*PPOM(K)
14455 PP2(K) = XTPO(2)*PPOM(K)
14456 PT1(K) = XTH(2)*PT(K)
14457 PT2(K) = XTH(1)*PT(K)
14458 6 CONTINUE
14459 CALL DT_CHKCSY(IFTPO(1),IFT1,LCHK)
14460 XM1 = ZERO
14461 XM2 = ZERO
14462 IF (LCHK) THEN
14463 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14464 IF (IREJ1.NE.0) GOTO 9999
14465 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14466 IF (IREJ1.NE.0) GOTO 9999
14467 DO 7 K=1,4
14468 PP1(K) = P1(K)
14469 PT1(K) = P2(K)
14470 PP2(K) = P3(K)
14471 PT2(K) = P4(K)
14472 7 CONTINUE
14473 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14474 & PP1(4),0,0,8)
14475 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14476 & 0,0,8)
14477 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14478 & PP2(4),0,0,8)
14479 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14480 & 0,0,8)
14481 ELSE
14482 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14483 IF (IREJ1.NE.0) GOTO 9999
14484 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14485 IF (IREJ1.NE.0) GOTO 9999
14486 DO 8 K=1,4
14487 PP1(K) = P1(K)
14488 PT2(K) = P2(K)
14489 PP2(K) = P3(K)
14490 PT1(K) = P4(K)
14491 8 CONTINUE
14492 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14493 & PP1(4),0,0,8)
14494 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14495 & 0,0,8)
14496 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14497 & PP2(4),0,0,8)
14498 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14499 & 0,0,8)
14500 ENDIF
14501 NCSY = NCSY+1
14502 ELSE
14503 CALL DT_EVTPUT(1,IDHKK(MOT),MOT,0,PSC(1),PSC(2),PSC(3),PSC(4),
14504 & 0,0,0)
14505 ENDIF
14506
14507 RETURN
14508
14509 9999 CONTINUE
14510 IRDIFF(2) = IRDIFF(2)+1
14511 IREJ = 1
14512 RETURN
14513 END
14514
14515*$ CREATE DT_EVTFRG.FOR
14516*COPY DT_EVTFRG
14517*
14518*===evtfrg=============================================================*
14519*
14520 SUBROUTINE DT_EVTFRG(KMODE,NFRG,NPYMEM,IREJ)
14521
14522************************************************************************
14523* Hadronization of chains in DTEVT1. *
14524* *
14525* Input: *
14526* KMODE = 1 hadronization of PHOJET-chains (id=77xxx) *
14527* = 2 hadronization of DTUNUC-chains (id=88xxx) *
14528* NFRG if KMODE = 1 : upper index of PHOJET-scatterings to be *
14529* hadronized with one PYEXEC call *
14530* if KMODE = 2 : max. number of DTUNUC-chains to be hadronized *
14531* with one PYEXEC call *
14532* Output: *
14533* NPYMEM number of entries in JETSET-common after hadronization *
14534* IREJ rejection flag *
14535* *
14536* This version dated 17.09.00 is written by S. Roesler *
14537************************************************************************
14538
14539 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14540 SAVE
14541 PARAMETER ( LINP = 10 ,
14542 & LOUT = 6 ,
14543 & LDAT = 9 )
14544 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1)
14545 PARAMETER (ONE=1.0D0,ZERO=0.0D0)
14546
14547 LOGICAL LACCEP
14548
14549 PARAMETER (MXJOIN=200)
14550
14551* event history
14552 PARAMETER (NMXHKK=200000)
14553 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14554 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14555 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14556* extended event history
14557 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14558 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14559 & IHIST(2,NMXHKK)
14560* flags for input different options
14561 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14562 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14563 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14564* statistics
14565 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
14566 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
14567 & ICEVTG(8,0:30)
14568* flags for diffractive interactions (DTUNUC 1.x)
14569 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
14570* nucleon-nucleon event-generator
14571 CHARACTER*8 CMODEL
14572 LOGICAL LPHOIN
14573 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
14574* phojet
14575C model switches and parameters
14576 CHARACTER*8 MDLNA
14577 INTEGER ISWMDL,IPAMDL
14578 DOUBLE PRECISION PARMDL
14579 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
14580* jetset
14581 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
1ddc441c 14582 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 14583 PARAMETER (MAXLND=4000)
14584 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
14585 INTEGER PYK
14586 DIMENSION IJOIN(MXJOIN),ISJOIN(MXJOIN),IHISMO(8000),IFLG(4000)
1ddc441c 14587 INTEGER PYCOMP
9aaba0d6 14588 MODE = KMODE
14589 ISTSTG = 7
14590 IF (MODE.NE.1) ISTSTG = 8
14591 IREJ = 0
14592
14593 IP = 0
14594 ISH = 0
14595 INIEMC = 1
14596 NEND = NHKK
14597 NACCEP = 0
14598 IFRG = 0
14599 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
14600 DO 10 I=NPOINT(3),NEND
14601* sr 14.02.00: seems to be not necessary anymore, commented
14602C LACCEP = ((NOBAM(I).EQ.0).AND.(MODE.EQ.1)).OR.
14603C & ((NOBAM(I).NE.0).AND.(MODE.EQ.2))
14604 LACCEP = .TRUE.
14605* pick up chains from dtevt1
14606 IDCHK = IDHKK(I)/10000
14607 IF ((IDCHK.EQ.ISTSTG).AND.LACCEP) THEN
14608 IF (IDCHK.EQ.7) THEN
14609 IPJE = IDHKK(I)-IDCHK*10000
14610 IF (IPJE.NE.IFRG) THEN
14611 IFRG = IPJE
14612 IF (IFRG.GT.NFRG) GOTO 16
14613 ENDIF
14614 ELSE
14615 IPJE = 1
14616 IFRG = IFRG+1
14617 IF (IFRG.GT.NFRG) THEN
14618 NFRG = -1
14619 GOTO 16
14620 ENDIF
14621 ENDIF
14622* statistics counter
14623c IF (IDCH(I).LE.8)
14624c & ICCHAI(2,IDCH(I)) = ICCHAI(2,IDCH(I))+1
14625c IF (IDRES(I).NE.0) ICRES(IDCH(I)) = ICRES(IDCH(I))+1
14626* special treatment for small chains already corrected to hadrons
14627 IF (IDRES(I).NE.0) THEN
14628 IF (IDRES(I).EQ.11) THEN
14629 ID = IDXRES(I)
14630 ELSE
14631 ID = IDT_IPDGHA(IDXRES(I))
14632 ENDIF
14633 IF (LEMCCK) THEN
14634 CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
14635 & PHKK(4,I),INIEMC,IDUM,IDUM)
14636 INIEMC = 2
14637 ENDIF
14638 IP = IP+1
14639 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 1: IP.GT.MSTU(4) !'
14640 P(IP,1) = PHKK(1,I)
14641 P(IP,2) = PHKK(2,I)
14642 P(IP,3) = PHKK(3,I)
14643 P(IP,4) = PHKK(4,I)
14644 P(IP,5) = PHKK(5,I)
14645 K(IP,1) = 1
14646 K(IP,2) = ID
14647 K(IP,3) = 0
14648 K(IP,4) = 0
14649 K(IP,5) = 0
14650 IHIST(2,I) = 10000*IPJE+IP
14651 IF (IHIST(1,I).LE.-100) THEN
14652 ISH = ISH+1
14653 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14654 ISJOIN(ISH) = I
14655 ENDIF
14656 N = IP
14657 IHISMO(IP) = I
14658 ELSE
14659 IJ = 0
14660 DO 11 KK=JMOHKK(1,I),JMOHKK(2,I)
14661 IF (LEMCCK) THEN
14662 CALL DT_EVTEMC(PHKK(1,KK),PHKK(2,KK),PHKK(3,KK),
14663 & PHKK(4,KK),INIEMC,IDUM,IDUM)
14664 CALL DT_EVTFLC(IDHKK(KK),1,INIEMC,IDUM,IDUM)
14665 INIEMC = 2
14666 ENDIF
14667 ID = IDHKK(KK)
14668 IF (ID.EQ.0) ID = 21
14669c PTOT = SQRT(PHKK(1,KK)**2+PHKK(2,KK)**2+PHKK(3,KK)**2)
14670c AM0 = SQRT(ABS((PHKK(4,KK)-PTOT)*(PHKK(4,KK)+PTOT)))
14671c AMRQ = PYMASS(ID)
14672c AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
14673c IF ((ABS(AMDIF2).GT.TINY3).AND.(PTOT.GT.ZERO).AND.
14674c & (ABS(IDIFF).EQ.0)) THEN
14675cC WRITE(LOUT,*)'here: ',NEVHKK,AM0,AMRQ
14676c DELTA = -AMDIF2/(2.0D0*(PHKK(4,KK)+PTOT))
14677c PHKK(4,KK) = PHKK(4,KK)+DELTA
14678c PTOT1 = PTOT-DELTA
14679c PHKK(1,KK) = PHKK(1,KK)*PTOT1/PTOT
14680c PHKK(2,KK) = PHKK(2,KK)*PTOT1/PTOT
14681c PHKK(3,KK) = PHKK(3,KK)*PTOT1/PTOT
14682c PHKK(5,KK) = AMRQ
14683c ENDIF
14684 IP = IP+1
14685 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 2: IP.GT.MSTU(4) !'
14686 P(IP,1) = PHKK(1,KK)
14687 P(IP,2) = PHKK(2,KK)
14688 P(IP,3) = PHKK(3,KK)
14689 P(IP,4) = PHKK(4,KK)
14690 P(IP,5) = PHKK(5,KK)
14691 K(IP,1) = 1
14692 K(IP,2) = ID
14693 K(IP,3) = 0
14694 K(IP,4) = 0
14695 K(IP,5) = 0
14696 IHIST(2,KK) = 10000*IPJE+IP
14697 IF (IHIST(1,KK).LE.-100) THEN
14698 ISH = ISH+1
14699 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14700 ISJOIN(ISH) = KK
14701 ENDIF
14702 IJ = IJ+1
14703 IF (IJ.GT.MXJOIN) STOP 'IJ > MXJOIN !'
14704 IJOIN(IJ) = IP
14705 IHISMO(IP) = I
14706 11 CONTINUE
14707 N = IP
14708* join the two-parton system
14709 CALL PYJOIN(IJ,IJOIN)
14710 ENDIF
14711 IDHKK(I) = 99999
14712 ENDIF
14713 10 CONTINUE
14714 16 CONTINUE
14715 N = IP
14716
14717 IF (IP.GT.0) THEN
14718
14719* final state parton shower
14720 DO 136 NPJE=1,IPJE
14721 IF ((MCGENE.EQ.2).AND.(ISH.GE.2)) THEN
14722 IF ((ISWMDL(8).EQ.1).OR.(ISWMDL(8).EQ.3)) THEN
14723 DO 130 K1=1,ISH
14724 IF (ISJOIN(K1).EQ.0) GOTO 130
14725 I = ISJOIN(K1)
14726 IF ((IPAMDL(102).EQ.1).AND.(IHIST(1,I).NE.-100))
14727 & GOTO 130
14728 IH1 = IHIST(2,I)/10000
14729 IF (IH1.NE.NPJE) GOTO 130
14730 IH1 = IHIST(2,I)-IH1*10000
14731 DO 135 K2=K1+1,ISH
14732 IF (ISJOIN(K2).EQ.0) GOTO 135
14733 II = ISJOIN(K2)
14734 IH2 = IHIST(2,II)/10000
14735 IF (IH2.NE.NPJE) GOTO 135
14736 IH2 = IHIST(2,II)-IH2*10000
14737 IF (IHIST(1,I).EQ.IHIST(1,II)) THEN
14738 PT1 = SQRT(PHKK(1,II)**2+PHKK(2,II)**2)
14739 PT2 = SQRT(PHKK(1, I)**2+PHKK(2, I)**2)
14740 RQLUN = MIN(PT1,PT2)
14741 CALL PYSHOW(IH1,IH2,RQLUN)
14742
14743 ISJOIN(K1) = 0
14744 ISJOIN(K2) = 0
14745 GOTO 130
14746 ENDIF
14747 135 CONTINUE
14748 130 CONTINUE
14749 ENDIF
14750 ENDIF
14751 136 CONTINUE
14752
14753 CALL DT_INITJS(MODE)
14754* hadronization
14755
14756 CALL PYEXEC
14757
14758 IF (MSTU(24).NE.0) THEN
14759 WRITE(LOUT,*) ' JETSET-reject at event',
14760 & NEVHKK,MSTU(24),KMODE
14761C CALL DT_EVTOUT(4)
14762
14763C CALL PYLIST(2)
14764
14765 GOTO 9999
14766 ENDIF
14767
14768* number of entries in LUJETS
14769
14770 NLINES = PYK(0,1)
14771
14772 NPYMEM = NLINES
14773
14774 DO 12 I=1,NLINES
14775 IFLG(I) = 0
14776 12 CONTINUE
14777
14778 DO 13 II=1,NLINES
14779
14780 IF ((PYK(II,7).EQ.1).AND.(IFLG(II).NE.1)) THEN
14781
14782* pick up mother resonance if possible and put it together with
14783* their decay-products into the common
14784 IDXMOR = K(II,3)
14785 IF ((IDXMOR.GE.1).AND.(IDXMOR.LE.MAXLND)) THEN
14786 KFMOR = K(IDXMOR,2)
14787 ISMOR = K(IDXMOR,1)
14788 ELSE
14789 KFMOR = 91
14790 ISMOR = 1
14791 ENDIF
14792 IF ((KFMOR.NE.91).AND.(KFMOR.NE.92).AND.
14793 & (KFMOR.NE.94).AND.(ISMOR.EQ.11)) THEN
14794 ID = K(IDXMOR,2)
14795 MO = IHISMO(PYK(IDXMOR,15))
14796 PX = PYP(IDXMOR,1)
14797 PY = PYP(IDXMOR,2)
14798 PZ = PYP(IDXMOR,3)
14799 PE = PYP(IDXMOR,4)
14800 CALL DT_EVTPUT(2,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14801 IFLG(IDXMOR) = 1
14802 MO = NHKK
14803 DO 15 JDAUG=K(IDXMOR,4),K(IDXMOR,5)
14804 IF (PYK(JDAUG,7).EQ.1) THEN
14805 ID = PYK(JDAUG,8)
14806 PX = PYP(JDAUG,1)
14807 PY = PYP(JDAUG,2)
14808 PZ = PYP(JDAUG,3)
14809 PE = PYP(JDAUG,4)
14810 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14811 IF (LEMCCK) THEN
14812 PX = -PYP(JDAUG,1)
14813 PY = -PYP(JDAUG,2)
14814 PZ = -PYP(JDAUG,3)
14815 PE = -PYP(JDAUG,4)
14816 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14817 ENDIF
14818 IFLG(JDAUG) = 1
14819 ENDIF
14820 15 CONTINUE
14821 ELSE
14822* there was no mother resonance
14823 MO = IHISMO(PYK(II,15))
14824 ID = PYK(II,8)
14825 PX = PYP(II,1)
14826 PY = PYP(II,2)
14827 PZ = PYP(II,3)
14828 PE = PYP(II,4)
14829 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14830 IF (LEMCCK) THEN
14831 PX = -PYP(II,1)
14832 PY = -PYP(II,2)
14833 PZ = -PYP(II,3)
14834 PE = -PYP(II,4)
14835 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14836 ENDIF
14837 ENDIF
14838 ENDIF
14839 13 CONTINUE
14840 IF (LEMCCK) THEN
14841 CHKLEV = TINY1
14842 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,6,IREJ1)
14843C IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
14844 ENDIF
14845
14846* global energy-momentum & flavor conservation check
14847**sr 16.5. this check is skipped in case of phojet-treatment
14848 IF (MCGENE.EQ.1)
14849 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,12,IREJ3)
14850
14851* update statistics-counter for diffraction
14852c IF (IFLAGD.NE.0) THEN
14853c ICDIFF(1) = ICDIFF(1)+1
14854c IF (IFLAGD.EQ. 1) ICDIFF(2) = ICDIFF(2)+1
14855c IF (IFLAGD.EQ. 2) ICDIFF(3) = ICDIFF(3)+1
14856c IF (IFLAGD.EQ.-1) ICDIFF(4) = ICDIFF(4)+1
14857c IF (IFLAGD.EQ.-2) ICDIFF(5) = ICDIFF(5)+1
14858c ENDIF
14859
14860 ENDIF
14861
14862 RETURN
14863
14864 9999 CONTINUE
14865 IREJ = 1
14866 RETURN
14867 END
14868
14869*$ CREATE DT_DECAYS.FOR
14870*COPY DT_DECAYS
14871*
14872*===decay==============================================================*
14873*
14874 SUBROUTINE DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
14875
14876************************************************************************
14877* Resonance-decay. *
14878* This subroutine replaces DDECAY/DECHKK. *
14879* PIN(4) 4-momentum of resonance (input) *
14880* IDXIN BAMJET-index of resonance (input) *
14881* POUT(20,4) 4-momenta of decay-products (output) *
14882* IDXOUT(20) BAMJET-indices of decay-products (output) *
14883* NSEC number of secondaries (output) *
14884* Adopted from the original version DECHKK. *
14885* This version dated 09.01.95 is written by S. Roesler *
14886************************************************************************
14887
14888 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14889 SAVE
14890 PARAMETER ( LINP = 10 ,
14891 & LOUT = 6 ,
14892 & LDAT = 9 )
14893 PARAMETER (TINY17=1.0D-17)
14894
14895* HADRIN: decay channel information
14896 PARAMETER (IDMAX9=602)
14897 CHARACTER*8 ZKNAME
14898 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
14899* particle properties (BAMJET index convention)
14900 CHARACTER*8 ANAME
14901 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
14902 & IICH(210),IIBAR(210),K1(210),K2(210)
14903* flags for input different options
14904 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14905 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14906 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14907
14908 DIMENSION PIN(4),PI(20,4),POUT(20,4),IDXOUT(20),
14909 & EF(3),PF(3),PFF(3),IDXSTK(20),IDX(3),
14910 & CODF(3),COFF(3),SIFF(3),DCOS(3),DCOSF(3)
14911
14912* ISTAB = 1 strong and weak decays
14913* = 2 strong decays only
14914* = 3 strong decays, weak decays for charmed particles and tau
14915* leptons only
14916 DATA ISTAB /2/
14917
14918 IREJ = 0
14919 NSEC = 0
14920* put initial resonance to stack
14921 NSTK = 1
14922 IDXSTK(NSTK) = IDXIN
14923 DO 5 I=1,4
14924 PI(NSTK,I) = PIN(I)
14925 5 CONTINUE
14926
14927* store initial configuration for energy-momentum cons. check
14928 IF (LEMCCK) CALL DT_EVTEMC(PI(NSTK,1),PI(NSTK,2),PI(NSTK,3),
14929 & PI(NSTK,4),1,IDUM,IDUM)
14930
14931 100 CONTINUE
14932* get particle from stack
14933 IDXI = IDXSTK(NSTK)
14934* skip stable particles
14935 IF (ISTAB.EQ.1) THEN
14936 IF ((IDXI.EQ.135).OR. (IDXI.EQ.136)) GOTO 10
14937 IF ((IDXI.GE. 1).AND.(IDXI.LE. 7)) GOTO 10
14938 ELSEIF (ISTAB.EQ.2) THEN
14939 IF ((IDXI.GE. 1).AND.(IDXI.LE. 30)) GOTO 10
14940 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14941 IF ((IDXI.GE.115).AND.(IDXI.LE.122)) GOTO 10
14942 IF ((IDXI.GE.131).AND.(IDXI.LE.136)) GOTO 10
14943 IF ( IDXI.EQ.109) GOTO 10
14944 IF ((IDXI.GE.137).AND.(IDXI.LE.160)) GOTO 10
14945 ELSEIF (ISTAB.EQ.3) THEN
14946 IF ((IDXI.GE. 1).AND.(IDXI.LE. 23)) GOTO 10
14947 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14948 IF ((IDXI.GE.109).AND.(IDXI.LE.115)) GOTO 10
14949 IF ((IDXI.GE.133).AND.(IDXI.LE.136)) GOTO 10
14950 ENDIF
14951
14952* calculate direction cosines and Lorentz-parameter of decaying part.
14953 PTOT = SQRT(PI(NSTK,1)**2+PI(NSTK,2)**2+PI(NSTK,3)**2)
14954 PTOT = MAX(PTOT,TINY17)
14955 DO 1 I=1,3
14956 DCOS(I) = PI(NSTK,I)/PTOT
14957 1 CONTINUE
14958 GAM = PI(NSTK,4)/AAM(IDXI)
14959 BGAM = PTOT/AAM(IDXI)
14960
14961* get decay-channel
14962 KCHAN = K1(IDXI)-1
14963 2 CONTINUE
14964 KCHAN = KCHAN+1
14965 IF ((DT_RNDM(GAM)-TINY17).GT.WT(KCHAN)) GOTO 2
14966
14967* identities of secondaries
14968 IDX(1) = NZK(KCHAN,1)
14969 IDX(2) = NZK(KCHAN,2)
14970 IF (IDX(2).LT.1) GOTO 9999
14971 IDX(3) = NZK(KCHAN,3)
14972
14973* handle decay in rest system of decaying particle
14974 IF (IDX(3).EQ.0) THEN
14975* two-particle decay
14976 NDEC = 2
14977 CALL DT_DTWOPD(AAM(IDXI),EF(1),EF(2),PF(1),PF(2),
14978 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14979 & AAM(IDX(1)),AAM(IDX(2)))
14980 ELSE
14981* three-particle decay
14982 NDEC = 3
14983 CALL DT_DTHREP(AAM(IDXI),EF(1),EF(2),EF(3),PF(1),PF(2),PF(3),
14984 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14985 & CODF(3),COFF(3),SIFF(3),
14986 & AAM(IDX(1)),AAM(IDX(2)),AAM(IDX(3)))
14987 ENDIF
14988 NSTK = NSTK-1
14989
14990* transform decay products back
14991 DO 3 I=1,NDEC
14992 NSTK = NSTK+1
14993 CALL DT_DTRAFO(GAM,BGAM,DCOS(1),DCOS(2),DCOS(3),
14994 & CODF(I),COFF(I),SIFF(I),PF(I),EF(I),
14995 & PFF(I),DCOSF(1),DCOSF(2),DCOSF(3),PI(NSTK,4))
14996* add particle to stack
14997 IDXSTK(NSTK) = IDX(I)
14998 DO 4 J=1,3
14999 PI(NSTK,J) = DCOSF(J)*PFF(I)
15000 4 CONTINUE
15001 3 CONTINUE
15002 GOTO 100
15003
15004 10 CONTINUE
15005* stable particle, put to output-arrays
15006 NSEC = NSEC+1
15007 DO 6 I=1,4
15008 POUT(NSEC,I) = PI(NSTK,I)
15009 6 CONTINUE
15010 IDXOUT(NSEC) = IDXSTK(NSTK)
15011* store secondaries for energy-momentum conservation check
15012 IF (LEMCCK)
15013 &CALL DT_EVTEMC(-POUT(NSEC,1),-POUT(NSEC,2),-POUT(NSEC,3),
15014 & -POUT(NSEC,4),2,IDUM,IDUM)
15015 NSTK = NSTK-1
15016 IF (NSTK.GT.0) GOTO 100
15017
15018* check energy-momentum conservation
15019 IF (LEMCCK) THEN
15020 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,5,IREJ1)
15021 IF (IREJ1.NE.0) GOTO 9999
15022 ENDIF
15023
15024 RETURN
15025
15026 9999 CONTINUE
15027 IREJ = 1
15028 RETURN
15029 END
15030
15031*$ CREATE DT_DECAY1.FOR
15032*COPY DT_DECAY1
15033*
15034*===decay1=============================================================*
15035*
15036 SUBROUTINE DT_DECAY1
15037
15038************************************************************************
15039* Decay of resonances stored in DTEVT1. *
15040* This version dated 20.01.95 is written by S. Roesler *
15041************************************************************************
15042
15043 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15044 SAVE
15045 PARAMETER ( LINP = 10 ,
15046 & LOUT = 6 ,
15047 & LDAT = 9 )
15048
15049* event history
15050 PARAMETER (NMXHKK=200000)
15051 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15052 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15053 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15054* extended event history
15055 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15056 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15057 & IHIST(2,NMXHKK)
15058
15059 DIMENSION PIN(4),POUT(20,4),IDXOUT(20)
15060
15061 NEND = NHKK
15062C DO 1 I=NPOINT(5),NEND
15063 DO 1 I=NPOINT(4),NEND
15064 IF (ABS(ISTHKK(I)).EQ.1) THEN
15065 DO 2 K=1,4
15066 PIN(K) = PHKK(K,I)
15067 2 CONTINUE
15068 IDXIN = IDBAM(I)
15069 CALL DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
15070 IF (NSEC.GT.1) THEN
15071 DO 3 N=1,NSEC
15072 IDHAD = IDT_IPDGHA(IDXOUT(N))
15073 CALL DT_EVTPUT(1,IDHAD,I,0,POUT(N,1),POUT(N,2),
15074 & POUT(N,3),POUT(N,4),0,0,0)
15075 3 CONTINUE
15076 ENDIF
15077 ENDIF
15078 1 CONTINUE
15079
15080 RETURN
15081 END
15082
15083*$ CREATE DT_DECPI0.FOR
15084*COPY DT_DECPI0
15085*
15086*===decpi0=============================================================*
15087*
15088 SUBROUTINE DT_DECPI0
15089
15090************************************************************************
15091* Decay of pi0 handled with JETSET. *
15092* This version dated 18.02.96 is written by S. Roesler *
15093************************************************************************
15094
15095 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15096 SAVE
15097 PARAMETER ( LINP = 10 ,
15098 & LOUT = 6 ,
15099 & LDAT = 9 )
15100 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0,ZERO=0.0D0)
15101
15102* event history
15103 PARAMETER (NMXHKK=200000)
15104 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15105 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15106 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15107* extended event history
15108 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15109 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15110 & IHIST(2,NMXHKK)
bd378884 15111 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15112 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15113 PARAMETER (MAXLND=4000)
15114 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
15115* flags for input different options
15116 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15117 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15118 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15119
15120 INTEGER PYCOMP,PYK
15121
15122 DIMENSION IHISMO(NMXHKK),P1(4)
15123
15124 TWOPI = 2.0D0*ATAN2(0.0D0,-1.0D0)
15125
15126 CALL DT_INITJS(2)
15127* allow pi0 decay
15128 KC = PYCOMP(111)
15129 MDCY(KC,1) = 1
15130
15131 NN = 0
15132 INI = 0
15133 DO 1 I=1,NHKK
15134 IF ((ISTHKK(I).EQ.1).AND.(IDHKK(I).EQ.111)) THEN
15135 IF (INI.EQ.0) THEN
15136 INI = 1
15137 ELSE
15138 INI = 2
15139 ENDIF
15140 IF (LEMCCK) CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
15141 & PHKK(4,I),INI,IDUM,IDUM)
15142 PT = SQRT(PHKK(1,I)**2+PHKK(2,I)**2)
15143 PTOT = SQRT(PT**2+PHKK(3,I)**2)
15144 COSTH = PHKK(3,I)/(PTOT+TINY10)
15145 IF (COSTH.GT.ONE) THEN
15146 THETA = ZERO
15147 ELSEIF (COSTH.LT.-ONE) THEN
15148 THETA = TWOPI/2.0D0
15149 ELSE
15150 THETA = ACOS(COSTH)
15151 ENDIF
15152 PHI = ASIN(PHKK(2,I)/(PT +TINY10))
15153 IF (PHKK(1,I).LT.0.0D0)
15154 & PHI = SIGN(TWOPI/2.0D0-ABS(PHI),PHI)
15155 ENER = PHKK(4,I)
15156 NN = NN+1
15157 KTEMP = MSTU(10)
15158 MSTU(10)= 1
15159 P(NN,5) = PHKK(5,I)
15160 CALL PY1ENT(NN,111,ENER,THETA,PHI)
15161 MSTU(10) = KTEMP
15162 IHISMO(NN)= I
15163 ENDIF
15164 1 CONTINUE
15165 IF (NN.GT.0) THEN
15166 CALL PYEXEC
15167 NLINES = PYK(0,1)
15168 DO 2 II=1,NLINES
15169 IF (PYK(II,7).EQ.1) THEN
15170 DO 3 KK=1,4
15171 P1(KK) = PYP(II,KK)
15172 3 CONTINUE
15173 ID = PYK(II,8)
15174 MO = IHISMO(PYK(II,15))
15175 CALL DT_EVTPUT(1,ID,MO,0,P1(1),P1(2),P1(3),P1(4),0,0,0)
15176 IF (LEMCCK)
15177 & CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,
15178 & IDUM,IDUM)
15179*sr: flag with neg. sign (for HELIOS p/A-W jobs)
15180 ISTHKK(MO) = -2
15181 ENDIF
15182 2 CONTINUE
15183 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,7000,IREJ1)
15184 ENDIF
15185 MDCY(KC,1) = 0
15186
15187 RETURN
15188 END
15189
15190*$ CREATE DT_DTWOPD.FOR
15191*COPY DT_DTWOPD
15192*
15193*===dtwopd=============================================================*
15194*
15195 SUBROUTINE DT_DTWOPD(UMO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,COD2,
15196 & COF2,SIF2,AM1,AM2)
15197
15198************************************************************************
15199* Two-particle decay. *
15200* UMO cm-energy of the decaying system (input) *
15201* AM1/AM2 masses of the decay products (input) *
15202* ECM1,ECM2/PCM1,PCM2 cm-energies/momenta of the decay prod. (output) *
15203* COD,COF,SIF direction cosines of the decay prod. (output) *
15204* Revised by S. Roesler, 20.11.95 *
15205************************************************************************
15206
15207 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15208 SAVE
15209 PARAMETER ( LINP = 10 ,
15210 & LOUT = 6 ,
15211 & LDAT = 9 )
15212 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,ZERO=0.0D0)
15213
15214 IF (UMO.LT.(AM1+AM2)) THEN
15215 WRITE(LOUT,1000) UMO,AM1,AM2
15216 1000 FORMAT(1X,'DTWOPD: inconsistent kinematics - UMO,AM1,AM2 ',
15217 & 3E12.3)
15218 STOP
15219 ENDIF
15220
15221 ECM1 = ((UMO-AM2)*(UMO+AM2)+AM1*AM1)/(TWO*UMO)
15222 ECM2 = UMO-ECM1
15223 PCM1 = SQRT((ECM1-AM1)*(ECM1+AM1))
15224 PCM2 = PCM1
15225 CALL DT_DSFECF(SIF1,COF1)
15226 COD1 = TWO*DT_RNDM(PCM2)-ONE
15227 COD2 = -COD1
15228 COF2 = -COF1
15229 SIF2 = -SIF1
15230
15231 RETURN
15232 END
15233
15234*$ CREATE DT_DTHREP.FOR
15235*COPY DT_DTHREP
15236*
15237*===dthrep=============================================================*
15238*
15239 SUBROUTINE DT_DTHREP(UMO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,
15240 & SIF1,COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
15241
15242************************************************************************
15243* Three-particle decay. *
15244* UMO cm-energy of the decaying system (input) *
15245* AM1/2/3 masses of the decay products (input) *
15246* ECM1/2/2,PCM1/2/3 cm-energies/momenta of the decay prod. (output) *
15247* COD,COF,SIF direction cosines of the decay prod. (output) *
15248* *
15249* Threpd89: slight revision by A. Ferrari *
15250* Last change on 11-oct-93 by Alfredo Ferrari, INFN - Milan *
15251* Revised by S. Roesler, 20.11.95 *
15252************************************************************************
15253
15254 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15255 SAVE
15256 PARAMETER ( LINP = 10 ,
15257 & LOUT = 6 ,
15258 & LDAT = 9 )
15259
15260 PARAMETER ( ANGLSQ = 2.5D-31 )
15261 PARAMETER ( AZRZRZ = 1.0D-30 )
15262 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
15263 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
15264 PARAMETER ( ONEONE = 1.D+00 )
15265 PARAMETER ( TWOTWO = 2.D+00 )
15266 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
15267
15268 COMMON /HNGAMR/ REDU,AMO,AMM(15)
15269* flags for input different options
15270 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15271 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15272 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15273
15274 DIMENSION F(5),XX(5)
15275 DATA EPS /AZRZRZ/
15276
15277 UMOO=UMO+UMO
15278C***S1, S2, S3 ARE THE INVARIANT MASSES OF THE PARTICLES 1, 2, 3
15279C***J. VON NEUMANN - RANDOM - SELECTION OF S2
15280C***CALCULATION OF THE MAXIMUM OF THE S2 - DISTRIBUTION
15281 UUMO=UMO
15282 AAM1=AM1
15283 AAM2=AM2
15284 AAM3=AM3
15285 GU=(AM2+AM3)**2
15286 GO=(UMO-AM1)**2
15287* UFAK=1.0000000000001D0
15288* IF (GU.GT.GO) UFAK=0.9999999999999D0
15289 IF (GU.GT.GO) THEN
15290 UFAK=ONEMNS
15291 ELSE
15292 UFAK=ONEPLS
15293 END IF
15294 OFAK=2.D0-UFAK
15295 GU=GU*UFAK
15296 GO=GO*OFAK
15297 DS2=(GO-GU)/99.D0
15298 AM11=AM1*AM1
15299 AM22=AM2*AM2
15300 AM33=AM3*AM3
15301 UMO2=UMO*UMO
15302 RHO2=0.D0
15303 S22=GU
15304 DO 124 I=1,100
15305 S21=S22
15306 S22=GU+(I-1.D0)*DS2
15307 RHO1=RHO2
15308 RHO2=DT_YLAMB(S22,UMO2,AM11)*DT_YLAMB(S22,AM22,AM33)/
15309 * (S22+EPS)
15310 IF(RHO2.LT.RHO1) GO TO 125
15311 124 CONTINUE
15312 125 S2SUP=(S22-S21)*.5D0+S21
15313 SUPRHO=DT_YLAMB(S2SUP,UMO2,AM11)*DT_YLAMB(S2SUP,AM22,AM33)/
15314 * (S2SUP+EPS)
15315 SUPRHO=SUPRHO*1.05D0
15316 XO=S21-DS2
15317 IF (GU.LT.GO.AND.XO.LT.GU) XO=GU
15318 IF (GU.GT.GO.AND.XO.GT.GU) XO=GU
15319 XX(1)=XO
15320 XX(3)=S22
15321 X1=(XO+S22)*0.5D0
15322 XX(2)=X1
15323 F(3)=RHO2
15324 F(1)=DT_YLAMB(XO,UMO2,AM11)*DT_YLAMB(XO,AM22,AM33)/(XO+EPS)
15325 F(2)=DT_YLAMB(X1,UMO2,AM11)*DT_YLAMB(X1,AM22,AM33)/(X1+EPS)
15326 DO 126 I=1,16
15327 X4=(XX(1)+XX(2))*0.5D0
15328 X5=(XX(2)+XX(3))*0.5D0
15329 F(4)=DT_YLAMB(X4,UMO2,AM11)*DT_YLAMB(X4,AM22,AM33)/
15330 * (X4+EPS)
15331 F(5)=DT_YLAMB(X5,UMO2,AM11)*DT_YLAMB(X5,AM22,AM33)/
15332 * (X5+EPS)
15333 XX(4)=X4
15334 XX(5)=X5
15335 DO 128 II=1,5
15336 IA=II
15337 DO 128 III=IA,5
15338 IF (F (II).GE.F (III)) GO TO 128
15339 FH=F(II)
15340 F(II)=F(III)
15341 F(III)=FH
15342 FH=XX(II)
15343 XX(II)=XX(III)
15344 XX(III)=FH
15345128 CONTINUE
15346 SUPRHO=F(1)
15347 S2SUP=XX(1)
15348 DO 129 II=1,3
15349 IA=II
15350 DO 129 III=IA,3
15351 IF (XX(II).GE.XX(III)) GO TO 129
15352 FH=F(II)
15353 F(II)=F(III)
15354 F(III)=FH
15355 FH=XX(II)
15356 XX(II)=XX(III)
15357 XX(III)=FH
15358129 CONTINUE
15359126 CONTINUE
15360 AM23=(AM2+AM3)**2
15361 ITH=0
15362 REDU=2.D0
15363 1 CONTINUE
15364 ITH=ITH+1
15365 IF (ITH.GT.200) REDU=-9.D0
15366 IF (ITH.GT.200) GO TO 400
15367 C=DT_RNDM(REDU)
15368* S2=AM23+C*((UMO-AM1)**2-AM23)
15369 S2=AM23+C*(UMO-AM1-AM2-AM3)*(UMO-AM1+AM2+AM3)
15370 Y=DT_RNDM(S2)
15371 Y=Y*SUPRHO
15372 RHO=DT_YLAMB(S2,UMO2,AM11)*DT_YLAMB(S2,AM22,AM33)/S2
15373 IF(Y.GT.RHO) GO TO 1
15374C***RANDOM SELECTION OF S3 AND CALCULATION OF S1
15375 S1=DT_RNDM(S2)
15376 S1=S1*RHO+AM11+AM22-(S2-UMO2+AM11)*(S2+AM22-AM33)/(2.D0*S2)-
15377 &RHO*.5D0
15378 S3=UMO2+AM11+AM22+AM33-S1-S2
15379 ECM1=(UMO2+AM11-S2)/UMOO
15380 ECM2=(UMO2+AM22-S3)/UMOO
15381 ECM3=(UMO2+AM33-S1)/UMOO
15382 PCM1=SQRT((ECM1+AM1)*(ECM1-AM1))
15383 PCM2=SQRT((ECM2+AM2)*(ECM2-AM2))
15384 PCM3=SQRT((ECM3+AM3)*(ECM3-AM3))
15385 CALL DT_DSFECF(SFE,CFE)
15386C***TH IS THE ANGLE BETWEEN PARTICLES 1 AND 2
15387C***TH1, TH2 ARE THE ANGLES BETWEEN PARTICLES 1, 2 AND THE DIRECTION OF
15388 PCM12 = PCM1 * PCM2
15389 IF ( PCM12 .LT. ANGLSQ ) GO TO 200
15390 COSTH=(ECM1*ECM2+0.5D+00*(AM11+AM22-S1))/PCM12
15391 GO TO 300
15392 200 CONTINUE
15393 UW=DT_RNDM(S1)
15394 COSTH=(UW-0.5D+00)*2.D+00
15395 300 CONTINUE
15396* IF(ABS(COSTH).GT.0.9999999999999999D0)
15397* &COSTH=SIGN(0.9999999999999999D0,COSTH)
15398 IF(ABS(COSTH).GT.ONEONE)
15399 &COSTH=SIGN(ONEONE,COSTH)
15400 IF (REDU.LT.1.D+00) RETURN
15401 COSTH2=(PCM3*PCM3+PCM2*PCM2-PCM1*PCM1)/(2.D+00*PCM2*PCM3)
15402* IF(ABS(COSTH2).GT.0.9999999999999999D0)
15403* &COSTH2=SIGN(0.9999999999999999D0,COSTH2)
15404 IF(ABS(COSTH2).GT.ONEONE)
15405 &COSTH2=SIGN(ONEONE,COSTH2)
15406 SINTH2=SQRT((ONEONE-COSTH2)*(ONEONE+COSTH2))
15407 SINTH =SQRT((ONEONE-COSTH)*(ONEONE+COSTH))
15408 SINTH1=COSTH2*SINTH-COSTH*SINTH2
15409 COSTH1=COSTH*COSTH2+SINTH2*SINTH
15410C***RANDOM SELECTION OF THE SPHERICAL COORDINATES OF THE DIRECTION OF PA
15411C***CFE, SFE ARE COS AND SIN OF THE ROTATION ANGLE OF THE SYSTEM 1, 2 AR
15412C***THE DIRECTION OF PARTICLE 3
15413C***CALCULATION OF THE SPHERICAL COORDINATES OF PARTICLES 1, 2
15414 CX11=-COSTH1
15415 CY11=SINTH1*CFE
15416 CZ11=SINTH1*SFE
15417 CX22=-COSTH2
15418 CY22=-SINTH2*CFE
15419 CZ22=-SINTH2*SFE
15420 CALL DT_DSFECF(SIF3,COF3)
15421 COD3=TWOTWO*DT_RNDM(CX11)-ONEONE
15422 SID3=SQRT((1.D+00-COD3)*(1.D+00+COD3))
15423 2 FORMAT(5F20.15)
15424 COD1=CX11*COD3+CZ11*SID3
15425 CHLP=(ONEONE-COD1)*(ONEONE+COD1)
15426 IF(CHLP.LT.1.D-14)WRITE(LOUT,2)COD1,COF3,SID3,
15427 &CX11,CZ11
15428 SID1=SQRT(CHLP)
15429 COF1=(CX11*SID3*COF3-CY11*SIF3-CZ11*COD3*COF3)/SID1
15430 SIF1=(CX11*SID3*SIF3+CY11*COF3-CZ11*COD3*SIF3)/SID1
15431 COD2=CX22*COD3+CZ22*SID3
15432 SID2=SQRT((ONEONE-COD2)*(ONEONE+COD2))
15433 COF2=(CX22*SID3*COF3-CY22*SIF3-CZ22*COD3*COF3)/SID2
15434 SIF2=(CX22*SID3*SIF3+CY22*COF3-CZ22*COD3*SIF3)/SID2
15435 400 CONTINUE
15436* === Energy conservation check: === *
15437 EOCHCK = UMO - ECM1 - ECM2 - ECM3
15438* SID1 = SQRT ( ( ONEONE - COD1 ) * ( ONEONE + COD1 ) )
15439* SID2 = SQRT ( ( ONEONE - COD2 ) * ( ONEONE + COD2 ) )
15440* SID3 = SQRT ( ( ONEONE - COD3 ) * ( ONEONE + COD3 ) )
15441 PZCHCK = PCM1 * COD1 + PCM2 * COD2 + PCM3 * COD3
15442 PXCHCK = PCM1 * COF1 * SID1 + PCM2 * COF2 * SID2
15443 & + PCM3 * COF3 * SID3
15444 PYCHCK = PCM1 * SIF1 * SID1 + PCM2 * SIF2 * SID2
15445 & + PCM3 * SIF3 * SID3
15446 EOCMPR = 1.D-12 * UMO
15447 IF ( ABS (EOCHCK) + ABS (PXCHCK) + ABS (PYCHCK) + ABS (PZCHCK)
15448 & .GT. EOCMPR ) THEN
15449**sr 5.5.95 output-unit changed
15450 IF (IOULEV(1).GT.0) THEN
15451 WRITE(LOUT,*)
15452 & ' *** Threpd: energy/momentum conservation failure! ***',
15453 & EOCHCK,PXCHCK,PYCHCK,PZCHCK
15454 WRITE(LOUT,*)' *** SID1,SID2,SID3',SID1,SID2,SID3
15455 ENDIF
15456**
15457 END IF
15458 RETURN
15459 END
15460
15461*$ CREATE DT_DBKLAS.FOR
15462*COPY DT_DBKLAS
15463*
15464*===dbklas=============================================================*
15465*
15466 SUBROUTINE DT_DBKLAS(I,J,K,I8,I10)
15467
15468 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15469 SAVE
15470 PARAMETER ( LINP = 10 ,
15471 & LOUT = 6 ,
15472 & LDAT = 9 )
15473
15474* quark-content to particle index conversion (DTUNUC 1.x)
15475 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15476 & IA08(6,21),IA10(6,21)
15477
15478 IF (I) 20,20,10
15479* baryons
15480 10 CONTINUE
15481 CALL DT_INDEXD(J,K,IND)
15482 I8 = IB08(I,IND)
15483 I10 = IB10(I,IND)
15484 IF (I8.LE.0) I8 = I10
15485 RETURN
15486* antibaryons
15487 20 CONTINUE
15488 II = IABS(I)
15489 JJ = IABS(J)
15490 KK = IABS(K)
15491 CALL DT_INDEXD(JJ,KK,IND)
15492 I8 = IA08(II,IND)
15493 I10 = IA10(II,IND)
15494 IF (I8.LE.0) I8 = I10
15495
15496 RETURN
15497 END
15498
15499*$ CREATE DT_INDEXD.FOR
15500*COPY DT_INDEXD
15501*
15502*===indexd=============================================================*
15503*
15504 SUBROUTINE DT_INDEXD(KA,KB,IND)
15505
15506 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15507 SAVE
15508 PARAMETER ( LINP = 10 ,
15509 & LOUT = 6 ,
15510 & LDAT = 9 )
15511
15512 KP = KA*KB
15513 KS = KA+KB
15514 IF (KP.EQ.1) IND=1
15515 IF (KP.EQ.2) IND=2
15516 IF (KP.EQ.3) IND=3
15517 IF ((KP.EQ.4).AND.(KS.EQ.5)) IND=4
15518 IF (KP.EQ.5) IND=5
15519 IF ((KP.EQ.6).AND.(KS.EQ.7)) IND=6
15520 IF ((KP.EQ.4).AND.(KS.EQ.4)) IND=7
15521 IF ((KP.EQ.6).AND.(KS.EQ.5)) IND=8
15522 IF (KP.EQ.8) IND=9
15523 IF (KP.EQ.10) IND=10
15524 IF ((KP.EQ.12).AND.(KS.EQ.8)) IND=11
15525 IF (KP.EQ.9) IND=12
15526 IF ((KP.EQ.12).AND.(KS.EQ.7)) IND=13
15527 IF (KP.EQ.15) IND=14
15528 IF (KP.EQ.18) IND=15
15529 IF (KP.EQ.16) IND=16
15530 IF (KP.EQ.20) IND=17
15531 IF (KP.EQ.24) IND=18
15532 IF (KP.EQ.25) IND=19
15533 IF (KP.EQ.30) IND=20
15534 IF (KP.EQ.36) IND=21
15535
15536 RETURN
15537 END
15538
15539*$ CREATE DT_DCHANT.FOR
15540*COPY DT_DCHANT
15541*
15542*===dchant=============================================================*
15543*
15544 SUBROUTINE DT_DCHANT
15545
15546 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15547 SAVE
15548 PARAMETER ( LINP = 10 ,
15549 & LOUT = 6 ,
15550 & LDAT = 9 )
15551 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15552
15553* HADRIN: decay channel information
15554 PARAMETER (IDMAX9=602)
15555 CHARACTER*8 ZKNAME
15556 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
15557* particle properties (BAMJET index convention)
15558 CHARACTER*8 ANAME
15559 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
15560 & IICH(210),IIBAR(210),K1(210),K2(210)
15561
15562 DIMENSION HWT(IDMAX9)
15563
15564* change of weights wt from absolut values into the sum of wt of a dec.
15565 DO 10 J=1,IDMAX9
15566 HWT(J) = ZERO
15567 10 CONTINUE
15568C DO 999 KKK=1,210
15569C WRITE(LOUT,'(A8,F5.2,2E10.3,2I4,2I10)')
15570C & ANAME(KKK),AAM(KKK),GA(KKK),TAU(KKK),IICH(KKK),IIBAR(KKK),
15571C & K1(KKK),K2(KKK)
15572C 999 CONTINUE
15573C STOP
15574 DO 30 I=1,210
15575 IK1 = K1(I)
15576 IK2 = K2(I)
15577 HV = ZERO
15578 DO 20 J=IK1,IK2
15579 HV = HV+WT(J)
15580 HWT(J) = HV
15581**sr 13.1.95
15582 IF (HWT(J).GT.1.0001) WRITE(LOUT,1000) HWT(J),J,I,IK1
15583 1000 FORMAT(2X,15H ERROR IN HWT =,1F10.5,8H J,I,K1=,3I5)
15584 20 CONTINUE
15585 30 CONTINUE
15586 DO 40 J=1,IDMAX9
15587 WT(J) = HWT(J)
15588 40 CONTINUE
15589
15590 RETURN
15591 END
15592
15593*$ CREATE DT_DDATAR.FOR
15594*COPY DT_DDATAR
15595*
15596*===ddatar=============================================================*
15597*
15598 SUBROUTINE DT_DDATAR
15599
15600 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15601 SAVE
15602 PARAMETER ( LINP = 10 ,
15603 & LOUT = 6 ,
15604 & LDAT = 9 )
15605 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15606
15607* quark-content to particle index conversion (DTUNUC 1.x)
15608 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15609 & IA08(6,21),IA10(6,21)
15610
15611 DIMENSION IV(36),IP(36),IB(126),IBB(126),IA(126),IAA(126)
15612
15613 DATA IV/ 33, 34, 38,123, 0, 0, 32, 33, 39,124,
15614 & 0, 0, 36, 37, 96,127, 0, 0,126,125,
15615 & 128,129,14*0/
15616 DATA IP/ 23, 14, 16,116, 0, 0, 13, 23, 25,117,
15617 & 0, 0, 15, 24, 31,120, 0, 0,119,118,
15618 & 121,122,14*0/
15619 DATA IB/ 0, 1, 21,140, 0, 0, 8, 22,137, 0,
15620 & 0, 97,138, 0, 0,146, 0, 0, 0, 0,
15621 & 0, 1, 8, 22,137, 0, 0, 0, 20,142,
15622 & 0, 0, 98,139, 0, 0,147, 0, 0, 0,
15623 & 0, 0, 21, 22, 97,138, 0, 0, 20, 98,
15624 & 139, 0, 0, 0,145, 0, 0,148, 0, 0,
15625 & 0, 0, 0,140,137,138,146, 0, 0,142,
15626 & 139,147, 0, 0,145,148, 50*0/
15627 DATA IBB/53, 54,104,161, 0, 0, 55,105,162, 0,
15628 & 0,107,164, 0, 0,167, 0, 0, 0, 0,
15629 & 0, 54, 55,105,162, 0, 0, 56,106,163,
15630 & 0, 0,108,165, 0, 0,168, 0, 0, 0,
15631 & 0, 0,104,105,107,164, 0, 0,106,108,
15632 & 165, 0, 0,109,166, 0, 0,169, 0, 0,
15633 & 0, 0, 0,161,162,164,167, 0, 0,163,
15634 & 165,168, 0, 0,166,169, 0, 0,170,47*0/
15635 DATA IA/ 0, 2, 99,152, 0, 0, 9,100,149, 0,
15636 & 0,102,150, 0, 0,158, 0, 0, 0, 0,
15637 & 0, 2, 9,100,149, 0, 0, 0,101,154,
15638 & 0, 0,103,151, 0, 0,159, 0, 0, 0,
15639 & 0, 0, 99,100,102,150, 0, 0,101,103,
15640 & 151, 0, 0, 0,157, 0, 0,160, 0, 0,
15641 & 0, 0, 0,152,149,150,158, 0, 0,154,
15642 & 151,159, 0, 0,157,160, 50*0/
15643 DATA IAA/67, 68,110,171, 0, 0, 69,111,172, 0,
15644 & 0,113,174, 0, 0,177, 0, 0, 0, 0,
15645 & 0, 68, 69,111,172, 0, 0, 70,112,173,
15646 & 0, 0,114,175, 0, 0,178, 0, 0, 0,
15647 & 0, 0,110,111,113,174, 0, 0,112,114,
15648 & 175, 0, 0,115,176, 0, 0,179, 0, 0,
15649 & 0, 0, 0,171,172,174,177, 0, 0,173,
15650 & 175,178, 0, 0,176,179, 0, 0,180,47*0/
15651
15652 L=0
15653 DO 2 I=1,6
15654 DO 1 J=1,6
15655 L = L+1
15656 IMPS(I,J) = IP(L)
15657 IMVE(I,J) = IV(L)
15658 1 CONTINUE
15659 2 CONTINUE
15660 L=0
15661 DO 4 I=1,6
15662 DO 3 J=1,21
15663 L = L+1
15664 IB08(I,J) = IB(L)
15665 IB10(I,J) = IBB(L)
15666 IA08(I,J) = IA(L)
15667 IA10(I,J) = IAA(L)
15668 3 CONTINUE
15669 4 CONTINUE
15670C A1 = 0.88D0
15671C B1 = 3.0D0
15672C B2 = 3.0D0
15673C B3 = 8.0D0
15674C LT = 0
15675C LB = 0
15676C BET = 12.0D0
15677C AS = 0.25D0
15678C B8 = 0.33D0
15679C AME = 0.95D0
15680C DIQ = 0.375D0
15681C ISU = 4
15682
15683 RETURN
15684 END
15685
15686*$ CREATE DT_INITJS.FOR
15687*COPY DT_INITJS
15688*
15689*===initjs=============================================================*
15690*
15691 SUBROUTINE DT_INITJS(MODE)
15692
15693************************************************************************
15694* Initialize JETSET paramters. *
15695* MODE = 0 default settings *
15696* = 1 PHOJET settings *
15697* = 2 DTUNUC settings *
15698* This version dated 16.02.96 is written by S. Roesler *
15699* *
15700* Last change 27.12.2006 by S. Roesler. *
15701************************************************************************
15702
15703 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15704 SAVE
15705 PARAMETER ( LINP = 10 ,
15706 & LOUT = 6 ,
15707 & LDAT = 9 )
15708 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15709
15710 LOGICAL LFIRST,LFIRDT,LFIRPH
15711
15712 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15713 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
bd378884 15714 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15715* flags for particle decays
15716 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
15717 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
15718 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
15719* flags for input different options
15720 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15721 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15722 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15723
15724 INTEGER PYCOMP
15725
15726 DIMENSION IDXSTA(40)
15727 DATA IDXSTA
15728* K0s pi0 lam alam sig+ asig+ sig- asig- tet0 atet0
15729 & / 310, 111, 3122,-3122, 3222,-3222, 3112,-3112, 3322,-3322,
15730* tet- atet- om- aom- D+ D- D0 aD0 Ds+ aDs+
15731 & 3312,-3312, 3334,-3334, 411, -411, 421, -421, 431, -431,
15732* etac lamc+alamc+sigc++ sigc+ sigc0asigc++asigc+asigc0 Ksic+
15733 & 441, 4122,-4122, 4222, 4212, 4112,-4222,-4212,-4112, 4232,
15734* Ksic0 aKsic+aKsic0 sig0 asig0
15735 & 4132,-4232,-4132, 3212,-3212, 5*0/
15736
15737 DATA LFIRST,LFIRDT,LFIRPH /.TRUE.,.TRUE.,.TRUE./
15738
15739 IF (LFIRST) THEN
15740* save default settings
15741 PDEF1 = PARJ(1)
15742 PDEF2 = PARJ(2)
15743 PDEF3 = PARJ(3)
15744 PDEF5 = PARJ(5)
15745 PDEF6 = PARJ(6)
15746 PDEF7 = PARJ(7)
15747 PDEF18 = PARJ(18)
15748 PDEF19 = PARJ(19)
15749 PDEF21 = PARJ(21)
15750 PDEF42 = PARJ(42)
15751 MDEF12 = MSTJ(12)
15752* LUJETS / PYJETS array-dimensions
15753 MSTU(4) = 4000
15754* increase maximum number of JETSET-error prints
15755 MSTU(22) = 50000
15756* prevent particles decaying
15757 DO 1 I=1,35
15758 IF (I.LT.34) THEN
15759 KC = PYCOMP(IDXSTA(I))
15760 IF (KC.GT.0) THEN
15761 IF (I.EQ.2) THEN
15762* pi0 decay
15763C MDCY(KC,1) = 1
15764 MDCY(KC,1) = 0
15765**cr mode
15766C ELSEIF ((I.EQ.4).OR.(I.EQ. 6).OR.
15767C & (I.EQ.8).OR.(I.EQ.10)) THEN
15768C ELSEIF (I.EQ.4) THEN
15769C MDCY(KC,1) = 1
15770**
15771 ELSE
1ddc441c 15772C AM MDCY(KC,1) = 0
9aaba0d6 15773 ENDIF
15774 ENDIF
15775 ELSEIF (((I.EQ.34).OR.(I.EQ.35)).AND.(ISIG0.EQ.0)) THEN
15776 KC = PYCOMP(IDXSTA(I))
15777 IF (KC.GT.0) THEN
1ddc441c 15778C AM MDCY(KC,1) = 0
9aaba0d6 15779 ENDIF
15780 ENDIF
15781 1 CONTINUE
15782*
15783*
15784* popcorn:
15785 IF (PDB.LE.ZERO) THEN
15786* no popcorn-mechanism
15787 MSTJ(12) = 1
15788 ELSE
15789 MSTJ(12) = 3
15790 PARJ(5) = PDB
15791 ENDIF
15792* set JETSET-parameter requested by input cards
15793 IF (NMSTU.GT.0) THEN
15794 DO 2 I=1,NMSTU
15795 MSTU(IMSTU(I)) = MSTUX(I)
15796 2 CONTINUE
15797 ENDIF
15798 IF (NMSTJ.GT.0) THEN
15799 DO 3 I=1,NMSTJ
15800 MSTJ(IMSTJ(I)) = MSTJX(I)
15801 3 CONTINUE
15802 ENDIF
15803 IF (NPARU.GT.0) THEN
15804 DO 4 I=1,NPARU
15805 PARU(IPARU(I)) = PARUX(I)
15806 4 CONTINUE
15807 ENDIF
15808 LFIRST = .FALSE.
15809 ENDIF
15810*
15811* PARJ(1) suppression of qq-aqaq pair prod. compared to
15812* q-aq pair prod. (default: 0.1)
15813* PARJ(2) strangeness suppression (default: 0.3)
15814* PARJ(3) extra suppression of strange diquarks (default: 0.4)
15815* PARJ(6) extra suppression of sas-pair shared by B and
15816* aB in BMaB (default: 0.5)
15817* PARJ(7) extra suppression of strange meson M in BMaB
15818* configuration (default: 0.5)
15819* PARJ(18) spin 3/2 baryon suppression (default: 1.0)
15820* PARJ(21) width sigma in Gaussian p_x, p_y transverse
15821* momentum distrib. for prim. hadrons (default: 0.35)
15822* PARJ(42) b-parameter for symmetric Lund-fragmentation
15823* function (default: 0.9 GeV^-2)
15824*
15825* PHOJET settings
15826 IF (MODE.EQ.1) THEN
15827* JETSET default
15828C PARJ(1) = PDEF1
15829C PARJ(2) = PDEF2
15830C PARJ(3) = PDEF3
15831C PARJ(6) = PDEF6
15832C PARJ(7) = PDEF7
15833C PARJ(18) = PDEF18
15834C PARJ(21) = PDEF21
15835C PARJ(42) = PDEF42
15836**sr 18.11.98 parameter tuning
15837C PARJ(1) = 0.092D0
15838C PARJ(2) = 0.25D0
15839C PARJ(3) = 0.45D0
15840C PARJ(19) = 0.3D0
15841C PARJ(21) = 0.45D0
15842C PARJ(42) = 1.0D0
15843**sr 28.04.99 parameter tuning (May 99 minor modifications)
15844 PARJ(1) = 0.085D0
15845 PARJ(2) = 0.26D0
15846 PARJ(3) = 0.8D0
15847 PARJ(11) = 0.38D0
15848 PARJ(18) = 0.3D0
15849 PARJ(19) = 0.4D0
15850 PARJ(21) = 0.36D0
15851 PARJ(41) = 0.3D0
15852 PARJ(42) = 0.86D0
15853 IF (NPARJ.GT.0) THEN
15854 DO 10 I=1,NPARJ
15855 IF (IPARJ(I).GT.0) PARJ(IPARJ(I)) = PARJX(I)
15856 10 CONTINUE
15857 ENDIF
15858 IF (LFIRPH) THEN
15859 WRITE(LOUT,'(1X,A)')
15860 & 'DT_INITJS: JETSET-parameter for PHOJET'
15861 CALL DT_JSPARA(0)
15862 LFIRPH = .FALSE.
15863 ENDIF
15864* DTUNUC settings
15865 ELSEIF (MODE.EQ.2) THEN
15866 IF (IFRAG(2).EQ.1) THEN
15867**sr parameters before 9.3.96
15868C PARJ(2) = 0.27D0
15869C PARJ(3) = 0.6D0
15870C PARJ(6) = 0.75D0
15871C PARJ(7) = 0.75D0
15872C PARJ(21) = 0.55D0
15873C PARJ(42) = 1.3D0
15874**sr 18.11.98 parameter tuning
15875C PARJ(1) = 0.05D0
15876C PARJ(2) = 0.27D0
15877C PARJ(3) = 0.4D0
15878C PARJ(19) = 0.2D0
15879C PARJ(21) = 0.45D0
15880C PARJ(42) = 1.0D0
15881**sr 28.04.99 parameter tuning
15882 PARJ(1) = 0.11D0
15883 PARJ(2) = 0.36D0
15884 PARJ(3) = 0.8D0
15885 PARJ(19) = 0.2D0
15886 PARJ(21) = 0.3D0
15887 PARJ(41) = 0.3D0
15888 PARJ(42) = 0.58D0
15889 IF (NPARJ.GT.0) THEN
15890 DO 20 I=1,NPARJ
15891 IF (IPARJ(I).LT.0) THEN
15892 IDX = ABS(IPARJ(I))
15893 PARJ(IDX) = PARJX(I)
15894 ENDIF
15895 20 CONTINUE
15896 ENDIF
15897 IF (LFIRDT) THEN
15898 WRITE(LOUT,'(1X,A)')
15899 & 'DT_INITJS: JETSET-parameter for DTUNUC'
15900 CALL DT_JSPARA(0)
15901 LFIRDT = .FALSE.
15902 ENDIF
15903 ELSEIF (IFRAG(2).EQ.2) THEN
15904 PARJ(1) = 0.11D0
15905 PARJ(2) = 0.27D0
15906 PARJ(3) = 0.3D0
15907 PARJ(6) = 0.35D0
15908 PARJ(7) = 0.45D0
15909 PARJ(18) = 0.66D0
15910C PARJ(21) = 0.55D0
15911C PARJ(42) = 1.0D0
15912 PARJ(21) = 0.60D0
15913 PARJ(42) = 1.3D0
15914 ELSE
15915 PARJ(1) = PDEF1
15916 PARJ(2) = PDEF2
15917 PARJ(3) = PDEF3
15918 PARJ(6) = PDEF6
15919 PARJ(7) = PDEF7
15920 PARJ(18) = PDEF18
15921 PARJ(21) = PDEF21
15922 PARJ(42) = PDEF42
15923 ENDIF
15924 ELSE
15925 PARJ(1) = PDEF1
15926 PARJ(2) = PDEF2
15927 PARJ(3) = PDEF3
15928 PARJ(5) = PDEF5
15929 PARJ(6) = PDEF6
15930 PARJ(7) = PDEF7
15931 PARJ(18) = PDEF18
15932 PARJ(19) = PDEF19
15933 PARJ(21) = PDEF21
15934 PARJ(42) = PDEF42
15935 MSTJ(12) = MDEF12
15936 ENDIF
15937
15938 RETURN
15939 END
15940
15941*$ CREATE DT_JSPARA.FOR
15942*COPY DT_JSPARA
15943*
15944*===jspara=============================================================*
15945*
15946 SUBROUTINE DT_JSPARA(MODE)
15947
15948 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15949 SAVE
15950 PARAMETER ( LINP = 10 ,
15951 & LOUT = 6 ,
15952 & LDAT = 9 )
15953 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1,
15954 & ONE=1.0D0,ZERO=0.0D0)
15955
15956 LOGICAL LFIRST
15957
15958 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15959
15960 DIMENSION ISTU(200),QARU(200),ISTJ(200),QARJ(200)
15961
15962 DATA LFIRST /.TRUE./
15963
15964* save the default JETSET-parameter on the first call
15965 IF (LFIRST) THEN
15966 DO 1 I=1,200
15967 ISTU(I) = MSTU(I)
15968 QARU(I) = PARU(I)
15969 ISTJ(I) = MSTJ(I)
15970 QARJ(I) = PARJ(I)
15971 1 CONTINUE
15972 LFIRST = .FALSE.
15973 ENDIF
15974
15975 WRITE(LOUT,1000)
15976 1000 FORMAT(1X,'DT_JSPARA: new value (default value)')
15977
15978* compare the default JETSET-parameter with the present values
15979 DO 2 I=1,200
15980 IF ((MSTU(I).NE.ISTU(I)).AND.(I.NE.31)) THEN
15981 WRITE(LOUT,1002) 'MSTU(',I,MSTU(I),ISTU(I)
15982C ISTU(I) = MSTU(I)
15983 ENDIF
15984 DIFF = ABS(PARU(I)-QARU(I))
15985 IF ((DIFF.GE.1.0D-5).AND.(I.NE.21)) THEN
15986 WRITE(LOUT,1001) 'PARU(',I,PARU(I),QARU(I)
15987C QARU(I) = PARU(I)
15988 ENDIF
15989 IF (MSTJ(I).NE.ISTJ(I)) THEN
15990 WRITE(LOUT,1002) 'MSTJ(',I,MSTJ(I),ISTJ(I)
15991C ISTJ(I) = MSTJ(I)
15992 ENDIF
15993 DIFF = ABS(PARJ(I)-QARJ(I))
15994 IF (DIFF.GE.1.0D-5) THEN
15995 WRITE(LOUT,1001) 'PARJ(',I,PARJ(I),QARJ(I)
15996C QARJ(I) = PARJ(I)
15997 ENDIF
15998 2 CONTINUE
15999 1001 FORMAT(12X,A5,I3,'): ',F6.3,' (',F6.3,')')
16000 1002 FORMAT(12X,A5,I3,'): ',I6,' (',I6,')')
16001
16002 RETURN
16003 END
16004
16005*$ CREATE DT_FOZOCA.FOR
16006*COPY DT_FOZOCA
16007*
16008*===fozoca=============================================================*
16009*
16010 SUBROUTINE DT_FOZOCA(LFZC,IREJ)
16011
16012************************************************************************
16013* This subroutine treats the complete FOrmation ZOne supressed intra- *
16014* nuclear CAscade. *
16015* LFZC = .true. cascade has been treated *
16016* = .false. cascade skipped *
16017* This is a completely revised version of the original FOZOKL. *
16018* This version dated 18.11.95 is written by S. Roesler *
16019************************************************************************
16020
16021 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16022 SAVE
16023 PARAMETER ( LINP = 10 ,
16024 & LOUT = 6 ,
16025 & LDAT = 9 )
16026 PARAMETER (DLARGE=1.0D10,OHALF=0.5D0,ZERO=0.0D0)
16027 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16028
16029 LOGICAL LSTART,LCAS,LFZC
16030
16031* event history
16032 PARAMETER (NMXHKK=200000)
16033 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16034 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16035 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16036* extended event history
16037 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16038 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16039 & IHIST(2,NMXHKK)
16040* rejection counter
16041 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
16042 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
16043 & IREXCI(3),IRDIFF(2),IRINC
16044* properties of interacting particles
16045 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
16046* Glauber formalism: collision properties
16047 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16048 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16049* flags for input different options
16050 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16051 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16052 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16053* final state after intranuclear cascade step
16054 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16055* parameter for intranuclear cascade
16056 LOGICAL LPAULI
16057 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16058
16059 DIMENSION NCWOUN(2)
16060
16061 DATA LSTART /.TRUE./
16062
16063 LFZC = .TRUE.
16064 IREJ = 0
16065
16066* skip cascade if hadron-hadron interaction or if supressed by user
16067 IF (((IP.EQ.1).AND.(IT.EQ.1)).OR.(KTAUGE.LT.1)) GOTO 9999
16068* skip cascade if not all possible chains systems are hadronized
16069 DO 1 I=1,8
16070 IF (.NOT.LHADRO(I)) GOTO 9999
16071 1 CONTINUE
16072
16073 IF (LSTART) THEN
16074 WRITE(LOUT,1000) KTAUGE,TAUFOR,INCMOD
16075 1000 FORMAT(/,1X,'FOZOCA: intranuclear cascade treated for a ',
16076 & 'maximum of',I4,' generations',/,10X,'formation time ',
16077 & 'parameter:',F5.1,' fm/c',9X,'modus:',I2)
16078 IF (ITAUVE.EQ.1) WRITE(LOUT,1001)
16079 IF (ITAUVE.EQ.2) WRITE(LOUT,1002)
16080 1001 FORMAT(10X,'p_t dependent formation zone',/)
16081 1002 FORMAT(10X,'constant formation zone',/)
16082 LSTART = .FALSE.
16083 ENDIF
16084
16085* in order to avoid wasting of cpu-time the DTEVT1-indices of nucleons
16086* which may interact with final state particles are stored in a seperate
16087* array - here all proj./target nucleon-indices (just for simplicity)
16088 NOINC = 0
16089 DO 9 I=1,NPOINT(1)-1
16090 NOINC = NOINC+1
16091 IDXINC(NOINC) = I
16092 9 CONTINUE
16093
16094* initialize Pauli-principle treatment (find wounded nucleons)
16095 NWOUND(1) = 0
16096 NWOUND(2) = 0
16097 NCWOUN(1) = 0
16098 NCWOUN(2) = 0
16099 DO 2 J=1,NPOINT(1)
16100 DO 3 I=1,2
16101 IF (ISTHKK(J).EQ.10+I) THEN
16102 NWOUND(I) = NWOUND(I)+1
16103 EWOUND(I,NWOUND(I)) = PHKK(4,J)
16104 IF (IDHKK(J).EQ.2212) NCWOUN(I) = NCWOUN(I)+1
16105 ENDIF
16106 3 CONTINUE
16107 2 CONTINUE
16108
16109* modify nuclear potential for wounded nucleons
16110 IPRCL = IP -NWOUND(1)
16111 IPZRCL = IPZ-NCWOUN(1)
16112 ITRCL = IT -NWOUND(2)
16113 ITZRCL = ITZ-NCWOUN(2)
16114 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
16115
16116 NSTART = NPOINT(4)
16117 NEND = NHKK
16118
16119 7 CONTINUE
16120 DO 8 I=NSTART,NEND
16121
16122 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDCH(I).LT.KTAUGE)) THEN
16123* select nucleus the cascade starts first (proj. - 1, target - -1)
16124 NCAS = 1
16125* projectile/target with probab. 1/2
16126 IF ((INCMOD.EQ.1).OR.(IDCH(I).GT.0)) THEN
16127 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16128* in the nucleus with highest mass
16129 ELSEIF (INCMOD.EQ.2) THEN
16130 IF (IP.GT.IT) THEN
16131 NCAS = -NCAS
16132 ELSEIF (IP.EQ.IT) THEN
16133 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16134 ENDIF
16135* the nucleus the cascade starts first is requested to be the one
16136* moving in the direction of the secondary
16137 ELSEIF (INCMOD.EQ.3) THEN
16138 NCAS = INT(SIGN(1.0D0,PHKK(3,I)))
16139 ENDIF
16140* check that the selected "nucleus" is not a hadron
16141 IF (((NCAS.EQ. 1).AND.(IP.LE.1)).OR.
16142 & ((NCAS.EQ.-1).AND.(IT.LE.1))) NCAS = -NCAS
16143
16144* treat intranuclear cascade in the nucleus selected first
16145 LCAS = .FALSE.
16146 CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16147 IF (IREJ1.NE.0) GOTO 9998
16148* treat intranuclear cascade in the other nucleus if this isn't a had.
16149 NCAS = -NCAS
16150 IF (((NCAS.EQ. 1).AND.(IP.GT.1)).OR.
16151 & ((NCAS.EQ.-1).AND.(IT.GT.1))) THEN
16152 IF (LCAS) CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16153 IF (IREJ1.NE.0) GOTO 9998
16154 ENDIF
16155
16156 ENDIF
16157
16158 8 CONTINUE
16159 NSTART = NEND+1
16160 NEND = NHKK
16161 IF (NSTART.LE.NEND) GOTO 7
16162
16163 RETURN
16164
16165 9998 CONTINUE
16166* reject this event
16167 IRINC = IRINC+1
16168 IREJ = 1
16169
16170 9999 CONTINUE
16171* intranucl. cascade not treated because of interaction properties or
16172* it is supressed by user or it was rejected or...
16173 LFZC = .FALSE.
16174* reset flag characterizing direction of motion in n-n-cms
16175**sr14-11-95
16176C DO 9990 I=NPOINT(5),NHKK
16177C IF (ISTHKK(I).EQ.-1) ISTHKK(I)=1
16178C9990 CONTINUE
16179
16180 RETURN
16181 END
16182
16183*$ CREATE DT_INUCAS.FOR
16184*COPY DT_INUCAS
16185*
16186*===inucas=============================================================*
16187*
16188 SUBROUTINE DT_INUCAS(IT,IP,IDXCAS,LCAS,NCAS,IREJ)
16189
16190************************************************************************
16191* Formation zone supressed IntraNUclear CAScade for one final state *
16192* particle. *
16193* IT, IP mass numbers of target, projectile nuclei *
16194* IDXCAS index of final state particle in DTEVT1 *
16195* NCAS = 1 intranuclear cascade in projectile *
16196* = -1 intranuclear cascade in target *
16197* This version dated 18.11.95 is written by S. Roesler *
16198************************************************************************
16199
16200 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16201 SAVE
16202 PARAMETER ( LINP = 10 ,
16203 & LOUT = 6 ,
16204 & LDAT = 9 )
16205
16206 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
16207 & OHALF=0.5D0,ONE=1.0D0)
16208 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16209 PARAMETER (TWOPI=6.283185307179586454D+00)
16210 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0)
16211
16212 LOGICAL LABSOR,LCAS
16213
16214* event history
16215 PARAMETER (NMXHKK=200000)
16216 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16217 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16218 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16219* extended event history
16220 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16221 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16222 & IHIST(2,NMXHKK)
16223* final state after inc step
16224 PARAMETER (MAXFSP=10)
16225 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
16226* flags for input different options
16227 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16228 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16229 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16230* particle properties (BAMJET index convention)
16231 CHARACTER*8 ANAME
16232 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
16233 & IICH(210),IIBAR(210),K1(210),K2(210)
16234* Glauber formalism: collision properties
16235 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16236 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16237* nuclear potential
16238 LOGICAL LFERMI
16239 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
16240 & EBINDP(2),EBINDN(2),EPOT(2,210),
16241 & ETACOU(2),ICOUL,LFERMI
16242* parameter for intranuclear cascade
16243 LOGICAL LPAULI
16244 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16245* final state after intranuclear cascade step
16246 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16247* nucleon-nucleon event-generator
16248 CHARACTER*8 CMODEL
16249 LOGICAL LPHOIN
16250 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
16251* statistics: residual nuclei
16252 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
16253 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
16254 & NINCST(2,4),NINCEV(2),
16255 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
16256 & NRESPB(2),NRESCH(2),NRESEV(4),
16257 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
16258 & NEVAFI(2,2)
16259
16260 DIMENSION PCAS(2,5),PTOCAS(2),COSCAS(2,3),VTXCAS(2,4),VTXCA1(2,4),
16261 & PCAS1(5),PNUC(5),BGTA(4),
16262 & BGCAS(2),GACAS(2),BECAS(2),
16263 & RNUC(2),BIMPC(2),VTXDST(3),IDXSPE(2),IDSPE(2),NWTMP(2)
16264
16265 DATA PDIF /0.545D0/
16266
16267 IREJ = 0
16268
16269* update counter
16270 IF (NINCEV(1).NE.NEVHKK) THEN
16271 NINCEV(1) = NEVHKK
16272 NINCEV(2) = NINCEV(2)+1
16273 ENDIF
16274
16275* "BAMJET-index" of this hadron
16276 IDCAS = IDBAM(IDXCAS)
16277 IF (IDT_MCHAD(IDCAS).EQ.-1) RETURN
16278
16279* skip gammas, electrons, etc..
16280 IF (AAM(IDCAS).LT.TINY2) RETURN
16281
16282* Lorentz-trsf. into projectile rest system
16283 IF (IP.GT.1) THEN
16284 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16285 & PHKK(4,IDXCAS),PCAS(1,1),PCAS(1,2),PCAS(1,3),
16286 & PCAS(1,4),IDCAS,-2)
16287 PTOCAS(1) = SQRT(PCAS(1,1)**2+PCAS(1,2)**2+PCAS(1,3)**2)
16288 PCAS(1,5) = (PCAS(1,4)-PTOCAS(1))*(PCAS(1,4)+PTOCAS(1))
16289 IF (PCAS(1,5).GT.ZERO) THEN
16290 PCAS(1,5) = SQRT(PCAS(1,5))
16291 ELSE
16292 PCAS(1,5) = AAM(IDCAS)
16293 ENDIF
16294 DO 20 K=1,3
16295 COSCAS(1,K) = PCAS(1,K)/MAX(PTOCAS(1),TINY10)
16296 20 CONTINUE
16297* Lorentz-parameters
16298* particle rest system --> projectile rest system
16299 BGCAS(1) = PTOCAS(1)/MAX(PCAS(1,5),TINY10)
16300 GACAS(1) = PCAS(1,4)/MAX(PCAS(1,5),TINY10)
16301 BECAS(1) = BGCAS(1)/GACAS(1)
16302 ELSE
16303 DO 21 K=1,5
16304 PCAS(1,K) = ZERO
16305 IF (K.LE.3) COSCAS(1,K) = ZERO
16306 21 CONTINUE
16307 PTOCAS(1) = ZERO
16308 BGCAS(1) = ZERO
16309 GACAS(1) = ZERO
16310 BECAS(1) = ZERO
16311 ENDIF
16312* Lorentz-trsf. into target rest system
16313 IF (IT.GT.1) THEN
16314* LEPTO: final state particles are already in target rest frame
16315C IF (MCGENE.EQ.3) THEN
16316C PCAS(2,1) = PHKK(1,IDXCAS)
16317C PCAS(2,2) = PHKK(2,IDXCAS)
16318C PCAS(2,3) = PHKK(3,IDXCAS)
16319C PCAS(2,4) = PHKK(4,IDXCAS)
16320C ELSE
16321 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16322 & PHKK(4,IDXCAS),PCAS(2,1),PCAS(2,2),PCAS(2,3),
16323 & PCAS(2,4),IDCAS,-3)
16324C ENDIF
16325 PTOCAS(2) = SQRT(PCAS(2,1)**2+PCAS(2,2)**2+PCAS(2,3)**2)
16326 PCAS(2,5) = (PCAS(2,4)-PTOCAS(2))*(PCAS(2,4)+PTOCAS(2))
16327 IF (PCAS(2,5).GT.ZERO) THEN
16328 PCAS(2,5) = SQRT(PCAS(2,5))
16329 ELSE
16330 PCAS(2,5) = AAM(IDCAS)
16331 ENDIF
16332 DO 22 K=1,3
16333 COSCAS(2,K) = PCAS(2,K)/MAX(PTOCAS(2),TINY10)
16334 22 CONTINUE
16335* Lorentz-parameters
16336* particle rest system --> target rest system
16337 BGCAS(2) = PTOCAS(2)/MAX(PCAS(2,5),TINY10)
16338 GACAS(2) = PCAS(2,4)/MAX(PCAS(2,5),TINY10)
16339 BECAS(2) = BGCAS(2)/GACAS(2)
16340 ELSE
16341 DO 23 K=1,5
16342 PCAS(2,K) = ZERO
16343 IF (K.LE.3) COSCAS(2,K) = ZERO
16344 23 CONTINUE
16345 PTOCAS(2) = ZERO
16346 BGCAS(2) = ZERO
16347 GACAS(2) = ZERO
16348 BECAS(2) = ZERO
16349 ENDIF
16350
16351* radii of nuclei (mm) modified by the wall-depth of the Woods-Saxon-
16352* potential (see CONUCL)
16353 RNUC(1) = (RPROJ+4.605D0*PDIF)*FM2MM
16354 RNUC(2) = (RTARG+4.605D0*PDIF)*FM2MM
16355* impact parameter (the projectile moving along z)
16356 BIMPC(1) = ZERO
16357 BIMPC(2) = BIMPAC*FM2MM
16358
16359* get position of initial hadron in projectile/target rest-syst.
16360 DO 3 K=1,4
16361 VTXCAS(1,K) = WHKK(K,IDXCAS)
16362 VTXCAS(2,K) = VHKK(K,IDXCAS)
16363 3 CONTINUE
16364
16365 ICAS = 1
16366 I2 = 2
16367 IF (NCAS.EQ.-1) THEN
16368 ICAS = 2
16369 I2 = 1
16370 ENDIF
16371
16372 IF (PTOCAS(ICAS).LT.TINY10) THEN
16373 WRITE(LOUT,1000) PTOCAS
16374 1000 FORMAT(1X,'INUCAS: warning! zero momentum of initial',
16375 & ' hadron ',/,20X,2E12.4)
16376 GOTO 9999
16377 ENDIF
16378
16379* reset spectator flags
16380 NSPE = 0
16381 IDXSPE(1) = 0
16382 IDXSPE(2) = 0
16383 IDSPE(1) = 0
16384 IDSPE(2) = 0
16385
16386* formation length (in fm)
16387C IF (LCAS) THEN
16388C DEL0 = ZERO
16389C ELSE
16390 DEL0 = TAUFOR*BGCAS(ICAS)
16391 IF (ITAUVE.EQ.1) THEN
16392 AMT = PCAS(ICAS,1)**2+PCAS(ICAS,2)**2+PCAS(ICAS,5)**2
16393 DEL0 = DEL0*PCAS(ICAS,5)**2/AMT
16394 ENDIF
16395C ENDIF
16396* sample from exp(-del/del0)
16397 DEL1 = -DEL0*LOG(MAX(DT_RNDM(DEL0),TINY10))
16398* save formation time
16399 TAUSA1 = DEL1/BGCAS(ICAS)
16400 REL1 = TAUSA1*BGCAS(I2)
16401
16402 DEL = DEL1
16403 TAUSAM = DEL/BGCAS(ICAS)
16404 REL = TAUSAM*BGCAS(I2)
16405
16406* special treatment for negative particles unable to escape
16407* nuclear potential (implemented for ap, pi-, K- only)
16408 LABSOR = .FALSE.
16409 IF ((IICH(IDCAS).EQ.-1).AND.(IDCAS.LT.20)) THEN
16410* threshold energy = nuclear potential + Coulomb potential
16411* (nuclear potential for hadron-nucleus interactions only)
16412 ETHR = AAM(IDCAS)+EPOT(ICAS,IDCAS)+ETACOU(ICAS)
16413 IF (PCAS(ICAS,4).LT.ETHR) THEN
16414 DO 4 K=1,5
16415 PCAS1(K) = PCAS(ICAS,K)
16416 4 CONTINUE
16417* "absorb" negative particle in nucleus
16418 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,0,IREJ1)
16419 IF (IREJ1.NE.0) GOTO 9999
16420 IF (NSPE.GE.1) LABSOR = .TRUE.
16421 ENDIF
16422 ENDIF
16423
16424* if the initial particle has not been absorbed proceed with
16425* "normal" cascade
16426 IF (.NOT.LABSOR) THEN
16427
16428* calculate coordinates of hadron at the end of the formation zone
16429* transport-time and -step in the rest system where this step is
16430* treated
16431 DSTEP = DEL*FM2MM
16432 DTIME = DSTEP/BECAS(ICAS)
16433 RSTEP = REL*FM2MM
16434 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16435 RTIME = RSTEP/BECAS(I2)
16436 ELSE
16437 RTIME = ZERO
16438 ENDIF
16439* save step whithout considering the overlapping region
16440 DSTEP1 = DEL1*FM2MM
16441 DTIME1 = DSTEP1/BECAS(ICAS)
16442 RSTEP1 = REL1*FM2MM
16443 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16444 RTIME1 = RSTEP1/BECAS(I2)
16445 ELSE
16446 RTIME1 = ZERO
16447 ENDIF
16448* transport to the end of the formation zone in this system
16449 DO 5 K=1,3
16450 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+DSTEP1*COSCAS(ICAS,K)
16451 VTXCA1(I2,K) = VTXCAS(I2,K) +RSTEP1*COSCAS(I2,K)
16452 VTXCAS(ICAS,K) = VTXCAS(ICAS,K)+DSTEP*COSCAS(ICAS,K)
16453 VTXCAS(I2,K) = VTXCAS(I2,K) +RSTEP*COSCAS(I2,K)
16454 5 CONTINUE
16455 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME1
16456 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME1
16457 VTXCAS(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16458 VTXCAS(I2,4) = VTXCAS(I2,4) +RTIME
16459
16460 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16461 XCAS = VTXCAS(ICAS,1)
16462 YCAS = VTXCAS(ICAS,2)
16463 XNCLTA = BIMPAC*FM2MM
16464 RNCLPR = (RPROJ+RNUCLE)*FM2MM
16465 RNCLTA = (RTARG+RNUCLE)*FM2MM
16466C RNCLPR = (RPROJ+1.605D0*PDIF)*FM2MM
16467C RNCLTA = (RTARG+1.605D0*PDIF)*FM2MM
16468C RNCLPR = (RPROJ)*FM2MM
16469C RNCLTA = (RTARG)*FM2MM
16470 RCASPR = SQRT( XCAS**2 +YCAS**2)
16471 RCASTA = SQRT((XCAS-XNCLTA)**2+YCAS**2)
16472 IF ((RCASPR.LT.RNCLPR).AND.(RCASTA.LT.RNCLTA)) THEN
16473 IF (IDCH(IDXCAS).EQ.0) NOBAM(IDXCAS) = 3
16474 ENDIF
16475 ENDIF
16476
16477* check if particle is already outside of the corresp. nucleus
16478 RDIST = SQRT((VTXCAS(ICAS,1)-BIMPC(ICAS))**2+
16479 & VTXCAS(ICAS,2)**2+VTXCAS(ICAS,3)**2)
16480 IF (RDIST.GE.RNUC(ICAS)) THEN
16481* here: IDCH is the generation of the final state part. starting
16482* with zero for hadronization products
16483* flag particles of generation 0 being outside the nuclei after
16484* formation time (to be used for excitation energy calculation)
16485 IF ((IDCH(IDXCAS).EQ.0).AND.(NOBAM(IDXCAS).LT.3))
16486 & NOBAM(IDXCAS) = NOBAM(IDXCAS)+ICAS
16487 GOTO 9997
16488 ENDIF
16489 DIST = DLARGE
16490 DISTP = DLARGE
16491 DISTN = DLARGE
16492 IDXP = 0
16493 IDXN = 0
16494
16495* already here: skip particles being outside HADRIN "energy-window"
16496* to avoid wasting of time
16497 NINCHR(ICAS,1) = NINCHR(ICAS,1)+1
16498 IF ((PTOCAS(ICAS).LE.PLOWH).OR.(PTOCAS(ICAS).GE.PHIH)) THEN
16499 NINCHR(ICAS,2) = NINCHR(ICAS,2)+1
16500C WRITE(LOUT,1002) IDXCAS,IDCAS,ICAS,PTOCAS(ICAS),NEVHKK
16501C1002 FORMAT(1X,'INUCAS: warning! momentum of particle with ',
16502C & 'index ',I5,' (id: ',I3,') ',I3,/,11X,'p_tot = ',
16503C & E12.4,', above or below HADRIN-thresholds',I6)
16504 NSPE = 0
16505 GOTO 9997
16506 ENDIF
16507
16508 DO 7 IDXHKK=1,NOINC
16509 I = IDXINC(IDXHKK)
16510* scan DTEVT1 for unwounded or excited nucleons
16511 IF ((ISTHKK(I).EQ.12+ICAS).OR.(ISTHKK(I).EQ.14+ICAS)) THEN
16512 DO 8 K=1,3
16513 IF (ICAS.EQ.1) THEN
16514 VTXDST(K) = WHKK(K,I)-VTXCAS(1,K)
16515 ELSEIF (ICAS.EQ.2) THEN
16516 VTXDST(K) = VHKK(K,I)-VTXCAS(2,K)
16517 ENDIF
16518 8 CONTINUE
16519 POSNUC = VTXDST(1)*COSCAS(ICAS,1)+
16520 & VTXDST(2)*COSCAS(ICAS,2)+
16521 & VTXDST(3)*COSCAS(ICAS,3)
16522* check if nucleon is situated in forward direction
16523 IF (POSNUC.GT.ZERO) THEN
16524* distance between hadron and this nucleon
16525 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16526 & VTXDST(3)**2)
16527* impact parameter
16528 BIMNU2 = DISTNU**2-POSNUC**2
16529 IF (BIMNU2.LT.ZERO) THEN
16530 WRITE(LOUT,1001) DISTNU,POSNUC,BIMNU2
16531 1001 FORMAT(1X,'INUCAS: warning! inconsistent impact',
16532 & ' parameter ',/,20X,3E12.4)
16533 GOTO 7
16534 ENDIF
16535 BIMNU = SQRT(BIMNU2)
16536* maximum impact parameter to have interaction
16537 IDNUC = IDT_ICIHAD(IDHKK(I))
16538 IDNUC1 = IDT_MCHAD(IDNUC)
16539 IDCAS1 = IDT_MCHAD(IDCAS)
16540 DO 19 K=1,5
16541 PCAS1(K) = PCAS(ICAS,K)
16542 PNUC(K) = PHKK(K,I)
16543 19 CONTINUE
16544* Lorentz-parameter for trafo into rest-system of target
16545 DO 18 K=1,4
16546 BGTA(K) = PNUC(K)/MAX(PNUC(5),TINY10)
16547 18 CONTINUE
16548* transformation of projectile into rest-system of target
16549 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
16550 & PCAS1(1),PCAS1(2),PCAS1(3),PCAS1(4),
16551 & PPTOT,PX,PY,PZ,PE)
16552**
16553C CALL DT_SIHNIN(IDCAS1,IDNUC1,PPTOT,SIGIN)
16554C CALL DT_SIHNEL(IDCAS1,IDNUC1,PPTOT,SIGEL)
16555 DUMZER = ZERO
16556 CALL DT_XSHN(IDCAS1,IDNUC1,PPTOT,DUMZER,SIGTOT,SIGEL)
16557 CALL DT_SIHNAB(IDCAS1,IDNUC1,PPTOT,SIGAB)
16558 IF (((IDCAS1.EQ.13).OR.(IDCAS1.EQ.14)).AND.
16559 & (PPTOT.LT.0.15D0)) SIGEL = SIGEL/2.0D0
16560 SIGIN = SIGTOT-SIGEL-SIGAB
16561C SIGTOT = SIGIN+SIGEL+SIGAB
16562**
16563 BIMMAX = SQRT(SIGTOT/(5.0D0*TWOPI))*FM2MM
16564* check if interaction is possible
16565 IF (BIMNU.LE.BIMMAX) THEN
16566* get nucleon with smallest distance and kind of interaction
16567* (elastic/inelastic)
16568 IF (DISTNU.LT.DIST) THEN
16569 DIST = DISTNU
16570 BINT = BIMNU
16571 IF (IDNUC.NE.IDSPE(1)) THEN
16572 IDSPE(2) = IDSPE(1)
16573 IDXSPE(2) = IDXSPE(1)
16574 IDSPE(1) = IDNUC
16575 ENDIF
16576 IDXSPE(1) = I
16577 NSPE = 1
16578**sr
16579 SELA = SIGEL
16580 SABS = SIGAB
16581 STOT = SIGTOT
16582C IF ((IDCAS.EQ.2).OR.(IDCAS.EQ.9)) THEN
16583C SELA = SIGEL
16584C STOT = SIGIN+SIGEL
16585C ELSE
16586C SELA = SIGEL+0.75D0*SIGIN
16587C STOT = 0.25D0*SIGIN+SELA
16588C ENDIF
16589**
16590 ENDIF
16591 ENDIf
16592 ENDIF
16593 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16594 & VTXDST(3)**2)
16595 IDNUC = IDT_ICIHAD(IDHKK(I))
16596 IF (IDNUC.EQ.1) THEN
16597 IF (DISTNU.LT.DISTP) THEN
16598 DISTP = DISTNU
16599 IDXP = I
16600 POSP = POSNUC
16601 ENDIF
16602 ELSEIF (IDNUC.EQ.8) THEN
16603 IF (DISTNU.LT.DISTN) THEN
16604 DISTN = DISTNU
16605 IDXN = I
16606 POSN = POSNUC
16607 ENDIF
16608 ENDIF
16609 ENDIF
16610 7 CONTINUE
16611
16612* there is no nucleon for a secondary interaction
16613 IF (NSPE.EQ.0) GOTO 9997
16614
16615C IF ((IDCAS.EQ.13).AND.((PCAS(ICAS,4)-PCAS(ICAS,5)).LT.0.1D0))
16616C & WRITE(LOUT,*) STOT,SELA,SABS,IDXSPE
16617 IF (IDXSPE(2).EQ.0) THEN
16618 IF ((IDSPE(1).EQ.1).AND.(IDXN.GT.0)) THEN
16619C DO 80 K=1,3
16620C IF (ICAS.EQ.1) THEN
16621C VTXDST(K) = WHKK(K,IDXN)-WHKK(K,IDXSPE(1))
16622C ELSEIF (ICAS.EQ.2) THEN
16623C VTXDST(K) = VHKK(K,IDXN)-VHKK(K,IDXSPE(1))
16624C ENDIF
16625C 80 CONTINUE
16626C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16627C & VTXDST(3)**2)
16628C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSN.GT.ZERO)) THEN
16629 IDXSPE(2) = IDXN
16630 IDSPE(2) = 8
16631C ELSE
16632C STOT = STOT-SABS
16633C SABS = ZERO
16634C ENDIF
16635 ELSEIF ((IDSPE(1).EQ.8).AND.(IDXP.GT.0)) THEN
16636C DO 81 K=1,3
16637C IF (ICAS.EQ.1) THEN
16638C VTXDST(K) = WHKK(K,IDXP)-WHKK(K,IDXSPE(1))
16639C ELSEIF (ICAS.EQ.2) THEN
16640C VTXDST(K) = VHKK(K,IDXP)-VHKK(K,IDXSPE(1))
16641C ENDIF
16642C 81 CONTINUE
16643C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16644C & VTXDST(3)**2)
16645C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSP.GT.ZERO)) THEN
16646 IDXSPE(2) = IDXP
16647 IDSPE(2) = 1
16648C ELSE
16649C STOT = STOT-SABS
16650C SABS = ZERO
16651C ENDIF
16652 ELSE
16653 STOT = STOT-SABS
16654 SABS = ZERO
16655 ENDIF
16656 ENDIF
16657 RR = DT_RNDM(DIST)
16658 IF (RR.LT.SELA/STOT) THEN
16659 IPROC = 2
16660 ELSEIF ((RR.GE.SELA/STOT).AND.(RR.LT.(SELA+SABS)/STOT)) THEN
16661 IPROC = 3
16662 ELSE
16663 IPROC = 1
16664 ENDIF
16665
16666 DO 9 K=1,5
16667 PCAS1(K) = PCAS(ICAS,K)
16668 PNUC(K) = PHKK(K,IDXSPE(1))
16669 9 CONTINUE
16670 IF (IPROC.EQ.3) THEN
16671* 2-nucleon absorption of pion
16672 NSPE = 2
16673 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,1,IREJ1)
16674 IF (IREJ1.NE.0) GOTO 9999
16675 IF (NSPE.GE.1) LABSOR = .TRUE.
16676 ELSE
16677* sample secondary interaction
16678 IDNUC = IDBAM(IDXSPE(1))
16679 CALL DT_HADRIN(IDCAS,PCAS1,IDNUC,PNUC,IPROC,IREJ1)
16680 IF (IREJ1.EQ.1) GOTO 9999
16681 IF (IREJ1.GT.1) GOTO 9998
16682 ENDIF
16683 ENDIF
16684
16685* update arrays to include Pauli-principle
16686 DO 10 I=1,NSPE
16687 IF (NWOUND(ICAS).LE.299) THEN
16688 NWOUND(ICAS) = NWOUND(ICAS)+1
16689 EWOUND(ICAS,NWOUND(ICAS)) = PHKK(4,IDXSPE(I))
16690 ENDIF
16691 10 CONTINUE
16692
16693* dump initial hadron for energy-momentum conservation check
16694 IF (LEMCCK)
16695 & CALL DT_EVTEMC(PCAS(ICAS,1),PCAS(ICAS,2),PCAS(ICAS,3),
16696 & PCAS(ICAS,4),1,IDUM,IDUM)
16697
16698* dump final state particles into DTEVT1
16699
16700* check if Pauli-principle is fulfilled
16701 NPAULI = 0
16702 NWTMP(1) = NWOUND(1)
16703 NWTMP(2) = NWOUND(2)
16704 DO 111 I=1,NFSP
16705 NPAULI = 0
16706 J1 = 2
16707 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16708 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16709 DO 117 J=1,J1
16710 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 117
16711 IF (J.EQ.1) THEN
16712 IDX = ICAS
16713 PE = PFSP(4,I)
16714 ELSE
16715 IDX = I2
16716 MODE = 1
16717 IF (IDX.EQ.1) MODE = -1
16718 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,MODE)
16719 ENDIF
16720* first check if cascade step is forbidden due to Pauli-principle
16721* (in case of absorpion this step is forced)
16722 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16723 & (IDFSP(I).EQ.8))) THEN
16724* get nuclear potential barrier
16725 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16726 IF (IDFSP(I).EQ.1) THEN
16727 POTLOW = POT-EBINDP(IDX)
16728 ELSE
16729 POTLOW = POT-EBINDN(IDX)
16730 ENDIF
16731* final state particle not able to escape nucleus
16732 IF (PE.LE.POTLOW) THEN
16733* check if there are wounded nucleons
16734 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16735 & EWOUND(IDX,NWOUND(IDX)))) THEN
16736 NPAULI = NPAULI+1
16737 NWOUND(IDX) = NWOUND(IDX)-1
16738 ELSE
16739* interaction prohibited by Pauli-principle
16740 NWOUND(1) = NWTMP(1)
16741 NWOUND(2) = NWTMP(2)
16742 GOTO 9997
16743 ENDIF
16744 ENDIF
16745 ENDIF
16746 117 CONTINUE
16747 111 CONTINUE
16748
16749 NPAULI = 0
16750 NWOUND(1) = NWTMP(1)
16751 NWOUND(2) = NWTMP(2)
16752
16753 DO 11 I=1,NFSP
16754
16755 IST = ISTHKK(IDXCAS)
16756
16757 NPAULI = 0
16758 J1 = 2
16759 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16760 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16761 DO 17 J=1,J1
16762 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 17
16763 IDX = ICAS
16764 PE = PFSP(4,I)
16765 IF (J.EQ.2) THEN
16766 IDX = I2
16767 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,NCAS)
16768 ENDIF
16769* first check if cascade step is forbidden due to Pauli-principle
16770* (in case of absorpion this step is forced)
16771 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16772 & (IDFSP(I).EQ.8))) THEN
16773* get nuclear potential barrier
16774 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16775 IF (IDFSP(I).EQ.1) THEN
16776 POTLOW = POT-EBINDP(IDX)
16777 ELSE
16778 POTLOW = POT-EBINDN(IDX)
16779 ENDIF
16780* final state particle not able to escape nucleus
16781 IF (PE.LE.POTLOW) THEN
16782* check if there are wounded nucleons
16783 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16784 & EWOUND(IDX,NWOUND(IDX)))) THEN
16785 NWOUND(IDX) = NWOUND(IDX)-1
16786 NPAULI = NPAULI+1
16787 IST = 14+IDX
16788 ELSE
16789* interaction prohibited by Pauli-principle
16790 NWOUND(1) = NWTMP(1)
16791 NWOUND(2) = NWTMP(2)
16792 GOTO 9997
16793 ENDIF
16794**sr
16795c ELSEIF (PE.LE.POT) THEN
16796cC ELSEIF ((PE.LE.POT).AND.(NWOUND(IDX).GE.1)) THEN
16797cC NWOUND(IDX) = NWOUND(IDX)-1
16798c**
16799c NPAULI = NPAULI+1
16800c IST = 14+IDX
16801 ENDIF
16802 ENDIF
16803 17 CONTINUE
16804
16805* dump final state particles for energy-momentum conservation check
16806 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),-PFSP(3,I),
16807 & -PFSP(4,I),2,IDUM,IDUM)
16808
16809 PX = PFSP(1,I)
16810 PY = PFSP(2,I)
16811 PZ = PFSP(3,I)
16812 PE = PFSP(4,I)
16813 IF (ABS(IST).EQ.1) THEN
16814* transform particles back into n-n cms
16815* LEPTO: leave final state particles in target rest frame
16816C IF (MCGENE.EQ.3) THEN
16817C PFSP(1,I) = PX
16818C PFSP(2,I) = PY
16819C PFSP(3,I) = PZ
16820C PFSP(4,I) = PE
16821C ELSE
16822 IMODE = ICAS+1
16823 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16824 & PFSP(4,I),IDFSP(I),IMODE)
16825C ENDIF
16826 ELSEIF ((ICAS.EQ.2).AND.(IST.EQ.15)) THEN
16827* target cascade but fsp got stuck in proj. --> transform it into
16828* proj. rest system
16829 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16830 & PFSP(4,I),IDFSP(I),-1)
16831 ELSEIF ((ICAS.EQ.1).AND.(IST.EQ.16)) THEN
16832* proj. cascade but fsp got stuck in target --> transform it into
16833* target rest system
16834 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16835 & PFSP(4,I),IDFSP(I),1)
16836 ENDIF
16837
16838* dump final state particles into DTEVT1
16839 IGEN = IDCH(IDXCAS)+1
16840 ID = IDT_IPDGHA(IDFSP(I))
16841 IXR = 0
16842 IF (LABSOR) IXR = 99
16843 CALL DT_EVTPUT(IST,ID,IDXCAS,IDXSPE(1),PFSP(1,I),
16844 & PFSP(2,I),PFSP(3,I),PFSP(4,I),0,IXR,IGEN)
16845
16846* update the counter for particles which got stuck inside the nucleus
16847 IF ((IST.EQ.15).OR.(IST.EQ.16)) THEN
16848 NOINC = NOINC+1
16849 IDXINC(NOINC) = NHKK
16850 ENDIF
16851 IF (LABSOR) THEN
16852* in case of absorption the spatial treatment is an approximate
16853* solution anyway (the positions of the nucleons which "absorb" the
16854* cascade particle are not taken into consideration) therefore the
16855* particles are produced at the position of the cascade particle
16856 DO 12 K=1,4
16857 WHKK(K,NHKK) = WHKK(K,IDXCAS)
16858 VHKK(K,NHKK) = VHKK(K,IDXCAS)
16859 12 CONTINUE
16860 ELSE
16861* DDISTL - distance the cascade particle moves to the intera. point
16862* (the position where impact-parameter = distance to the interacting
16863* nucleon), DIST - distance to the interacting nucleon at the time of
16864* formation of the cascade particle, BINT - impact-parameter of this
16865* cascade-interaction
16866 DDISTL = SQRT(DIST**2-BINT**2)
16867 DTIME = DDISTL/BECAS(ICAS)
16868 DTIMEL = DDISTL/BGCAS(ICAS)
16869 RDISTL = DTIMEL*BGCAS(I2)
16870 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16871 RTIME = RDISTL/BECAS(I2)
16872 ELSE
16873 RTIME = ZERO
16874 ENDIF
16875* RDISTL, RTIME are this step and time in the rest system of the other
16876* nucleus
16877 DO 13 K=1,3
16878 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+COSCAS(ICAS,K)*DDISTL
16879 VTXCA1(I2,K) = VTXCAS(I2,K) +COSCAS(I2,K) *RDISTL
16880 13 CONTINUE
16881 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16882 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME
16883* position of particle production is half the impact-parameter to
16884* the interacting nucleon
16885 DO 14 K=1,3
16886 WHKK(K,NHKK) = OHALF*(VTXCA1(1,K)+WHKK(K,IDXSPE(1)))
16887 VHKK(K,NHKK) = OHALF*(VTXCA1(2,K)+VHKK(K,IDXSPE(1)))
16888 14 CONTINUE
16889* time of production of secondary = time of interaction
16890 WHKK(4,NHKK) = VTXCA1(1,4)
16891 VHKK(4,NHKK) = VTXCA1(2,4)
16892 ENDIF
16893
16894 11 CONTINUE
16895
16896* modify status and position of cascade particle (the latter for
16897* statistics reasons only)
16898 ISTHKK(IDXCAS) = 2
16899 IF (LABSOR) ISTHKK(IDXCAS) = 19
16900 IF (.NOT.LABSOR) THEN
16901 DO 15 K=1,4
16902 WHKK(K,IDXCAS) = VTXCA1(1,K)
16903 VHKK(K,IDXCAS) = VTXCA1(2,K)
16904 15 CONTINUE
16905 ENDIF
16906
16907 DO 16 I=1,NSPE
16908 IS = IDXSPE(I)
16909* dump interacting nucleons for energy-momentum conservation check
16910 IF (LEMCCK)
16911 & CALL DT_EVTEMC(PHKK(1,IS),PHKK(2,IS),PHKK(3,IS),PHKK(4,IS),
16912 & 2,IDUM,IDUM)
16913* modify entry for interacting nucleons
16914 IF (ISTHKK(IS).EQ.12+ICAS) ISTHKK(IS)=16+ICAS
16915 IF (ISTHKK(IS).EQ.14+ICAS) ISTHKK(IS)=2
16916 IF (I.GE.2) THEN
16917 JDAHKK(1,IS) = JDAHKK(1,IDXSPE(1))
16918 JDAHKK(2,IS) = JDAHKK(2,IDXSPE(1))
16919 ENDIF
16920 16 CONTINUE
16921
16922* check energy-momentum conservation
16923 IF (LEMCCK) THEN
16924 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,500,IREJ1)
16925 IF (IREJ1.NE.0) GOTO 9999
16926 ENDIF
16927
16928* update counter
16929 IF (LABSOR) THEN
16930 NINCCO(ICAS,1) = NINCCO(ICAS,1)+1
16931 ELSE
16932 IF (IPROC.EQ.1) NINCCO(ICAS,2) = NINCCO(ICAS,2)+1
16933 IF (IPROC.EQ.2) NINCCO(ICAS,3) = NINCCO(ICAS,3)+1
16934 ENDIF
16935
16936 RETURN
16937
16938 9997 CONTINUE
16939 9998 CONTINUE
16940* transport-step but no cascade step due to configuration (i.e. there
16941* is no nucleon for interaction etc.)
16942 IF (LCAS) THEN
16943 DO 100 K=1,4
16944C WHKK(K,IDXCAS) = VTXCAS(1,K)
16945C VHKK(K,IDXCAS) = VTXCAS(2,K)
16946 WHKK(K,IDXCAS) = VTXCA1(1,K)
16947 VHKK(K,IDXCAS) = VTXCA1(2,K)
16948 100 CONTINUE
16949 ENDIF
16950
16951C9998 CONTINUE
16952* no cascade-step because of configuration
16953* (i.e. hadron outside nucleus etc.)
16954 LCAS = .TRUE.
16955 RETURN
16956
16957 9999 CONTINUE
16958* rejection
16959 IREJ = 1
16960 RETURN
16961 END
16962
16963*$ CREATE DT_ABSORP.FOR
16964*COPY DT_ABSORP
16965*
16966*===absorp=============================================================*
16967*
16968 SUBROUTINE DT_ABSORP(IDCAS,PCAS,NCAS,NSPE,IDSPE,IDXSPE,MODE,IREJ)
16969
16970************************************************************************
16971* Two-nucleon absorption of antiprotons, pi-, and K-. *
16972* Antiproton absorption is handled by HADRIN. *
16973* The following channels for meson-absorption are considered: *
16974* pi- + p + p ---> n + p *
16975* pi- + p + n ---> n + n *
16976* K- + p + p ---> sigma+ + n / Lam + p / sigma0 + p *
16977* K- + p + n ---> sigma- + n / Lam + n / sigma0 + n *
16978* K- + p + p ---> sigma- + n *
16979* IDCAS, PCAS identity, momentum of particle to be absorbed *
16980* NCAS = 1 intranuclear cascade in projectile *
16981* = -1 intranuclear cascade in target *
16982* NSPE number of spectator nucleons involved *
16983* IDXSPE(2) DTEVT1-indices of spectator nucleons involved *
16984* Revised version of the original STOPIK written by HJM and J. Ranft. *
16985* This version dated 24.02.95 is written by S. Roesler *
16986************************************************************************
16987
16988 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16989 SAVE
16990 PARAMETER ( LINP = 10 ,
16991 & LOUT = 6 ,
16992 & LDAT = 9 )
16993 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,ONE=1.0D0,
16994 & ONETHI=0.3333D0,TWOTHI=0.6666D0)
16995
16996* event history
16997 PARAMETER (NMXHKK=200000)
16998 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16999 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17000 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17001* extended event history
17002 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17003 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17004 & IHIST(2,NMXHKK)
17005* flags for input different options
17006 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17007 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17008 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17009* final state after inc step
17010 PARAMETER (MAXFSP=10)
17011 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17012* particle properties (BAMJET index convention)
17013 CHARACTER*8 ANAME
17014 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17015 & IICH(210),IIBAR(210),K1(210),K2(210)
17016
17017 DIMENSION PCAS(5),IDXSPE(2),IDSPE(2),PSPE(2,5),PSPE1(5),
17018 & PTOT3P(4),BG3P(4),
17019 & ECMF(2),PCMF(2),CODF(2),COFF(2),SIFF(2)
17020
17021 IREJ = 0
17022 NFSP = 0
17023
17024* skip particles others than ap, pi-, K- for mode=0
17025 IF ((MODE.EQ.0).AND.
17026 & (IDCAS.NE.2).AND.(IDCAS.NE.14).AND.(IDCAS.NE.16)) RETURN
17027* skip particles others than pions for mode=1
17028* (2-nucleon absorption in intranuclear cascade)
17029 IF ((MODE.EQ.1).AND.
17030 & (IDCAS.NE.13).AND.(IDCAS.NE.14).AND.(IDCAS.NE.23)) RETURN
17031
17032 NUCAS = NCAS
17033 IF (NUCAS.EQ.-1) NUCAS = 2
17034
17035 IF (MODE.EQ.0) THEN
17036* scan spectator nucleons for nucleons being able to "absorb"
17037 NSPE = 0
17038 IDXSPE(1) = 0
17039 IDXSPE(2) = 0
17040 DO 1 I=1,NHKK
17041 IF ((ISTHKK(I).EQ.12+NUCAS).OR.(ISTHKK(I).EQ.14+NUCAS)) THEN
17042 NSPE = NSPE+1
17043 IDXSPE(NSPE) = I
17044 IDSPE(NSPE) = IDBAM(I)
17045 IF ((NSPE.EQ.1).AND.(IDCAS.EQ.2)) GOTO 2
17046 IF (NSPE.EQ.2) THEN
17047 IF ((IDCAS.EQ.14).AND.(IDSPE(1).EQ.8).AND.
17048 & (IDSPE(2).EQ.8)) THEN
17049* there is no pi-+n+n channel
17050 NSPE = 1
17051 GOTO 1
17052 ELSE
17053 GOTO 2
17054 ENDIF
17055 ENDIF
17056 ENDIF
17057 1 CONTINUE
17058
17059 2 CONTINUE
17060 ENDIF
17061* transform excited projectile nucleons (status=15) into proj. rest s.
17062 DO 3 I=1,NSPE
17063 DO 4 K=1,5
17064 PSPE(I,K) = PHKK(K,IDXSPE(I))
17065 4 CONTINUE
17066 3 CONTINUE
17067
17068* antiproton absorption
17069 IF ((IDCAS.EQ.2).AND.(NSPE.GE.1)) THEN
17070 DO 5 K=1,5
17071 PSPE1(K) = PSPE(1,K)
17072 5 CONTINUE
17073 CALL DT_HADRIN(IDCAS,PCAS,IDSPE(1),PSPE1,1,IREJ1)
17074 IF (IREJ1.NE.0) GOTO 9999
17075
17076* meson absorption
17077 ELSEIF (((IDCAS.EQ.13).OR.(IDCAS.EQ.14).OR.(IDCAS.EQ.23)
17078 & .OR.(IDCAS.EQ.16)).AND.(NSPE.GE.2)) THEN
17079 IF (IDCAS.EQ.14) THEN
17080* pi- absorption
17081 IDFSP(1) = 8
17082 IDFSP(2) = 8
17083 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) IDFSP(2) = 1
17084 ELSEIF (IDCAS.EQ.13) THEN
17085* pi+ absorption
17086 IDFSP(1) = 1
17087 IDFSP(2) = 1
17088 IF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) IDFSP(2) = 8
17089 ELSEIF (IDCAS.EQ.23) THEN
17090* pi0 absorption
17091 IDFSP(1) = IDSPE(1)
17092 IDFSP(2) = IDSPE(2)
17093 ELSEIF (IDCAS.EQ.16) THEN
17094* K- absorption
17095 R = DT_RNDM(PCAS)
17096 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) THEN
17097 IF (R.LT.ONETHI) THEN
17098 IDFSP(1) = 21
17099 IDFSP(2) = 8
17100 ELSEIF (R.LT.TWOTHI) THEN
17101 IDFSP(1) = 17
17102 IDFSP(2) = 1
17103 ELSE
17104 IDFSP(1) = 22
17105 IDFSP(2) = 1
17106 ENDIF
17107 ELSEIF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) THEN
17108 IDFSP(1) = 20
17109 IDFSP(2) = 8
17110 ELSE
17111 IF (R.LT.ONETHI) THEN
17112 IDFSP(1) = 20
17113 IDFSP(2) = 1
17114 ELSEIF (R.LT.TWOTHI) THEN
17115 IDFSP(1) = 17
17116 IDFSP(2) = 8
17117 ELSE
17118 IDFSP(1) = 22
17119 IDFSP(2) = 8
17120 ENDIF
17121 ENDIF
17122 ENDIF
17123* dump initial particles for energy-momentum cons. check
17124 IF (LEMCCK) THEN
17125 CALL DT_EVTEMC(PCAS(1),PCAS(2),PCAS(3),PCAS(4),1,IDUM,IDUM)
17126 CALL DT_EVTEMC(PSPE(1,1),PSPE(1,2),PSPE(1,3),PSPE(1,4),2,
17127 & IDUM,IDUM)
17128 CALL DT_EVTEMC(PSPE(2,1),PSPE(2,2),PSPE(2,3),PSPE(2,4),2,
17129 & IDUM,IDUM)
17130 ENDIF
17131* get Lorentz-parameter of 3 particle initial state
17132 DO 6 K=1,4
17133 PTOT3P(K) = PCAS(K)+PSPE(1,K)+PSPE(2,K)
17134 6 CONTINUE
17135 P3P = SQRT(PTOT3P(1)**2+PTOT3P(2)**2+PTOT3P(3)**2)
17136 AM3P = SQRT( (PTOT3P(4)-P3P)*(PTOT3P(4)+P3P) )
17137 DO 7 K=1,4
17138 BG3P(K) = PTOT3P(K)/MAX(AM3P,TINY10)
17139 7 CONTINUE
17140* 2-particle decay of the 3-particle compound system
17141 CALL DT_DTWOPD(AM3P,ECMF(1),ECMF(2),PCMF(1),PCMF(2),
17142 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
17143 & AAM(IDFSP(1)),AAM(IDFSP(2)))
17144 DO 8 I=1,2
17145 SDF = SQRT((ONE-CODF(I))*(ONE+CODF(I)))
17146 PX = PCMF(I)*COFF(I)*SDF
17147 PY = PCMF(I)*SIFF(I)*SDF
17148 PZ = PCMF(I)*CODF(I)
17149 CALL DT_DALTRA(BG3P(4),BG3P(1),BG3P(2),BG3P(3),PX,PY,PZ,
17150 & ECMF(I),PTOFSP,PFSP(1,I),PFSP(2,I),PFSP(3,I),
17151 & PFSP(4,I))
17152 PFSP(5,I) = SQRT( (PFSP(4,I)-PTOFSP)*(PFSP(4,I)+PTOFSP) )
17153* check consistency of kinematics
17154 IF (ABS(AAM(IDFSP(I))-PFSP(5,I)).GT.TINY5) THEN
17155 WRITE(LOUT,1001) IDFSP(I),AAM(IDFSP(I)),PFSP(5,I)
17156 1001 FORMAT(1X,'ABSORP: warning! inconsistent',
17157 & ' tree-particle kinematics',/,20X,'id: ',I3,
17158 & ' AAM = ',E10.4,' MFSP = ',E10.4)
17159 ENDIF
17160* dump final state particles for energy-momentum cons. check
17161 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17162 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17163 8 CONTINUE
17164 NFSP = 2
17165 IF (LEMCCK) THEN
17166 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,100,IREJ1)
17167 IF (IREJ1.NE.0) THEN
17168 WRITE(LOUT,*)'ABSORB: EMC ',AAM(IDFSP(1)),AAM(IDFSP(2)),
17169 & AM3P
17170 GOTO 9999
17171 ENDIF
17172 ENDIF
17173 ELSE
17174 IF (IOULEV(3).GT.0) WRITE(LOUT,1000) IDCAS,NSPE
17175 1000 FORMAT(1X,'ABSORP: warning! absorption for particle ',I3,
17176 & ' impossible',/,20X,'too few spectators (',I2,')')
17177 NSPE = 0
17178 ENDIF
17179
17180 RETURN
17181
17182 9999 CONTINUE
17183 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in ABSORP'
17184 IREJ = 1
17185 RETURN
17186 END
17187
17188*$ CREATE DT_HADRIN.FOR
17189*COPY DT_HADRIN
17190*
17191*===hadrin=============================================================*
17192*
17193 SUBROUTINE DT_HADRIN(IDPR,PPR,IDTA,PTA,MODE,IREJ)
17194
17195************************************************************************
17196* Interface to the HADRIN-routines for inelastic and elastic *
17197* scattering. *
17198* IDPR,PPR(5) identity, momentum of projectile *
17199* IDTA,PTA(5) identity, momentum of target *
17200* MODE = 1 inelastic interaction *
17201* = 2 elastic interaction *
17202* Revised version of the original FHAD. *
17203* This version dated 27.10.95 is written by S. Roesler *
17204************************************************************************
17205
17206 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17207 SAVE
17208 PARAMETER ( LINP = 10 ,
17209 & LOUT = 6 ,
17210 & LDAT = 9 )
17211 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,
17212 & TINY2=1.0D-2,TINY1=1.0D-1,ONE=1.0D0)
17213
17214 LOGICAL LCORR,LMSSG
17215
17216* flags for input different options
17217 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17218 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17219 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17220* final state after inc step
17221 PARAMETER (MAXFSP=10)
17222 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17223* particle properties (BAMJET index convention)
17224 CHARACTER*8 ANAME
17225 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17226 & IICH(210),IIBAR(210),K1(210),K2(210)
17227* output-common for DHADRI/ELHAIN
17228* final state from HADRIN interaction
17229 PARAMETER (MAXFIN=10)
17230 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
17231 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
17232
17233 DIMENSION PPR(5),PPR1(5),PTA(5),BGTA(4),
17234 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4),IMCORR(2)
17235
17236 DATA LMSSG /.TRUE./
17237
17238 IREJ = 0
17239 NFSP = 0
17240 KCORR = 0
17241 IMCORR(1) = 0
17242 IMCORR(2) = 0
17243 LCORR = .FALSE.
17244
17245* dump initial particles for energy-momentum cons. check
17246 IF (LEMCCK) THEN
17247 CALL DT_EVTEMC(PPR(1),PPR(2),PPR(3),PPR(4),1,IDUM,IDUM)
17248 CALL DT_EVTEMC(PTA(1),PTA(2),PTA(3),PTA(4),2,IDUM,IDUM)
17249 ENDIF
17250
17251 AMP2 = PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2
17252 AMT2 = PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2
17253 IF ((AMP2.LT.ZERO).OR.(AMT2.LT.ZERO).OR.
17254 & (ABS(AMP2-AAM(IDPR)**2).GT.TINY5).OR.
17255 & (ABS(AMT2-AAM(IDTA)**2).GT.TINY5)) THEN
17256 IF (LMSSG.AND.(IOULEV(3).GT.0))
17257 & WRITE(LOUT,1000) AMP2,AAM(IDPR)**2,AMT2,AAM(IDTA)**2
17258 1000 FORMAT(1X,'HADRIN: warning! inconsistent projectile/target',
17259 & ' mass',/,20X,'AMP2 = ',E12.4,', AAM(IDPR)**2 = ',
17260 & E12.4,/,20X,'AMT2 = ',E12.4,', AAM(IDTA)**2 = ',E12.4)
17261 LMSSG = .FALSE.
17262 LCORR = .TRUE.
17263 ENDIF
17264
17265* convert initial state particles into particles which can be
17266* handled by HADRIN
17267 IDHPR = IDPR
17268 IDHTA = IDTA
17269 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111).OR.LCORR) THEN
17270 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111)) IDHPR = 1
17271 DO 1 K=1,4
17272 P1IN(K) = PPR(K)
17273 P2IN(K) = PTA(K)
17274 1 CONTINUE
17275 XM1 = AAM(IDHPR)
17276 XM2 = AAM(IDHTA)
17277 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17278 IF (IREJ1.GT.0) THEN
17279 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17280 GOTO 9999
17281 ENDIF
17282 DO 2 K=1,4
17283 PPR(K) = P1OUT(K)
17284 PTA(K) = P2OUT(K)
17285 2 CONTINUE
17286 PPR(5) = SQRT(PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2)
17287 PTA(5) = SQRT(PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2)
17288 ENDIF
17289
17290* Lorentz-parameter for trafo into rest-system of target
17291 DO 3 K=1,4
17292 BGTA(K) = PTA(K)/PTA(5)
17293 3 CONTINUE
17294* transformation of projectile into rest-system of target
17295 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),PPR(1),PPR(2),
17296 & PPR(3),PPR(4),PPRTO1,PPR1(1),PPR1(2),PPR1(3),
17297 & PPR1(4))
17298
17299* direction cosines of projectile in target rest system
17300 CX = PPR1(1)/PPRTO1
17301 CY = PPR1(2)/PPRTO1
17302 CZ = PPR1(3)/PPRTO1
17303
17304* sample inelastic interaction
17305 IF (MODE.EQ.1) THEN
17306 CALL DT_DHADRI(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA)
17307 IF (IRH.EQ.1) GOTO 9998
17308* sample elastic interaction
17309 ELSEIF (MODE.EQ.2) THEN
17310 CALL DT_ELHAIN(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA,IREJ1)
17311 IF (IREJ1.NE.0) THEN
17312 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in HADRIN'
17313 GOTO 9999
17314 ENDIF
17315 IF (IRH.EQ.1) GOTO 9998
17316 ELSE
17317 WRITE(LOUT,1001) MODE,INTHAD
17318 1001 FORMAT(1X,'HADRIN: warning! inconsistent interaction mode',
17319 & I4,' (INTHAD =',I4,')')
17320 GOTO 9999
17321 ENDIF
17322
17323* transform final state particles back into Lab.
17324 DO 4 I=1,IRH
17325 NFSP = NFSP+1
17326 PX = CXRH(I)*PLRH(I)
17327 PY = CYRH(I)*PLRH(I)
17328 PZ = CZRH(I)*PLRH(I)
17329 CALL DT_DALTRA(BGTA(4),BGTA(1),BGTA(2),BGTA(3),
17330 & PX,PY,PZ,ELRH(I),PTOFSP,PFSP(1,NFSP),
17331 & PFSP(2,NFSP),PFSP(3,NFSP),PFSP(4,NFSP))
17332 IDFSP(NFSP) = ITRH(I)
17333 AMFSP2 = PFSP(4,NFSP)**2-PFSP(1,NFSP)**2-PFSP(2,NFSP)**2-
17334 & PFSP(3,NFSP)**2
17335 IF (AMFSP2.LT.-TINY3) THEN
17336 WRITE(LOUT,1002) IDFSP(NFSP),PFSP(1,NFSP),PFSP(2,NFSP),
17337 & PFSP(3,NFSP),PFSP(4,NFSP),AMFSP2
17338 1002 FORMAT(1X,'HADRIN: warning! final state particle (id = ',
17339 & I2,') with negative mass^2',/,1X,5E12.4)
17340 GOTO 9999
17341 ELSE
17342 PFSP(5,NFSP) = SQRT(ABS(AMFSP2))
17343 IF (ABS(PFSP(5,NFSP)-AAM(IDFSP(NFSP))).GT.TINY1) THEN
17344 WRITE(LOUT,1003) IDFSP(NFSP),AAM(IDFSP(NFSP)),
17345 & PFSP(5,NFSP)
17346 1003 FORMAT(1X,'HADRIN: warning! final state particle',
17347 & ' (id = ',I2,') with inconsistent mass',/,1X,
17348 & 2E12.4)
17349 KCORR = KCORR+1
17350 IF (KCORR.GT.2) GOTO 9999
17351 IMCORR(KCORR) = NFSP
17352 ENDIF
17353 ENDIF
17354* dump final state particles for energy-momentum cons. check
17355 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17356 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17357 4 CONTINUE
17358
17359* transform momenta on mass shell in case of inconsistencies in
17360* HADRIN
17361 IF (KCORR.GT.0) THEN
17362 IF (KCORR.EQ.2) THEN
17363 I1 = IMCORR(1)
17364 I2 = IMCORR(2)
17365 ELSE
17366 IF (IMCORR(1).EQ.1) THEN
17367 I1 = 1
17368 I2 = 2
17369 ELSE
17370 I1 = 1
17371 I2 = IMCORR(1)
17372 ENDIF
17373 ENDIF
17374 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I1),PFSP(2,I1),
17375 & PFSP(3,I1),PFSP(4,I1),2,IDUM,IDUM)
17376 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I2),PFSP(2,I2),
17377 & PFSP(3,I2),PFSP(4,I2),2,IDUM,IDUM)
17378 DO 5 K=1,4
17379 P1IN(K) = PFSP(K,I1)
17380 P2IN(K) = PFSP(K,I2)
17381 5 CONTINUE
17382 XM1 = AAM(IDFSP(I1))
17383 XM2 = AAM(IDFSP(I2))
17384 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17385 IF (IREJ1.GT.0) THEN
17386 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17387C GOTO 9999
17388 ENDIF
17389 DO 6 K=1,4
17390 PFSP(K,I1) = P1OUT(K)
17391 PFSP(K,I2) = P2OUT(K)
17392 6 CONTINUE
17393 PFSP(5,I1) = SQRT(PFSP(4,I1)**2-PFSP(1,I1)**2
17394 & -PFSP(2,I1)**2-PFSP(3,I1)**2)
17395 PFSP(5,I2) = SQRT(PFSP(4,I2)**2-PFSP(1,I2)**2
17396 & -PFSP(2,I2)**2-PFSP(3,I2)**2)
17397* dump final state particles for energy-momentum cons. check
17398 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I1),-PFSP(2,I1),
17399 & -PFSP(3,I1),-PFSP(4,I1),2,IDUM,IDUM)
17400 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I2),-PFSP(2,I2),
17401 & -PFSP(3,I2),-PFSP(4,I2),2,IDUM,IDUM)
17402 ENDIF
17403
17404* check energy-momentum conservation
17405 IF (LEMCCK) THEN
17406 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,102,IREJ1)
17407 IF (IREJ1.NE.0) GOTO 9999
17408 ENDIF
17409
17410 RETURN
17411
17412 9998 CONTINUE
17413 IREJ = 2
17414 RETURN
17415
17416 9999 CONTINUE
17417 IREJ = 1
17418 RETURN
17419 END
17420
17421*$ CREATE DT_HADCOL.FOR
17422*COPY DT_HADCOL
17423*
17424*===hadcol=============================================================*
17425*
17426 SUBROUTINE DT_HADCOL(IDPROJ,PPN,IDXTAR,IREJ)
17427
17428************************************************************************
17429* Interface to the HADRIN-routines for inelastic and elastic *
17430* scattering. This subroutine samples hadron-nucleus interactions *
17431* below DPM-threshold. *
17432* IDPROJ BAMJET-index of projectile hadron *
17433* PPN projectile momentum in target rest frame *
17434* IDXTAR DTEVT1-index of target nucleon undergoing *
17435* interaction with projectile hadron *
17436* This subroutine replaces HADHAD. *
17437* This version dated 5.5.95 is written by S. Roesler *
17438************************************************************************
17439
17440 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17441 SAVE
17442 PARAMETER ( LINP = 10 ,
17443 & LOUT = 6 ,
17444 & LDAT = 9 )
17445 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0)
17446
17447 LOGICAL LSTART
17448
17449* event history
17450 PARAMETER (NMXHKK=200000)
17451 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17452 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17453 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17454* extended event history
17455 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17456 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17457 & IHIST(2,NMXHKK)
17458* nuclear potential
17459 LOGICAL LFERMI
17460 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17461 & EBINDP(2),EBINDN(2),EPOT(2,210),
17462 & ETACOU(2),ICOUL,LFERMI
17463* interface HADRIN-DPM
17464 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
17465* parameter for intranuclear cascade
17466 LOGICAL LPAULI
17467 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
17468* final state after inc step
17469 PARAMETER (MAXFSP=10)
17470 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17471* particle properties (BAMJET index convention)
17472 CHARACTER*8 ANAME
17473 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17474 & IICH(210),IIBAR(210),K1(210),K2(210)
17475
17476 DIMENSION PPROJ(5),PNUC(5)
17477
17478 DATA LSTART /.TRUE./
17479
17480 IREJ = 0
17481
17482 NPOINT(1) = NHKK+1
17483
17484 TAUSAV = TAUFOR
17485**sr 6/9/01 commented
17486C TAUFOR = TAUFOR/2.0D0
17487**
17488 IF (LSTART) THEN
17489 WRITE(LOUT,1000)
17490 1000 FORMAT(/,1X,'HADCOL: Scattering handled by HADRIN')
17491 WRITE(LOUT,1001) TAUFOR
17492 1001 FORMAT(/,1X,'HADCOL: Formation zone parameter set to ',
17493 & F5.1,' fm/c')
17494 LSTART = .FALSE.
17495 ENDIF
17496
17497 IDNUC = IDBAM(IDXTAR)
17498 IDNUC1 = IDT_MCHAD(IDNUC)
17499 IDPRO1 = IDT_MCHAD(IDPROJ)
17500
17501 IF ((INTHAD.EQ.1).OR.(INTHAD.EQ.2)) THEN
17502 IPROC = INTHAD
17503 ELSE
17504**
17505C CALL DT_SIHNIN(IDPRO1,IDNUC1,PPN,SIGIN)
17506C CALL DT_SIHNEL(IDPRO1,IDNUC1,PPN,SIGEL)
17507 DUMZER = ZERO
17508 CALL DT_XSHN(IDPRO1,IDNUC1,PPN,DUMZER,SIGTOT,SIGEL)
17509 SIGIN = SIGTOT-SIGEL
17510C SIGTOT = SIGIN+SIGEL
17511**
17512 IPROC = 1
17513 IF (DT_RNDM(SIGIN).LT.SIGEL/SIGTOT) IPROC = 2
17514 ENDIF
17515
17516 PPROJ(1) = ZERO
17517 PPROJ(2) = ZERO
17518 PPROJ(3) = PPN
17519 PPROJ(5) = AAM(IDPROJ)
17520 PPROJ(4) = SQRT(PPROJ(5)**2+PPROJ(3)**2)
17521 DO 1 K=1,5
17522 PNUC(K) = PHKK(K,IDXTAR)
17523 1 CONTINUE
17524
17525 ILOOP = 0
17526 2 CONTINUE
17527 ILOOP = ILOOP+1
17528 IF (ILOOP.GT.100) GOTO 9999
17529
17530 CALL DT_HADRIN(IDPROJ,PPROJ,IDNUC,PNUC,IPROC,IREJ1)
17531 IF (IREJ1.EQ.1) GOTO 9999
17532
17533 IF (IREJ1.GT.1) THEN
17534* no interaction possible
17535* require Pauli blocking
17536 IF ((IDPROJ.EQ.1).AND.(PPROJ(4).LE.PFERMP(2)+PPROJ(5))) GOTO 2
17537 IF ((IDPROJ.EQ.8).AND.(PPROJ(4).LE.PFERMN(2)+PPROJ(5))) GOTO 2
17538 IF ((IIBAR(IDPROJ).NE.1).AND.
17539 & (PPROJ(4).LE.EPOT(2,IDPROJ)+PPROJ(5))) GOTO 2
17540* store incoming particle as final state particle
17541 CALL DT_LTNUC(PPROJ(3),PPROJ(4),PCMS,ECMS,3)
17542 CALL DT_EVTPUT(1,IDPROJ,1,0,PPROJ(1),PPROJ(2),PCMS,ECMS,0,0,0)
17543 NPOINT(4) = NHKK
17544 ELSE
17545* require Pauli blocking for final state nucleons
17546 DO 4 I=1,NFSP
17547 IF ((IDFSP(I).EQ.1).AND.
17548 & (PFSP(4,I).LE.PFERMP(2)+AAM(IDFSP(I)))) GOTO 2
17549 IF ((IDFSP(I).EQ.8).AND.
17550 & (PFSP(4,I).LE.PFERMN(2)+AAM(IDFSP(I)))) GOTO 2
17551 IF ((IIBAR(IDFSP(I)).NE.1).AND.
17552 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I))))GOTO 2
17553 4 CONTINUE
17554* store final state particles
17555 DO 5 I=1,NFSP
17556 IST = 1
17557 IF ((IIBAR(IDFSP(I)).EQ.1).AND.
17558 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I)))) IST = 16
17559 IDHAD = IDT_IPDGHA(IDFSP(I))
17560 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PCMS,ECMS,3)
17561 CALL DT_EVTPUT(IST,IDHAD,1,IDXTAR,PFSP(1,I),PFSP(2,I),
17562 & PCMS,ECMS,0,0,0)
17563 IF (I.EQ.1) NPOINT(4) = NHKK
17564 VHKK(1,NHKK) = 0.5D0*(VHKK(1,1)+VHKK(1,IDXTAR))
17565 VHKK(2,NHKK) = 0.5D0*(VHKK(2,1)+VHKK(2,IDXTAR))
17566 VHKK(3,NHKK) = VHKK(3,IDXTAR)
17567 VHKK(4,NHKK) = VHKK(4,IDXTAR)
17568 WHKK(1,NHKK) = 0.5D0*(WHKK(1,1)+WHKK(1,IDXTAR))
17569 WHKK(2,NHKK) = 0.5D0*(WHKK(2,1)+WHKK(2,IDXTAR))
17570 WHKK(3,NHKK) = WHKK(3,1)
17571 WHKK(4,NHKK) = WHKK(4,1)
17572 5 CONTINUE
17573 ENDIF
17574 TAUFOR = TAUSAV
17575 RETURN
17576
17577 9999 CONTINUE
17578 IREJ = 1
17579 TAUFOR = TAUSAV
17580 RETURN
17581 END
17582
17583*$ CREATE DT_GETEMU.FOR
17584*COPY DT_GETEMU
17585*
17586*===getemu=============================================================*
17587*
17588 SUBROUTINE DT_GETEMU(IT,ITZ,KKMAT,MODE)
17589
17590************************************************************************
17591* Sampling of emulsion component to be considered as target-nucleus. *
17592* This version dated 6.5.95 is written by S. Roesler. *
17593************************************************************************
17594
17595 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17596 SAVE
17597 PARAMETER ( LINP = 10 ,
17598 & LOUT = 6 ,
17599 & LDAT = 9 )
17600 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
17601
17602 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
17603* emulsion treatment
17604 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
17605 & NCOMPO,IEMUL
17606* Glauber formalism: flags and parameters for statistics
17607 LOGICAL LPROD
17608 CHARACTER*8 CGLB
17609 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
17610
17611 IF (MODE.EQ.0) THEN
17612 SUMFRA = ZERO
17613 RR = DT_RNDM(SUMFRA)
17614 IT = 0
17615 ITZ = 0
17616 DO 1 ICOMP=1,NCOMPO
17617 SUMFRA = SUMFRA+EMUFRA(ICOMP)
17618 IF (SUMFRA.GT.RR) THEN
17619 IT = IEMUMA(ICOMP)
17620 ITZ = IEMUCH(ICOMP)
17621 KKMAT = ICOMP
17622 GOTO 2
17623 ENDIF
17624 1 CONTINUE
17625 2 CONTINUE
17626 IF (IT.LE.0) THEN
17627 WRITE(LOUT,'(1X,A,E12.3)')
17628 & 'Warning! norm. failure within emulsion fractions',
17629 & SUMFRA
17630 STOP
17631 ENDIF
17632 ELSEIF (MODE.EQ.1) THEN
17633 NDIFF = 10000
17634 DO 3 I=1,NCOMPO
17635 IDIFF = ABS(IT-IEMUMA(I))
17636 IF (IDIFF.LT.NDIFF) THEN
17637 KKMAT = I
17638 NDIFF = IDIFF
17639 ENDIF
17640 3 CONTINUE
17641 ELSE
17642 STOP 'DT_GETEMU'
17643 ENDIF
17644
17645* bypass for variable projectile/target/energy runs: the correct
17646* Glauber data will be always loaded on kkmat=1
17647 IF (IOGLB.EQ.100) THEN
17648 KKMAT = 1
17649 ENDIF
17650
17651 RETURN
17652 END
17653
17654*$ CREATE DT_NCLPOT.FOR
17655*COPY DT_NCLPOT
17656*
17657*===nclpot=============================================================*
17658*
17659 SUBROUTINE DT_NCLPOT(IPZ,IP,ITZ,IT,AFERP,AFERT,MODE)
17660
17661************************************************************************
17662* Calculation of Coulomb and nuclear potential for a given configurat. *
17663* IPZ, IP charge/mass number of proj. *
17664* ITZ, IT charge/mass number of targ. *
17665* AFERP,AFERT factors modifying proj./target pot. *
17666* if =0, FERMOD is used *
17667* MODE = 0 calculation of binding energy *
17668* = 1 pre-calculated binding energy is used *
17669* This version dated 16.11.95 is written by S. Roesler. *
17670* *
17671* Last change 28.12.2006 by S. Roesler. *
17672************************************************************************
17673
17674 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17675 SAVE
17676 PARAMETER ( LINP = 10 ,
17677 & LOUT = 6 ,
17678 & LDAT = 9 )
17679 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
17680 & TINY10=1.0D-10)
17681
17682 LOGICAL LSTART
17683
17684* particle properties (BAMJET index convention)
17685 CHARACTER*8 ANAME
17686 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17687 & IICH(210),IIBAR(210),K1(210),K2(210)
17688* nuclear potential
17689 LOGICAL LFERMI
17690 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17691 & EBINDP(2),EBINDN(2),EPOT(2,210),
17692 & ETACOU(2),ICOUL,LFERMI
17693
17694 DIMENSION IDXPOT(14)
17695* ap an lam alam sig- sig+ sig0 tet0 tet- asig-
17696 DATA IDXPOT / 2, 9, 17, 18, 20, 21, 22, 97, 98, 99,
17697* asig0 asig+ atet0 atet+
17698 & 100, 101, 102, 103/
17699
17700 DATA AN /0.4D0/
17701 DATA LSTART /.TRUE./
17702
17703 IF (MODE.EQ.0) THEN
17704 EBINDP(1) = ZERO
17705 EBINDN(1) = ZERO
17706 EBINDP(2) = ZERO
17707 EBINDN(2) = ZERO
17708 ENDIF
17709 AIP = DBLE(IP)
17710 AIPZ = DBLE(IPZ)
17711 AIT = DBLE(IT)
17712 AITZ = DBLE(ITZ)
17713
17714 FERMIP = AFERP
17715 IF (AFERP.LE.ZERO) FERMIP = FERMOD
17716 FERMIT = AFERT
17717 IF (AFERT.LE.ZERO) FERMIT = FERMOD
17718
17719* Fermi momenta and binding energy for projectile
17720 IF ((IP.GT.1).AND.LFERMI) THEN
17721 IF (MODE.EQ.0) THEN
17722C EBINDP(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ-1)
17723C EBINDN(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ)
17724 BIP = AIP -ONE
17725 BIPZ = AIPZ-ONE
17726 EBINDP(1) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIP,BIPZ)
17727 & -DT_ENERGY(AIP,AIPZ))
17728 IF (AIP.LE.AIPZ) THEN
17729 EBINDN(1) = EBINDP(1)
17730 WRITE(LOUT,*) ' DT_NCLPOT: AIP.LE.AIPZ (',AIP,AIPZ,')'
17731 ELSE
17732 EBINDN(1) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17733 & +DT_ENERGY(BIP,AIPZ)-DT_ENERGY(AIP,AIPZ))
17734 ENDIF
17735 ENDIF
17736 PFERMP(1) = FERMIP*AN*(AIPZ/AIP)**0.333333D0
17737 PFERMN(1) = FERMIP*AN*((AIP-AIPZ)/AIP)**0.33333D0
17738 ELSE
17739 PFERMP(1) = ZERO
17740 PFERMN(1) = ZERO
17741 ENDIF
17742* effective nuclear potential for projectile
17743C EPOT(1,1) = PFERMP(1)**2/(2.0D0*AAM(1)) + EBINDP(1)
17744C EPOT(1,8) = PFERMN(1)**2/(2.0D0*AAM(8)) + EBINDN(1)
17745 EPOT(1,1) = SQRT(PFERMP(1)**2+AAM(1)**2) -AAM(1) + EBINDP(1)
17746 EPOT(1,8) = SQRT(PFERMN(1)**2+AAM(8)**2) -AAM(8) + EBINDN(1)
17747
17748* Fermi momenta and binding energy for target
17749 IF ((IT.GT.1).AND.LFERMI) THEN
17750 IF (MODE.EQ.0) THEN
17751C EBINDP(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ-1)
17752C EBINDN(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ)
17753 BIT = AIT -ONE
17754 BITZ = AITZ-ONE
17755
17756 EBINDP(2) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIT,BITZ)
17757 & -DT_ENERGY(AIT,AITZ))
17758
17759 IF (AIT.LE.AITZ) THEN
17760 EBINDN(2) = EBINDP(2)
17761 WRITE(LOUT,*) ' DT_NCLPOT: AIT.LE.AIPT (',AIT,AIPT,')'
17762 ELSE
17763
17764 EBINDN(2) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17765 & +DT_ENERGY(BIT,AITZ)-DT_ENERGY(AIT,AITZ))
17766
17767 ENDIF
17768 ENDIF
17769 PFERMP(2) = FERMIT*AN*(AITZ/AIT)**0.333333D0
17770 PFERMN(2) = FERMIT*AN*((AIT-AITZ)/AIT)**0.33333D0
17771 ELSE
17772 PFERMP(2) = ZERO
17773 PFERMN(2) = ZERO
17774 ENDIF
17775* effective nuclear potential for target
17776C EPOT(2,1) = PFERMP(2)**2/(2.0D0*AAM(1)) + EBINDP(2)
17777C EPOT(2,8) = PFERMN(2)**2/(2.0D0*AAM(8)) + EBINDN(2)
17778 EPOT(2,1) = SQRT(PFERMP(2)**2+AAM(1)**2) -AAM(1) + EBINDP(2)
17779 EPOT(2,8) = SQRT(PFERMN(2)**2+AAM(8)**2) -AAM(8) + EBINDN(2)
17780
17781 DO 2 I=1,14
17782 EPOT(1,IDXPOT(I)) = EPOT(1,8)
17783 EPOT(2,IDXPOT(I)) = EPOT(2,8)
17784 2 CONTINUE
17785
17786* Coulomb energy
17787 ETACOU(1) = ZERO
17788 ETACOU(2) = ZERO
17789 IF (ICOUL.EQ.1) THEN
17790 IF (IP.GT.1)
17791 & ETACOU(1) = 0.001116D0*AIPZ/(1.0D0+AIP**0.333D0)
17792 IF (IT.GT.1)
17793 & ETACOU(2) = 0.001116D0*AITZ/(1.0D0+AIT**0.333D0)
17794 ENDIF
17795
17796 IF (LSTART) THEN
17797 WRITE(LOUT,1000) IP,IPZ,IT,ITZ,EBINDP,EBINDN,
17798 & EPOT(1,1)-EBINDP(1),EPOT(2,1)-EBINDP(2),
17799 & EPOT(1,8)-EBINDN(1),EPOT(2,8)-EBINDN(2),
17800 & FERMOD,ETACOU
17801 1000 FORMAT(/,/,1X,'NCLPOT: quantities for inclusion of nuclear'
17802 & ,' effects',/,12X,'---------------------------',
17803 & '----------------',/,/,38X,'projectile',
17804 & ' target',/,/,1X,'Mass number / charge',
17805 & 17X,I3,' /',I3,6X,I3,' /',I3,/,1X,'Binding energy -',
17806 & ' proton (GeV) ',2E14.4,/,17X,'- neutron (GeV)'
17807 & ,1X,2E14.4,/,1X,'Fermi-potential - proton (GeV)',
17808 & 1X,2E14.4,/,17X,'- neutron (GeV) ',2E14.4,/,/,
17809 & 1X,'Scale factor for Fermi-momentum ',F4.2,/,
17810 & /,1X,'Coulomb-energy ',2(E14.4,' GeV '),/,/)
17811 LSTART = .FALSE.
17812 ENDIF
17813
17814 RETURN
17815 END
17816
17817*$ CREATE DT_RESNCL.FOR
17818*COPY DT_RESNCL
17819*
17820*===resncl=============================================================*
17821*
17822 SUBROUTINE DT_RESNCL(EPN,NLOOP,MODE)
17823
17824************************************************************************
17825* Treatment of residual nuclei and nuclear effects. *
17826* MODE = 1 initializations *
17827* = 2 treatment of final state *
17828* This version dated 16.11.95 is written by S. Roesler. *
17829* *
17830* Last change 05.01.2007 by S. Roesler. *
17831************************************************************************
17832
17833 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17834 SAVE
17835 PARAMETER ( LINP = 10 ,
17836 & LOUT = 6 ,
17837 & LDAT = 9 )
17838 PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,TINY3=1.0D-3,
17839 & TINY2=1.0D-2,TINY1=1.0D-1,TINY4=1.0D-4,TINY10=1.0D-10,
17840 & ONETHI=ONE/THREE)
17841 PARAMETER (AMUAMU = 0.93149432D0,
17842 & FM2MM = 1.0D-12,
17843 & RNUCLE = 1.12D0)
17844 PARAMETER ( EMVGEV = 1.0 D-03 )
17845 PARAMETER ( AMUGEV = 0.93149432 D+00 )
17846 PARAMETER ( AMPRTN = 0.93827231 D+00 )
17847 PARAMETER ( AMNTRN = 0.93956563 D+00 )
17848 PARAMETER ( AMELCT = 0.51099906 D-03 )
17849 PARAMETER ( HLFHLF = 0.5D+00 )
17850 PARAMETER ( FERTHO = 14.33 D-09 )
17851 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
17852 PARAMETER ( AMUNMU = HLFHLF * AMELCT - BEXC12 / 12.D+00 )
17853 PARAMETER ( AMUC12 = AMUGEV - AMUNMU )
17854
17855* event history
17856 PARAMETER (NMXHKK=200000)
17857 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17858 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17859 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17860* extended event history
17861 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17862 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17863 & IHIST(2,NMXHKK)
17864* particle properties (BAMJET index convention)
17865 CHARACTER*8 ANAME
17866 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17867 & IICH(210),IIBAR(210),K1(210),K2(210)
17868* flags for input different options
17869 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17870 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17871 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17872* nuclear potential
17873 LOGICAL LFERMI
17874 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17875 & EBINDP(2),EBINDN(2),EPOT(2,210),
17876 & ETACOU(2),ICOUL,LFERMI
17877* properties of interacting particles
17878 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
17879* properties of photon/lepton projectiles
17880 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
17881* Lorentz-parameters of the current interaction
17882 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
17883 & UMO,PPCM,EPROJ,PPROJ
17884* treatment of residual nuclei: wounded nucleons
17885 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
17886* treatment of residual nuclei: 4-momenta
17887 LOGICAL LRCLPR,LRCLTA
17888 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
17889 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
17890
17891 DIMENSION PFSP(4),PSEC(4),PSEC0(4)
17892 DIMENSION PMOMB(5000),IDXB(5000),PMOMM(10000),IDXM(10000),
17893 & IDXCOR(15000),IDXOTH(NMXHKK)
17894
17895 GOTO (1,2) MODE
17896
17897*------- initializations
17898 1 CONTINUE
17899
17900* initialize arrays for residual nuclei
17901 DO 10 K=1,5
17902 IF (K.LE.4) THEN
17903 PFSP(K) = ZERO
17904 ENDIF
17905 PINIPR(K) = ZERO
17906 PINITA(K) = ZERO
17907 PRCLPR(K) = ZERO
17908 PRCLTA(K) = ZERO
17909 TRCLPR(K) = ZERO
17910 TRCLTA(K) = ZERO
17911 10 CONTINUE
17912 SCPOT = ONE
17913 NLOOP = 0
17914
17915* correction of projectile 4-momentum for effective target pot.
17916* and Coulomb-energy (in case of hadron-nucleus interaction only)
17917 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
17918 EPNI = EPN
17919* Coulomb-energy:
17920* positively charged hadron - check energy for Coloumb pot.
17921 IF (IICH(IJPROJ).EQ.1) THEN
17922 THRESH = ETACOU(2)+AAM(IJPROJ)
17923 IF (EPNI.LE.THRESH) THEN
17924 WRITE(LOUT,1000)
17925 1000 FORMAT(/,1X,'KKINC: WARNING! projectile energy',
17926 & ' below Coulomb threshold - event rejected',/)
17927 ISTHKK(1) = 1
17928 RETURN
17929 ENDIF
17930* negatively charged hadron - increase energy by Coulomb energy
17931 ELSEIF (IICH(IJPROJ).EQ.-1) THEN
17932 EPNI = EPNI+ETACOU(2)
17933 ENDIF
17934 IF ((IJPROJ.EQ.1).OR.(IJPROJ.EQ.8)) THEN
17935* Effective target potential
17936*sr 6.6. binding energy only (to avoid negative exc. energies)
17937C EPNI = EPNI+EPOT(2,IJPROJ)
17938 EBIPOT = EBINDP(2)
17939 IF ((IJPROJ.NE.1).AND.(ABS(EPOT(2,IJPROJ)).GT.5.0D-3))
17940 & EBIPOT = EBINDN(2)
17941 EPNI = EPNI+ABS(EBIPOT)
17942* re-initialization of DTLTRA
17943 DUM1 = ZERO
17944 DUM2 = ZERO
17945 CALL DT_LTINI(IJPROJ,IJTARG,EPNI,DUM1,DUM2,0)
17946 ENDIF
17947 ENDIF
17948
17949* projectile in n-n cms
17950 IF ((IP.LE.1).AND.(IT.GT.1)) THEN
17951 PMASS1 = AAM(IJPROJ)
17952C* VDM assumption
17953C IF (IJPROJ.EQ.7) PMASS1 = AAM(33)
17954 IF (IJPROJ.EQ.7) PMASS1 = AAM(IJPROJ)-SQRT(VIRT)
17955 PMASS2 = AAM(1)
17956 PM1 = SIGN(PMASS1**2,PMASS1)
17957 PM2 = SIGN(PMASS2**2,PMASS2)
17958 PINIPR(4) = (UMO**2-PM2+PM1)/(TWO*UMO)
17959 PINIPR(5) = PMASS1
17960 IF (PMASS1.GT.ZERO) THEN
17961 PINIPR(3) = SQRT((PINIPR(4)-PINIPR(5))
17962 & *(PINIPR(4)+PINIPR(5)))
17963 ELSE
17964 PINIPR(3) = SQRT(PINIPR(4)**2-PM1)
17965 ENDIF
17966 AIT = DBLE(IT)
17967 AITZ = DBLE(ITZ)
17968 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
17969 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
17970 ELSEIF ((IP.GT.1).AND.(IT.LE.1)) THEN
17971 PMASS1 = AAM(1)
17972 PMASS2 = AAM(IJTARG)
17973 PM1 = SIGN(PMASS1**2,PMASS1)
17974 PM2 = SIGN(PMASS2**2,PMASS2)
17975 PINITA(4) = (UMO**2-PM1+PM2)/(TWO*UMO)
17976 PINITA(5) = PMASS2
17977 PINITA(3) = -SQRT((PINITA(4)-PINITA(5))
17978 & *(PINITA(4)+PINITA(5)))
17979 AIP = DBLE(IP)
17980 AIPZ = DBLE(IPZ)
17981 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
17982 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
17983 ELSEIF ((IP.GT.1).AND.(IT.GT.1)) THEN
17984 AIP = DBLE(IP)
17985 AIPZ = DBLE(IPZ)
17986 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
17987 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
17988 AIT = DBLE(IT)
17989 AITZ = DBLE(ITZ)
17990 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
17991 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
17992 ENDIF
17993
17994 RETURN
17995
17996*------- treatment of final state
17997 2 CONTINUE
17998
17999 NLOOP = NLOOP+1
18000 IF (NLOOP.GT.1) SCPOT = 0.10D0
18001C WRITE(LOUT,*) 'event ',NEVHKK,NLOOP,SCPOT
18002
18003 JPW = NPW
18004 JPCW = NPCW
18005 JTW = NTW
18006 JTCW = NTCW
18007 DO 40 K=1,4
18008 PFSP(K) = ZERO
18009 40 CONTINUE
18010
18011 NOB = 0
18012 NOM = 0
18013 DO 900 I=NPOINT(4),NHKK
18014 IDXOTH(I) = -1
18015 IF (ISTHKK(I).EQ.1) THEN
18016 IF (IDBAM(I).EQ.7) GOTO 900
18017 IPOT = 0
18018 IOTHER = 0
18019* particle moving into forward direction
18020 IF (PHKK(3,I).GE.ZERO) THEN
18021* most likely to be effected by projectile potential
18022 IPOT = 1
18023* there is no projectile nucleus, try target
18024 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) THEN
18025 IPOT = 2
18026 IF (IP.GT.1) IOTHER = 1
18027* there is no target nucleus --> skip
18028 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) GOTO 900
18029 ENDIF
18030* particle moving into backward direction
18031 ELSE
18032* most likely to be effected by target potential
18033 IPOT = 2
18034* there is no target nucleus, try projectile
18035 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) THEN
18036 IPOT = 1
18037 IF (IT.GT.1) IOTHER = 1
18038* there is no projectile nucleus --> skip
18039 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) GOTO 900
18040 ENDIF
18041 ENDIF
18042 IFLG = -IPOT
18043* nobam=3: particle is in overlap-region or neither inside proj. nor target
18044* =1: particle is not in overlap-region AND is inside target (2)
18045* =2: particle is not in overlap-region AND is inside projectile (1)
18046* flag particles which are inside the nucleus ipot but not in its
18047* overlap region
18048 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) IFLG = IPOT
18049 IF (IDBAM(I).NE.0) THEN
18050* baryons: keep all nucleons and all others where flag is set
18051 IF (IIBAR(IDBAM(I)).NE.0) THEN
18052 IF ((IDBAM(I).EQ.1).OR.(IDBAM(I).EQ.8).OR.(IFLG.GT.0))
18053 & THEN
18054 NOB = NOB+1
18055 PMOMB(NOB) = PHKK(3,I)
18056 IDXB(NOB) = SIGN(10000000*IABS(IFLG)
18057 & +1000000*IOTHER+I,IFLG)
18058 ENDIF
18059* mesons: keep only those mesons where flag is set
18060 ELSE
18061 IF (IFLG.GT.0) THEN
18062 NOM = NOM+1
18063 PMOMM(NOM) = PHKK(3,I)
18064 IDXM(NOM) = 10000000*IFLG+1000000*IOTHER+I
18065 ENDIF
18066 ENDIF
18067 ENDIF
18068 ENDIF
18069 900 CONTINUE
18070*
18071* sort particles in the arrays according to increasing long. momentum
18072 CALL DT_SORT1(PMOMB,IDXB,NOB,1,NOB,1)
18073 CALL DT_SORT1(PMOMM,IDXM,NOM,1,NOM,1)
18074*
18075* shuffle indices into one and the same array according to the later
18076* sequence of correction
18077 NCOR = 0
18078 IF (IT.GT.1) THEN
18079 DO 910 I=1,NOB
18080 IF (PMOMB(I).GT.ZERO) GOTO 911
18081 NCOR = NCOR+1
18082 IDXCOR(NCOR) = IDXB(I)
18083 910 CONTINUE
18084 911 CONTINUE
18085 IF (IP.GT.1) THEN
18086 DO 912 J=1,NOB
18087 I = NOB+1-J
18088 IF (PMOMB(I).LT.ZERO) GOTO 913
18089 NCOR = NCOR+1
18090 IDXCOR(NCOR) = IDXB(I)
18091 912 CONTINUE
18092 913 CONTINUE
18093 ELSE
18094 DO 914 I=1,NOB
18095 IF (PMOMB(I).GT.ZERO) THEN
18096 NCOR = NCOR+1
18097 IDXCOR(NCOR) = IDXB(I)
18098 ENDIF
18099 914 CONTINUE
18100 ENDIF
18101 ELSE
18102 DO 915 J=1,NOB
18103 I = NOB+1-J
18104 NCOR = NCOR+1
18105 IDXCOR(NCOR) = IDXB(I)
18106 915 CONTINUE
18107 ENDIF
18108 DO 925 I=1,NOM
18109 IF (PMOMM(I).GT.ZERO) GOTO 926
18110 NCOR = NCOR+1
18111 IDXCOR(NCOR) = IDXM(I)
18112 925 CONTINUE
18113 926 CONTINUE
18114 DO 927 J=1,NOM
18115 I = NOM+1-J
18116 IF (PMOMM(I).LT.ZERO) GOTO 928
18117 NCOR = NCOR+1
18118 IDXCOR(NCOR) = IDXM(I)
18119 927 CONTINUE
18120 928 CONTINUE
18121*
18122C IF (NEVHKK.EQ.484) THEN
18123C WRITE(LOUT,9000) JPCW,JPW-JPCW,JTCW,JTW-JTCW
18124C 9000 FORMAT(1X,'wounded nucleons (proj.-p,n targ.-p,n)',/,4I10)
18125C WRITE(LOUT,9001) NOB,NOM,NCOR
18126C 9001 FORMAT(1X,'produced particles (baryons,mesons,all)',3I10)
18127C WRITE(LOUT,'(/,A)') ' baryons '
18128C DO 950 I=1,NOB
18129CC J = IABS(IDXB(I))
18130CC INDEX = J-IABS(J/10000000)*10000000
18131C IPOT = IABS(IDXB(I))/10000000
18132C IOTHER = IABS(IDXB(I))/1000000-IPOT*10
18133C INDEX = IABS(IDXB(I))-IPOT*10000000-IOTHER*1000000
18134C WRITE(LOUT,9002) I,INDEX,IDXB(I),IDBAM(INDEX),PMOMB(I)
18135C 950 CONTINUE
18136C WRITE(LOUT,'(/,A)') ' mesons '
18137C DO 951 I=1,NOM
18138CC INDEX = IDXM(I)-IABS(IDXM(I)/10000000)*10000000
18139C IPOT = IABS(IDXM(I))/10000000
18140C IOTHER = IABS(IDXM(I))/1000000-IPOT*10
18141C INDEX = IABS(IDXM(I))-IPOT*10000000-IOTHER*1000000
18142C WRITE(LOUT,9002) I,INDEX,IDXM(I),IDBAM(INDEX),PMOMM(I)
18143C 951 CONTINUE
18144C 9002 FORMAT(1X,4I14,E14.5)
18145C WRITE(LOUT,'(/,A)') ' all '
18146C DO 952 I=1,NCOR
18147CC J = IABS(IDXCOR(I))
18148CC INDEX = J-IABS(J/10000000)*10000000
18149CC IPOT = IABS(IDXCOR(I))/10000000
18150C IOTHER = IABS(IDXCOR(I))/1000000-IPOT*10
18151C INDEX = IABS(IDXCOR(I))-IPOT*10000000-IOTHER*1000000
18152C WRITE(LOUT,9003) I,INDEX,IDXCOR(I),IDBAM(INDEX)
18153C 952 CONTINUE
18154C 9003 FORMAT(1X,4I14)
18155C ENDIF
18156*
18157 DO 20 ICOR=1,NCOR
18158 IPOT = IABS(IDXCOR(ICOR))/10000000
18159 IOTHER = IABS(IDXCOR(ICOR))/1000000-IPOT*10
18160 I = IABS(IDXCOR(ICOR))-IPOT*10000000-IOTHER*1000000
18161 IDXOTH(I) = 1
18162
18163 IDSEC = IDBAM(I)
18164
18165* reduction of particle momentum by corresponding nuclear potential
18166* (this applies only if Fermi-momenta are requested)
18167
18168 IF (LFERMI) THEN
18169
18170* Lorentz-transformation into the rest system of the selected nucleus
18171 IMODE = -IPOT-1
18172 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18173 & PSEC(1),PSEC(2),PSEC(3),PSEC(4),IDSEC,IMODE)
18174 PSECO = SQRT(PSEC(1)**2+PSEC(2)**2+PSEC(3)**2)
18175 AMSEC = SQRT(ABS((PSEC(4)-PSECO)*(PSEC(4)+PSECO)))
18176 JPMOD = 0
18177
18178 CHKLEV = TINY3
18179 IF ((EPROJ.GE.1.0D4).AND.(IDSEC.EQ.7)) CHKLEV = TINY1
18180 IF (EPROJ.GE.2.0D6) CHKLEV = 1.0D0
18181 IF (ABS(AMSEC-AAM(IDSEC)).GT.CHKLEV) THEN
18182 IF (IOULEV(3).GT.0)
18183 & WRITE(LOUT,2000) I,NEVHKK,IDSEC,AMSEC,AAM(IDSEC)
18184 2000 FORMAT(1X,'RESNCL: inconsistent mass of particle',
18185 & ' at entry ',I5,' (evt.',I8,')',/,' IDSEC: ',
18186 & I4,' AMSEC: ',E12.3,' AAM(IDSEC): ',E12.3,/)
18187 GOTO 23
18188 ENDIF
18189
18190 DO 21 K=1,4
18191 PSEC0(K) = PSEC(K)
18192 21 CONTINUE
18193
18194* the correction for nuclear potential effects is applied to as many
18195* p/n as many nucleons were wounded; the momenta of other final state
18196* particles are corrected only if they materialize inside the corresp.
18197* nucleus (here: NOBAM = 1 part. outside proj., = 2 part. outside targ
18198* = 3 part. outside proj. and targ., >=10 in overlapping region)
18199 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) THEN
18200 IF (IPOT.EQ.1) THEN
18201 IF ((JPW.GT.0).AND.(IOTHER.EQ.0)) THEN
18202* this is most likely a wounded nucleon
18203**test
18204C RDIST = SQRT((VHKK(1,IPW(JPW))/FM2MM)**2
18205C & +(VHKK(2,IPW(JPW))/FM2MM)**2
18206C & +(VHKK(3,IPW(JPW))/FM2MM)**2)
18207C RAD = RNUCLE*DBLE(IP)**ONETHI
18208C FDEN = 1.4D0*DT_DENSIT(IP,RDIST,RAD)
18209C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18210**
18211 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18212 JPW = JPW-1
18213 JPMOD = 1
18214 ELSE
18215* correct only if part. was materialized inside nucleus
18216* and if it is ouside the overlapping region
18217 IF ((NOBAM(I).NE.1).AND.(NOBAM(I).LT.3)) THEN
18218 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18219 JPMOD = 1
18220 ENDIF
18221 ENDIF
18222 ELSEIF (IPOT.EQ.2) THEN
18223 IF ((JTW.GT.0).AND.(IOTHER.EQ.0)) THEN
18224* this is most likely a wounded nucleon
18225**test
18226C RDIST = SQRT((VHKK(1,ITW(JTW))/FM2MM)**2
18227C & +(VHKK(2,ITW(JTW))/FM2MM)**2
18228C & +(VHKK(3,ITW(JTW))/FM2MM)**2)
18229C RAD = RNUCLE*DBLE(IT)**ONETHI
18230C FDEN = 1.4D0*DT_DENSIT(IT,RDIST,RAD)
18231C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18232**
18233 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18234 JTW = JTW-1
18235 JPMOD = 1
18236 ELSE
18237* correct only if part. was materialized inside nucleus
18238 IF ((NOBAM(I).NE.2).AND.(NOBAM(I).LT.3)) THEN
18239 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18240 JPMOD = 1
18241 ENDIF
18242 ENDIF
18243 ENDIF
18244 ELSE
18245 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) THEN
18246 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18247 JPMOD = 1
18248 ENDIF
18249 ENDIF
18250
18251 IF (NLOOP.EQ.1) THEN
18252* Coulomb energy correction:
18253* the treatment of Coulomb potential correction is similar to the
18254* one for nuclear potential
18255 IF (IDSEC.EQ.1) THEN
18256 IF ((IPOT.EQ.1).AND.(JPCW.GT.0)) THEN
18257 JPCW = JPCW-1
18258 ELSEIF ((IPOT.EQ.2).AND.(JTCW.GT.0)) THEN
18259 JTCW = JTCW-1
18260 ELSE
18261 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18262 ENDIF
18263 ELSE
18264 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18265 ENDIF
18266 IF (IICH(IDSEC).EQ.1) THEN
18267* pos. particles: check if they are able to escape Coulomb potential
18268 IF (PSEC(4).LT.AMSEC+ETACOU(IPOT)) THEN
18269 ISTHKK(I) = 14+IPOT
18270 IF (ISTHKK(I).EQ.15) THEN
18271 DO 26 K=1,4
18272 PHKK(K,I) = PSEC0(K)
18273 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18274 26 CONTINUE
18275 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18276 IF (IDSEC.EQ.1) NPCW = NPCW-1
18277 ELSEIF (ISTHKK(I).EQ.16) THEN
18278 DO 27 K=1,4
18279 PHKK(K,I) = PSEC0(K)
18280 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18281 27 CONTINUE
18282 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18283 IF (IDSEC.EQ.1) NTCW = NTCW-1
18284 ENDIF
18285 GOTO 20
18286 ENDIF
18287 ELSEIF (IICH(IDSEC).EQ.-1) THEN
18288* neg. particles: decrease energy by Coulomb-potential
18289 PSEC(4) = PSEC(4)-ETACOU(IPOT)
18290 JPMOD = 1
18291 ENDIF
18292 ENDIF
18293
18294 25 CONTINUE
18295
18296 IF (PSEC(4).LT.AMSEC) THEN
18297 IF (IOULEV(6).GT.0)
18298 & WRITE(LOUT,2001) I,IDSEC,PSEC(4),AMSEC
18299 2001 FORMAT(1X,'KKINC: particle at DTEVT1-pos. ',I5,
18300 & ' is not allowed to escape nucleus',/,
18301 & 8X,'id : ',I3,' reduced energy: ',E15.4,
18302 & ' mass: ',E12.3)
18303 ISTHKK(I) = 14+IPOT
18304 IF (ISTHKK(I).EQ.15) THEN
18305 DO 28 K=1,4
18306 PHKK(K,I) = PSEC0(K)
18307 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18308 28 CONTINUE
18309 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18310 IF (IDSEC.EQ.1) NPCW = NPCW-1
18311 ELSEIF (ISTHKK(I).EQ.16) THEN
18312 DO 29 K=1,4
18313 PHKK(K,I) = PSEC0(K)
18314 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18315 29 CONTINUE
18316 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18317 IF (IDSEC.EQ.1) NTCW = NTCW-1
18318 ENDIF
18319 GOTO 20
18320 ENDIF
18321
18322 IF (JPMOD.EQ.1) THEN
18323 PSECN = SQRT( (PSEC(4)-AMSEC)*(PSEC(4)+AMSEC) )
18324* 4-momentum after correction for nuclear potential
18325 DO 22 K=1,3
18326 PSEC(K) = PSEC(K)*PSECN/PSECO
18327 22 CONTINUE
18328
18329* store recoil momentum from particles escaping the nuclear potentials
18330 DO 30 K=1,4
18331 IF (IPOT.EQ.1) THEN
18332 TRCLPR(K) = TRCLPR(K)+PSEC0(K)-PSEC(K)
18333 ELSEIF (IPOT.EQ.2) THEN
18334 TRCLTA(K) = TRCLTA(K)+PSEC0(K)-PSEC(K)
18335 ENDIF
18336 30 CONTINUE
18337
18338* transform momentum back into n-n cms
18339 IMODE = IPOT+1
18340 CALL DT_LTRANS(PSEC(1),PSEC(2),PSEC(3),PSEC(4),
18341 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18342 & IDSEC,IMODE)
18343 ENDIF
18344
18345 ENDIF
18346
18347 23 CONTINUE
18348 DO 31 K=1,4
18349 PFSP(K) = PFSP(K)+PHKK(K,I)
18350 31 CONTINUE
18351
18352 20 CONTINUE
18353
18354 DO 33 I=NPOINT(4),NHKK
18355 IF ((ISTHKK(I).EQ.1).AND.(IDXOTH(I).LT.0)) THEN
18356 PFSP(1) = PFSP(1)+PHKK(1,I)
18357 PFSP(2) = PFSP(2)+PHKK(2,I)
18358 PFSP(3) = PFSP(3)+PHKK(3,I)
18359 PFSP(4) = PFSP(4)+PHKK(4,I)
18360 ENDIF
18361 33 CONTINUE
18362
18363 DO 34 K=1,5
18364 PRCLPR(K) = TRCLPR(K)
18365 PRCLTA(K) = TRCLTA(K)
18366 34 CONTINUE
18367
18368 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
18369* hadron-nucleus interactions: get residual momentum from energy-
18370* momentum conservation
18371 DO 32 K=1,4
18372 PRCLPR(K) = ZERO
18373 PRCLTA(K) = PINIPR(K)+PINITA(K)-PFSP(K)
18374 32 CONTINUE
18375 ELSE
18376* nucleus-hadron, nucleus-nucleus: get residual momentum from
18377* accumulated recoil momenta of particles leaving the spectators
18378* transform accumulated recoil momenta of residual nuclei into
18379* n-n cms
18380 PZI = PRCLPR(3)
18381 PEI = PRCLPR(4)
18382 CALL DT_LTNUC(PZI,PEI,PRCLPR(3),PRCLPR(4),2)
18383 PZI = PRCLTA(3)
18384 PEI = PRCLTA(4)
18385 CALL DT_LTNUC(PZI,PEI,PRCLTA(3),PRCLTA(4),3)
18386C IF (IP.GT.1) THEN
18387 PRCLPR(3) = PRCLPR(3)+PINIPR(3)
18388 PRCLPR(4) = PRCLPR(4)+PINIPR(4)
18389C ENDIF
18390 IF (IT.GT.1) THEN
18391 PRCLTA(3) = PRCLTA(3)+PINITA(3)
18392 PRCLTA(4) = PRCLTA(4)+PINITA(4)
18393 ENDIF
18394 ENDIF
18395
18396* check momenta of residual nuclei
18397 IF (LEMCCK) THEN
18398 CALL DT_EVTEMC(-PINIPR(1),-PINIPR(2),-PINIPR(3),-PINIPR(4),
18399 & 1,IDUM,IDUM)
18400 CALL DT_EVTEMC(-PINITA(1),-PINITA(2),-PINITA(3),-PINITA(4),
18401 & 2,IDUM,IDUM)
18402 CALL DT_EVTEMC(PRCLPR(1),PRCLPR(2),PRCLPR(3),PRCLPR(4),
18403 & 2,IDUM,IDUM)
18404 CALL DT_EVTEMC(PRCLTA(1),PRCLTA(2),PRCLTA(3),PRCLTA(4),
18405 & 2,IDUM,IDUM)
18406 CALL DT_EVTEMC(PFSP(1),PFSP(2),PFSP(3),PFSP(4),2,IDUM,IDUM)
18407**sr 19.12. changed to avoid output when used with phojet
18408C CHKLEV = TINY3
18409 CHKLEV = TINY1
18410 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,501,IREJ1)
18411C IF ((NEVHKK.EQ.409).OR.(NEVHKK.EQ.460).OR.(NEVHKK.EQ.765))
18412C & CALL DT_EVTOUT(4)
18413 IF (IREJ1.GT.0) RETURN
18414 ENDIF
18415
18416 RETURN
18417 END
18418
18419*$ CREATE DT_SCN4BA.FOR
18420*COPY DT_SCN4BA
18421*
18422*===scn4ba=============================================================*
18423*
18424 SUBROUTINE DT_SCN4BA
18425
18426************************************************************************
18427* SCan /DTEVT1/ 4 BAryons which are not able to escape nuclear pot. *
18428* This version dated 12.12.95 is written by S. Roesler. *
18429************************************************************************
18430
18431 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18432 SAVE
18433 PARAMETER ( LINP = 10 ,
18434 & LOUT = 6 ,
18435 & LDAT = 9 )
18436 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
18437 & TINY10=1.0D-10)
18438
18439* event history
18440 PARAMETER (NMXHKK=200000)
18441 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18442 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18443 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18444* extended event history
18445 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18446 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18447 & IHIST(2,NMXHKK)
18448* particle properties (BAMJET index convention)
18449 CHARACTER*8 ANAME
18450 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18451 & IICH(210),IIBAR(210),K1(210),K2(210)
18452* properties of interacting particles
18453 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
18454* nuclear potential
18455 LOGICAL LFERMI
18456 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
18457 & EBINDP(2),EBINDN(2),EPOT(2,210),
18458 & ETACOU(2),ICOUL,LFERMI
18459* treatment of residual nuclei: wounded nucleons
18460 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
18461* treatment of residual nuclei: 4-momenta
18462 LOGICAL LRCLPR,LRCLTA
18463 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18464 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18465
18466 DIMENSION PLAB(2,5),PCMS(4)
18467
18468 IREJ = 0
18469
18470* get number of wounded nucleons
18471 NPW = 0
18472 NPW0 = 0
18473 NPCW = 0
18474 NPSTCK = 0
18475 NTW = 0
18476 NTW0 = 0
18477 NTCW = 0
18478 NTSTCK = 0
18479
18480 ISGLPR = 0
18481 ISGLTA = 0
18482 LRCLPR = .FALSE.
18483 LRCLTA = .FALSE.
18484
18485C DO 2 I=1,NHKK
18486 DO 2 I=1,NPOINT(1)
18487* projectile nucleons wounded in primary interaction and in fzc
18488 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.17)) THEN
18489 NPW = NPW+1
18490 IPW(NPW) = I
18491 NPSTCK = NPSTCK+1
18492 IF (IDHKK(I).EQ.2212) NPCW = NPCW+1
18493 IF (ISTHKK(I).EQ.11) NPW0 = NPW0+1
18494C IF (IP.GT.1) THEN
18495 DO 5 K=1,4
18496 TRCLPR(K) = TRCLPR(K)-PHKK(K,I)
18497 5 CONTINUE
18498C ENDIF
18499* target nucleons wounded in primary interaction and in fzc
18500 ELSEIF ((ISTHKK(I).EQ.12).OR.(ISTHKK(I).EQ.18)) THEN
18501 NTW = NTW+1
18502 ITW(NTW) = I
18503 NTSTCK = NTSTCK+1
18504 IF (IDHKK(I).EQ.2212) NTCW = NTCW+1
18505 IF (ISTHKK(I).EQ.12) NTW0 = NTW0+1
18506 IF (IT.GT.1) THEN
18507 DO 6 K=1,4
18508 TRCLTA(K) = TRCLTA(K)-PHKK(K,I)
18509 6 CONTINUE
18510 ENDIF
18511 ELSEIF (ISTHKK(I).EQ.13) THEN
18512 ISGLPR = I
18513 ELSEIF (ISTHKK(I).EQ.14) THEN
18514 ISGLTA = I
18515 ENDIF
18516 2 CONTINUE
18517
18518 DO 11 I=NPOINT(4),NHKK
18519* baryons which are unable to escape the nuclear potential of proj.
18520 IF (ISTHKK(I).EQ.15) THEN
18521 ISGLPR = I
18522 NPSTCK = NPSTCK-1
18523 IF (IIBAR(IDBAM(I)).NE.0) THEN
18524 NPW = NPW-1
18525 IF (IICH(IDBAM(I)).GT.0) NPCW = NPCW-1
18526 ENDIF
18527 DO 7 K=1,4
18528 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18529 7 CONTINUE
18530* baryons which are unable to escape the nuclear potential of targ.
18531 ELSEIF (ISTHKK(I).EQ.16) THEN
18532 ISGLTA = I
18533 NTSTCK = NTSTCK-1
18534 IF (IIBAR(IDBAM(I)).NE.0) THEN
18535 NTW = NTW-1
18536 IF (IICH(IDBAM(I)).GT.0) NTCW = NTCW-1
18537 ENDIF
18538 DO 8 K=1,4
18539 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18540 8 CONTINUE
18541 ENDIF
18542 11 CONTINUE
18543
18544* residual nuclei so far
18545 IRESP = IP-NPSTCK
18546 IREST = IT-NTSTCK
18547
18548* ckeck for "residual nuclei" consisting of one nucleon only
18549* treat it as final state particle
18550 IF (IRESP.EQ.1) THEN
18551 ID = IDBAM(ISGLPR)
18552 IST = ISTHKK(ISGLPR)
18553 CALL DT_LTRANS(PHKK(1,ISGLPR),PHKK(2,ISGLPR),
18554 & PHKK(3,ISGLPR),PHKK(4,ISGLPR),
18555 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,2)
18556 IF (IST.EQ.13) THEN
18557 ISTHKK(ISGLPR) = 11
18558 ELSE
18559 ISTHKK(ISGLPR) = 2
18560 ENDIF
18561 CALL DT_EVTPUT(1,IDHKK(ISGLPR),ISGLPR,0,
18562 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18563 & IDRES(ISGLPR),IDXRES(ISGLPR),IDCH(ISGLPR))
18564 NOBAM(NHKK) = NOBAM(ISGLPR)
18565 JDAHKK(1,ISGLPR) = NHKK
18566 DO 21 K=1,4
18567 TRCLPR(K) = TRCLPR(K)-PHKK(K,ISGLPR)
18568 21 CONTINUE
18569 ENDIF
18570 IF (IREST.EQ.1) THEN
18571 ID = IDBAM(ISGLTA)
18572 IST = ISTHKK(ISGLTA)
18573 CALL DT_LTRANS(PHKK(1,ISGLTA),PHKK(2,ISGLTA),
18574 & PHKK(3,ISGLTA),PHKK(4,ISGLTA),
18575 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,3)
18576 IF (IST.EQ.14) THEN
18577 ISTHKK(ISGLTA) = 12
18578 ELSE
18579 ISTHKK(ISGLTA) = 2
18580 ENDIF
18581 CALL DT_EVTPUT(1,IDHKK(ISGLTA),ISGLTA,0,
18582 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18583 & IDRES(ISGLTA),IDXRES(ISGLTA),IDCH(ISGLTA))
18584 NOBAM(NHKK) = NOBAM(ISGLTA)
18585 JDAHKK(1,ISGLTA) = NHKK
18586 DO 22 K=1,4
18587 TRCLTA(K) = TRCLTA(K)-PHKK(K,ISGLTA)
18588 22 CONTINUE
18589 ENDIF
18590
18591* get nuclear potential corresp. to the residual nucleus
18592 IPRCL = IP -NPW
18593 IPZRCL = IPZ-NPCW
18594 ITRCL = IT -NTW
18595 ITZRCL = ITZ-NTCW
18596 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
18597
18598* baryons unable to escape the nuclear potential are treated as
18599* excited nucleons (ISTHKK=15,16)
18600 DO 3 I=NPOINT(4),NHKK
18601 IF (ISTHKK(I).EQ.1) THEN
18602 ID = IDBAM(I)
18603 IF ( ((ID.EQ.1).OR.(ID.EQ.8)).AND.(NOBAM(I).NE.3) ) THEN
18604* final state n and p not being outside of both nuclei are considered
18605 NPOTP = 1
18606 NPOTT = 1
18607 IF ( (IP.GT.1) .AND.(IRESP.GT.1).AND.
18608 & (NOBAM(I).NE.1).AND.(NPW.GT.0) ) THEN
18609* Lorentz-trsf. into proj. rest sys. for those being inside proj.
18610 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18611 & PHKK(4,I),PLAB(1,1),PLAB(1,2),PLAB(1,3),
18612 & PLAB(1,4),ID,-2)
18613 PLABT = SQRT(PLAB(1,1)**2+PLAB(1,2)**2+PLAB(1,3)**2)
18614 PLAB(1,5) = SQRT(ABS( (PLAB(1,4)-PLABT)*
18615 & (PLAB(1,4)+PLABT) ))
18616 EKIN = PLAB(1,4)-PLAB(1,5)
18617 IF (EKIN.LE.EPOT(1,ID)) NPOTP = 15
18618 IF ((ID.EQ.1).AND.(NPCW.LE.0)) NPOTP = 1
18619 ENDIF
18620 IF ( (IT.GT.1) .AND.(IREST.GT.1).AND.
18621 & (NOBAM(I).NE.2).AND.(NTW.GT.0) ) THEN
18622* Lorentz-trsf. into targ. rest sys. for those being inside targ.
18623 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18624 & PHKK(4,I),PLAB(2,1),PLAB(2,2),PLAB(2,3),
18625 & PLAB(2,4),ID,-3)
18626 PLABT = SQRT(PLAB(2,1)**2+PLAB(2,2)**2+PLAB(2,3)**2)
18627 PLAB(2,5) = SQRT(ABS( (PLAB(2,4)-PLABT)*
18628 & (PLAB(2,4)+PLABT) ))
18629 EKIN = PLAB(2,4)-PLAB(2,5)
18630 IF (EKIN.LE.EPOT(2,ID)) NPOTT = 16
18631 IF ((ID.EQ.1).AND.(NTCW.LE.0)) NPOTT = 1
18632 ENDIF
18633 IF (PHKK(3,I).GE.ZERO) THEN
18634 ISTHKK(I) = NPOTT
18635 IF (NPOTP.NE.1) ISTHKK(I) = NPOTP
18636 ELSE
18637 ISTHKK(I) = NPOTP
18638 IF (NPOTT.NE.1) ISTHKK(I) = NPOTT
18639 ENDIF
18640 IF (ISTHKK(I).NE.1) THEN
18641 J = ISTHKK(I)-14
18642 DO 4 K=1,5
18643 PHKK(K,I) = PLAB(J,K)
18644 4 CONTINUE
18645 IF (ISTHKK(I).EQ.15) THEN
18646 NPW = NPW-1
18647 IF (ID.EQ.1) NPCW = NPCW-1
18648 DO 9 K=1,4
18649 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18650 9 CONTINUE
18651 ELSEIF (ISTHKK(I).EQ.16) THEN
18652 NTW = NTW-1
18653 IF (ID.EQ.1) NTCW = NTCW-1
18654 DO 10 K=1,4
18655 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18656 10 CONTINUE
18657 ENDIF
18658 ENDIF
18659 ENDIF
18660 ENDIF
18661 3 CONTINUE
18662
18663* again: get nuclear potential corresp. to the residual nucleus
18664 IPRCL = IP -NPW
18665 IPZRCL = IPZ-NPCW
18666 ITRCL = IT -NTW
18667 ITZRCL = ITZ-NTCW
18668c AFERP = 1.2D0*FERMOD*(ONE+(DBLE(IP+10-NPW0)/DBLE(IP+10))**1.1D0)
18669cC AFERP = 1.21D0*FERMOD*(ONE+(DBLE(IP+40-NPW0)/DBLE(IP+40))**1.1D0)
18670c & *(0.94D0+0.3D0*EXP(-DBLE(NPW0)/5.0D0)) /2.0D0
18671C AFERP = 0.0D0
18672c AFERT = 1.2D0*FERMOD*(ONE+(DBLE(IT+10-NTW0)/DBLE(IT+10))**1.1D0)
18673cC AFERT = 1.21D0*FERMOD*(ONE+(DBLE(IT+40-NTW0)/DBLE(IT+40))**1.1D0)
18674c & *(0.94D0+0.3D0*EXP(-DBLE(NTW0)/5.0D0)) /2.0D0
18675C AFERT = 0.0D0
18676C IF (AFERP.LT.FERMOD) AFERP = FERMOD+0.1
18677C IF (AFERT.LT.FERMOD) AFERT = FERMOD+0.1
18678C IF (AFERP.GT.0.85D0) AFERP = 0.85D0
18679C IF (AFERT.GT.0.85D0) AFERT = 0.85D0
18680 AFERP = FERMOD+0.1D0
18681 AFERT = FERMOD+0.1D0
18682
18683 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,AFERP,AFERT,1)
18684
18685 RETURN
18686 END
18687
18688*$ CREATE DT_FICONF.FOR
18689*COPY DT_FICONF
18690*
18691*===ficonf=============================================================*
18692*
18693 SUBROUTINE DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ)
18694
18695************************************************************************
18696* Treatment of FInal CONFiguration including evaporation, fission and *
18697* Fermi-break-up (for light nuclei only). *
18698* Adopted from the original routine FINALE and extended to residual *
18699* projectile nuclei. *
18700* This version dated 12.12.95 is written by S. Roesler. *
18701* *
18702* Last change 27.12.2006 by S. Roesler. *
18703************************************************************************
18704
18705 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18706 SAVE
18707 PARAMETER ( LINP = 10 ,
18708 & LOUT = 6 ,
18709 & LDAT = 9 )
18710 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
18711 PARAMETER (ANGLGB=5.0D-16)
18712 PARAMETER (AMUAMU=0.93149432D0,AMELEC=0.51099906D-3)
18713
18714* event history
18715 PARAMETER (NMXHKK=200000)
18716 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18717 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18718 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18719* extended event history
18720 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18721 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18722 & IHIST(2,NMXHKK)
18723* rejection counter
18724 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
18725 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
18726 & IREXCI(3),IRDIFF(2),IRINC
18727* central particle production, impact parameter biasing
18728 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
18729* particle properties (BAMJET index convention)
18730 CHARACTER*8 ANAME
18731 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18732 & IICH(210),IIBAR(210),K1(210),K2(210)
18733* treatment of residual nuclei: 4-momenta
18734 LOGICAL LRCLPR,LRCLTA
18735 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18736 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18737* treatment of residual nuclei: properties of residual nuclei
18738 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
18739 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
18740 & NTOTFI(2),NPROFI(2)
18741* statistics: residual nuclei
18742 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
18743 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
18744 & NINCST(2,4),NINCEV(2),
18745 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
18746 & NRESPB(2),NRESCH(2),NRESEV(4),
18747 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
18748 & NEVAFI(2,2)
18749* flags for input different options
18750 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
18751 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
18752 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
18753* (original name: FINUC)
18754 PARAMETER (MXP=999)
18755 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
18756 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
18757 & TKI (MXP), PLR (MXP), WEI (MXP),
18758 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
18759 & KPART (MXP)
18760* (original name: RESNUC)
18761 LOGICAL LRNFSS, LFRAGM
18762 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
18763 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
18764 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
18765 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
18766 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
18767 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
18768 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
18769 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
18770 & LFRAGM
18771 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
18772 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
18773 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
18774 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
18775 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
18776 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
18777 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
18778 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
18779* (original name: PAREVT)
18780 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
18781 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
18782 PARAMETER ( NALLWP = 39 )
18783 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
18784 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
18785 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
18786 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
18787* event flag
18788 COMMON /DTEVNO/ NEVENT,ICASCA
18789
18790 DIMENSION INUC(2),IDXPAR(2),IDPAR(2),AIF(2),AIZF(2),AMRCL(2),
18791 & PRCL(2,4),MO1(2),MO2(2),VRCL(2,4),WRCL(2,4),
18792 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4)
18793
18794 DIMENSION EXPNUC(2),EXC(2,260),NEXC(2,260)
18795 LOGICAL LLCPOT
18796 DATA EXC,NEXC /520*ZERO,520*0/
18797 DATA EXPNUC /4.0D-3,4.0D-3/
18798
18799 IREJ = 0
18800 LRCLPR = .FALSE.
18801 LRCLTA = .FALSE.
18802
18803* skip residual nucleus treatment if not requested or in case
18804* of central collisions
18805 IF ((.NOT.LEVPRT).OR.(ICENTR.GT.0).OR.(ICENTR.EQ.-1)) RETURN
18806
18807 DO 1 K=1,2
18808 IDPAR(K) = 0
18809 IDXPAR(K)= 0
18810 NTOT(K) = 0
18811 NTOTFI(K)= 0
18812 NPRO(K) = 0
18813 NPROFI(K)= 0
18814 NN(K) = 0
18815 NH(K) = 0
18816 NHPOS(K) = 0
18817 NQ(K) = 0
18818 EEXC(K) = ZERO
18819 MO1(K) = 0
18820 MO2(K) = 0
18821 DO 2 I=1,4
18822 VRCL(K,I) = ZERO
18823 WRCL(K,I) = ZERO
18824 2 CONTINUE
18825 1 CONTINUE
18826 NFSP = 0
18827 INUC(1) = IP
18828 INUC(2) = IT
18829
18830 DO 3 I=1,NHKK
18831
18832* number of final state particles
18833 IF (ABS(ISTHKK(I)).EQ.1) THEN
18834 NFSP = NFSP+1
18835 IDFSP = IDBAM(I)
18836 ENDIF
18837
18838* properties of remaining nucleon configurations
18839 KF = 0
18840 IF ((ISTHKK(I).EQ.13).OR.(ISTHKK(I).EQ.15)) KF = 1
18841 IF ((ISTHKK(I).EQ.14).OR.(ISTHKK(I).EQ.16)) KF = 2
18842 IF (KF.GT.0) THEN
18843 IF (MO1(KF).EQ.0) MO1(KF) = I
18844 MO2(KF) = I
18845* position of residual nucleus = average position of nucleons
18846 DO 4 K=1,4
18847 VRCL(KF,K) = VRCL(KF,K)+VHKK(K,I)
18848 WRCL(KF,K) = WRCL(KF,K)+WHKK(K,I)
18849 4 CONTINUE
18850* total number of particles contributing to each residual nucleus
18851 NTOT(KF) = NTOT(KF)+1
18852 IDTMP = IDBAM(I)
18853 IDXTMP = I
18854* total charge of residual nuclei
18855 NQ(KF) = NQ(KF)+IICH(IDTMP)
18856* number of protons
18857 IF (IDHKK(I).EQ.2212) THEN
18858 NPRO(KF) = NPRO(KF)+1
18859* number of neutrons
18860 ELSEIF (IDHKK(I).EQ.2112) THEN
18861 NN(KF) = NN(KF)+1
18862 ELSE
18863* number of baryons other than n, p
18864 IF (IIBAR(IDTMP).EQ.1) THEN
18865 NH(KF) = NH(KF)+1
18866 IF (IICH(IDTMP).EQ.1) NHPOS(KF) = NHPOS(KF)+1
18867 ELSE
18868* any other mesons (status set to 1)
18869C WRITE(LOUT,1002) KF,IDTMP
18870C1002 FORMAT(1X,'FICONF: residual nucleus ',I2,
18871C & ' containing meson ',I4,', status set to 1')
18872 ISTHKK(I) = 1
18873 IDTMP = IDPAR(KF)
18874 IDXTMP = IDXPAR(KF)
18875 NTOT(KF) = NTOT(KF)-1
18876 ENDIF
18877 ENDIF
18878 IDPAR(KF) = IDTMP
18879 IDXPAR(KF) = IDXTMP
18880 ENDIF
18881 3 CONTINUE
18882
18883* reject elastic events (def: one final state particle = projectile)
18884 IF ((IP.EQ.1).AND.(NFSP.EQ.1).AND.(IDFSP.EQ.IJPROJ)) THEN
18885 IREXCI(3) = IREXCI(3)+1
18886 GOTO 9999
18887C RETURN
18888 ENDIF
18889
18890* check if one nucleus disappeared..
18891C IF ((IP.GT.1).AND.(NTOT(1).EQ.0).AND.(NTOT(2).NE.0)) THEN
18892C DO 5 K=1,4
18893C PRCLTA(K) = PRCLTA(K)+PRCLPR(K)
18894C PRCLPR(K) = ZERO
18895C 5 CONTINUE
18896C ELSEIF ((IT.GT.1).AND.(NTOT(2).EQ.0).AND.(NTOT(1).NE.0)) THEN
18897C DO 6 K=1,4
18898C PRCLPR(K) = PRCLPR(K)+PRCLTA(K)
18899C PRCLTA(K) = ZERO
18900C 6 CONTINUE
18901C ENDIF
18902
18903 ICOR = 0
18904 INORCL = 0
18905 DO 7 I=1,2
18906 DO 8 K=1,4
18907* get the average of the nucleon positions
18908 VRCL(I,K) = VRCL(I,K)/MAX(NTOT(I),1)
18909 WRCL(I,K) = WRCL(I,K)/MAX(NTOT(I),1)
18910 IF (I.EQ.1) PRCL(1,K) = PRCLPR(K)
18911 IF (I.EQ.2) PRCL(2,K) = PRCLTA(K)
18912 8 CONTINUE
18913* mass number and charge of residual nuclei
18914 AIF(I) = DBLE(NTOT(I))
18915 AIZF(I) = DBLE(NPRO(I)+NHPOS(I))
18916 IF (NTOT(I).GT.1) THEN
18917* masses of residual nuclei in ground state
18918 AMRCL0(I) = AIF(I)*AMUAMU+1.0D-3*DT_ENERGY(AIF(I),AIZF(I))
18919* masses of residual nuclei
18920 PTORCL = SQRT(PRCL(I,1)**2+PRCL(I,2)**2+PRCL(I,3)**2)
18921 AMRCL(I) = (PRCL(I,4)-PTORCL)*(PRCL(I,4)+PTORCL)
18922 IF (AMRCL(I).GT.ZERO) AMRCL(I) = SQRT(AMRCL(I))
18923*
18924* M_res^2 < 0 : configuration not allowed
18925*
18926* a) re-calculate E_exc with scaled nuclear potential
18927* (conditional jump to label 9998)
18928* b) or reject event if N_loop(max) is exceeded
18929* (conditional jump to label 9999)
18930*
18931 IF (AMRCL(I).LE.ZERO) THEN
18932 IF (IOULEV(3).GT.0)
18933 & WRITE(LOUT,1000) I,PRCL(I,1),PRCL(I,2),PRCL(I,3),
18934 & PRCL(I,4),NTOT
18935 1000 FORMAT(1X,'warning! negative excitation energy',/,
18936 & I4,4E15.4,2I4)
18937 AMRCL(I) = ZERO
18938 EEXC(I) = ZERO
18939 IF (NLOOP.LE.500) THEN
18940 GOTO 9998
18941 ELSE
18942 IREXCI(2) = IREXCI(2)+1
18943 GOTO 9999
18944 ENDIF
18945*
18946* 0 < M_res < M_res0 : mass below ground-state mass
18947*
18948* a) we had residual nuclei with mass N_tot and reasonable E_exc
18949* before- assign average E_exc of those configurations to this
18950* one ( Nexc(i,N_tot) > 0 )
18951* b) or (and this applies always if run in transport codes) go up
18952* one mass number and
18953* i) if mass now larger than proj/targ mass or if run in
18954* transport codes assign average E_exc per wounded nucleon
18955* x number of wounded nucleons (Inuc-Ntot)
18956* ii) or assign average E_exc of those configurations to this
18957* one ( Nexc(i,m) > 0 )
18958*
18959 ELSEIF ((AMRCL(I).GT.ZERO).AND.(AMRCL(I).LT.AMRCL0(I)))
18960 & THEN
18961 M = MIN(NTOT(I),260)
18962 IF (NEXC(I,M).GT.0) THEN
18963 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18964 ELSE
18965 70 CONTINUE
18966 M = M+1
18967**sr corrected 27.12.06
18968* IF (M.GE.INUC(I)) THEN
18969* AMRCL(I) = AMRCL0(I)+EXPNUC(I)*DBLE(NTOT(I))
18970 IF ((M.GE.INUC(I)).OR.(ICASCA.GT.0)) THEN
18971 IF ( INUC (I) .GT. NTOT (I) ) THEN
18972 AMRCL(I) = AMRCL0(I)
18973 & + EXPNUC(I)*DBLE(MAX(INUC(I)-NTOT(I),0))
18974 ELSE
18975 AMRCL(I) = AMRCL0(I) + 0.5D+00 * EXPNUC(I)
18976 END IF
18977**
18978 ELSE
18979 IF (NEXC(I,M).GT.0) THEN
18980 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18981 ELSE
18982 GOTO 70
18983 ENDIF
18984 ENDIF
18985 ENDIF
18986 EEXC(I) = AMRCL(I)-AMRCL0(I)
18987 ICOR = ICOR+I
18988*
18989* M_res > 2.5 x M_res0 : unreasonably(?) high E_exc
18990*
18991* a) re-calculate E_exc with scaled nuclear potential
18992* (conditional jump to label 9998)
18993* b) or reject event if N_loop(max) is exceeded
18994* (conditional jump to label 9999)
18995*
18996*
18997 ELSEIF (AMRCL(I).GE.2.5D0*AMRCL0(I)) THEN
18998 IF (IOULEV(3).GT.0)
18999 & WRITE(LOUT,1004) I,AMRCL(I),AMRCL0(I),NTOT,NEVHKK
19000 1004 FORMAT(1X,'warning! too high excitation energy',/,
19001 & I4,1P,2E15.4,3I5)
19002 AMRCL(I) = ZERO
19003 EEXC(I) = ZERO
19004 IF (NLOOP.LE.500) THEN
19005 GOTO 9998
19006 ELSE
19007 IREXCI(2) = IREXCI(2)+1
19008 GOTO 9999
19009 ENDIF
19010*
19011* Otherwise (reasonable E_exc) :
19012* E_exc = M_res - M_res0
19013* in addition: calculate and save E_exc per wounded nucleon as
19014* well as E_exc in <E_exc> counter
19015*
19016 ELSE
19017* excitation energies of residual nuclei
19018 EEXC(I) = AMRCL(I)-AMRCL0(I)
19019**sr 27.12.06 new excitation energy correction by A.F.
19020*
19021* all parts with Ilcopt<3 commented since not used
19022*
19023* still to be done/decided:
19024* Increase Icor and put back both residual nuclei on mass shell
19025* with the exciting correction further below.
19026* For the moment the modification in the excitation energy is simply
19027* corrected by scaling the energy of the residual nucleus.
19028*
19029 LLCPOT = .TRUE.
19030 ILCOPT = 3
19031 IF ( LLCPOT ) THEN
19032 NNCHIT = MAX ( INUC (I) - NTOT (I), 0 )
19033 IF ( ILCOPT .LE. 2 ) THEN
19034C* Patch for Fermi momentum reduction correlated with impact parameter:
19035C FRMRDC = MIN ( (PFRMAV(INUC(I))/APFRMX)**3, ONE )
19036C DLKPRH = 0.1D+00 + 0.5D+00 / SQRT(DBLE(INUC(I)))
19037C AKPRHO = ONE - DLKPRH
19038C* f x K rho_cen + (1-f) x 0.5 x K rho_cen = frmrdc x rho_cen
19039C FRCFLL = MAX ( 2.D+00 * FRMRDC / AKPRHO - ONE,
19040C & 0.05D+00 )
19041C* REDORI = 0.75D+00
19042C* REDORI = ONE
19043C REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19044 ELSE
19045 DLKPRH = ZERO
19046 RDCORE = 1.14D+00 * DBLE(INUC(I))**(ONE/3.D+00)
19047* Take out roughly one/half of the skin:
19048 RDCORE = RDCORE - 0.5D+00
19049 FRCFLL = RDCORE**3
19050 PRSKIN = (RDCORE+2.4D+00)**3 - FRCFLL
19051 PRSKIN = 0.5D+00 * PRSKIN / ( PRSKIN + FRCFLL )
19052 FRCFLL = ONE - PRSKIN
19053 FRMRDC = FRCFLL + 0.5D+00 * PRSKIN
19054 REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19055 END IF
19056 IF ( NNCHIT .GT. 0 ) THEN
19057C IF ( ILCOPT .EQ. 1 ) THEN
19058C SKINRH = ONE - FRCFLL / (DBLE(INUC(I))-ONE)
19059C DO 1220 NCH = 1, 10
19060C ETAETA = ( ONE - SKINRH**INUC(I)
19061C & - DBLE(INUC(I))* ( ONE - FRCFLL )
19062C & * ( ONE - SKINRH ) )
19063C & / ( SKINRH**INUC(I) - DBLE (INUC(I))
19064C & * ( ONE - FRCFLL) * SKINRH )
19065C SKINRH = SKINRH * ( ONE + ETAETA )
19066C 1220 CONTINUE
19067C PRSKIN = SKINRH**(NNCHIT-1)
19068C ELSE IF ( ILCOPT .EQ. 2 ) THEN
19069C PRSKIN = ONE - FRCFLL
19070C END IF
19071 REDCTN = ZERO
19072 DO 1230 NCH = 1, NNCHIT
19073 IF (DT_RNDM(PRFRMI) .LT. PRSKIN) THEN
19074 PRFRMI = (( ONE - 2.D+00 * DLKPRH )
19075 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19076 ELSE
19077 PRFRMI = ( ONE - 2.D+00 * DLKPRH
19078 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19079 END IF
19080 REDCTN = REDCTN + PRFRMI**2
19081 1230 CONTINUE
19082 REDCTN = REDCTN / DBLE (NNCHIT)
19083 ELSE
19084 REDCTN = 0.5D+00
19085 END IF
19086 EEXC (I) = EEXC (I) * REDCTN / REDORI
19087 AMRCL (I) = AMRCL0 (I) + EEXC (I)
19088 PRCL(I,4) = SQRT ( PTORCL**2 + AMRCL(I)**2 )
19089 END IF
19090**
19091 IF (ICASCA.EQ.0) THEN
19092 EXPNUC(I) = EEXC(I)/MAX(1,INUC(I)-NTOT(I))
19093 M = MIN(NTOT(I),260)
19094 EXC(I,M) = EXC(I,M)+EEXC(I)
19095 NEXC(I,M) = NEXC(I,M)+1
19096 ENDIF
19097 ENDIF
19098 ELSEIF (NTOT(I).EQ.1) THEN
19099 WRITE(LOUT,1003) I
19100 1003 FORMAT(1X,'FICONF: warning! NTOT(I)=1? (I=',I3,')')
19101 GOTO 9999
19102 ELSE
19103 AMRCL0(I) = ZERO
19104 AMRCL(I) = ZERO
19105 EEXC(I) = ZERO
19106 INORCL = INORCL+I
19107 ENDIF
19108 7 CONTINUE
19109
19110 PRCLPR(5) = AMRCL(1)
19111 PRCLTA(5) = AMRCL(2)
19112
19113 IF (ICOR.GT.0) THEN
19114 IF (INORCL.EQ.0) THEN
19115* one or both residual nuclei consist of one nucleon only, transform
19116* this nucleon on mass shell
19117 DO 9 K=1,4
19118 P1IN(K) = PRCL(1,K)
19119 P2IN(K) = PRCL(2,K)
19120 9 CONTINUE
19121 XM1 = AMRCL(1)
19122 XM2 = AMRCL(2)
19123 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
19124 IF (IREJ1.GT.0) THEN
19125 WRITE(LOUT,*) 'ficonf-mashel rejection'
19126 GOTO 9999
19127 ENDIF
19128 DO 10 K=1,4
19129 PRCL(1,K) = P1OUT(K)
19130 PRCL(2,K) = P2OUT(K)
19131 PRCLPR(K) = P1OUT(K)
19132 PRCLTA(K) = P2OUT(K)
19133 10 CONTINUE
19134 PRCLPR(5) = AMRCL(1)
19135 PRCLTA(5) = AMRCL(2)
19136 ELSE
19137 IF (IOULEV(3).GT.0)
19138 & WRITE(LOUT,1001) NEVHKK,INT(AIF(1)),INT(AIZF(1)),
19139 & INT(AIF(2)),INT(AIZF(2)),AMRCL0(1),
19140 & AMRCL(1),AMRCL(1)-AMRCL0(1),AMRCL0(2),
19141 & AMRCL(2),AMRCL(2)-AMRCL0(2)
19142 1001 FORMAT(1X,'FICONF: warning! no residual nucleus for',
19143 & ' correction',/,11X,'at event',I8,
19144 & ', nucleon config. 1:',2I4,' 2:',2I4,
19145 & 2(/,11X,3E12.3))
19146 IF (NLOOP.LE.500) THEN
19147 GOTO 9998
19148 ELSE
19149 IREXCI(1) = IREXCI(1)+1
19150 ENDIF
19151 ENDIF
19152 ENDIF
19153
19154* update counter
19155C IF (NRESEV(1).NE.NEVHKK) THEN
19156C NRESEV(1) = NEVHKK
19157C NRESEV(2) = NRESEV(2)+1
19158C ENDIF
19159 NRESEV(2) = NRESEV(2)+1
19160 DO 15 I=1,2
19161 EXCDPM(I) = EXCDPM(I)+EEXC(I)
19162 EXCDPM(I+2) = EXCDPM(I+2)+(EEXC(I)/MAX(NTOT(I),1))
19163 NRESTO(I) = NRESTO(I)+NTOT(I)
19164 NRESPR(I) = NRESPR(I)+NPRO(I)
19165 NRESNU(I) = NRESNU(I)+NN(I)
19166 NRESBA(I) = NRESBA(I)+NH(I)
19167 NRESPB(I) = NRESPB(I)+NHPOS(I)
19168 NRESCH(I) = NRESCH(I)+NQ(I)
19169 15 CONTINUE
19170
19171* evaporation
19172 IF (LEVPRT) THEN
19173 DO 13 I=1,2
19174* initialize evaporation counter
19175 EEXCFI(I) = ZERO
19176 IF ((INUC(I).GT.1).AND.(AIF(I).GT.ONE).AND.
19177 & (EEXC(I).GT.ZERO)) THEN
19178* put residual nuclei into DTEVT1
19179 IDRCL = 80000
19180 JMASS = INT( AIF(I))
19181 JCHAR = INT(AIZF(I))
19182* the following patch is required to transmit the correct excitation
19183* energy to Eventd
19184 IF (ITRSPT.EQ.1) THEN
19185 IF ((ABS(AMRCL(I)-AMRCL0(I)-EEXC(I)).GT.1.D-04).AND.
19186 & (IOULEV(3).GT.0))
19187 & WRITE(LOUT,*)
19188 & ' DT_FICONF:AMRCL(I),AMRCL0(I),EEXC(I)',
19189 & AMRCL(I),AMRCL0(I),EEXC(I)
19190 PRCL0 = PRCL(I,4)
19191 PRCL(I,4) =SQRT(AMRCL(I)**2+PRCL(I,1)**2+PRCL(I,2)**2
19192 & +PRCL(I,3)**2)
19193 IF (ABS(PRCL0-PRCL(I,4)).GT.0.1D0) THEN
19194 WRITE(LOUT,*)
19195 & ' PRCL(I,4) recalculated :',PRCL0,PRCL(I,4)
19196 ENDIF
19197 ENDIF
19198 CALL DT_EVTPUT(1000,IDRCL,MO1(I),MO2(I),PRCL(I,1),
19199 & PRCL(I,2),PRCL(I,3),PRCL(I,4),JMASS,JCHAR,0)
19200**sr 22.6.97
19201 NOBAM(NHKK) = I
19202**
19203 DO 14 J=1,4
19204 VHKK(J,NHKK) = VRCL(I,J)
19205 WHKK(J,NHKK) = WRCL(I,J)
19206 14 CONTINUE
19207* interface to evaporation module - fill final residual nucleus into
19208* common FKRESN
19209* fill resnuc only if code is not used as event generator in Fluka
19210 IF (ITRSPT.NE.1) THEN
19211 PXRES = PRCL(I,1)
19212 PYRES = PRCL(I,2)
19213 PZRES = PRCL(I,3)
19214 IBRES = NPRO(I)+NN(I)+NH(I)
19215 ICRES = NPRO(I)+NHPOS(I)
19216 ANOW = DBLE(IBRES)
19217 ZNOW = DBLE(ICRES)
19218 PTRES = SQRT(PXRES**2+PYRES**2+PZRES**2)
19219* ground state mass of the residual nucleus (should be equal to AM0T)
19220 AMMRES = AMRCL0(I)
19221 AMNRES = AMMRES-ZNOW*AMELEC+ELBNDE(ICRES)
19222* common FKFINU
19223 TV = ZERO
19224* kinetic energy of residual nucleus
19225 TVRECL = PRCL(I,4)-AMRCL(I)
19226* excitation energy of residual nucleus
19227 TVCMS = EEXC(I)
19228 PTOLD = PTRES
19229 PTRES = SQRT(ABS(TVRECL*(TVRECL+
19230 & 2.0D0*(AMMRES+TVCMS))))
19231 IF (PTOLD.LT.ANGLGB) THEN
19232 CALL DT_RACO(PXRES,PYRES,PZRES)
19233 PTOLD = ONE
19234 ENDIF
19235 PXRES = PXRES*PTRES/PTOLD
19236 PYRES = PYRES*PTRES/PTOLD
19237 PZRES = PZRES*PTRES/PTOLD
19238* zero counter of secondaries from evaporation
19239 NP = 0
19240* evaporation
19241 WE = ONE
19242 CALL DT_EVEVAP(WE)
19243* put evaporated particles and residual nuclei to DTEVT1
19244 MO = NHKK
19245 CALL DT_EVA2HE(MO,EXCITF,I,IREJ1)
19246 ENDIF
19247 EEXCFI(I) = EXCITF
19248 EXCEVA(I) = EXCEVA(I)+EXCITF
19249 ENDIF
19250 13 CONTINUE
19251 ENDIF
19252
19253 RETURN
19254
19255C9998 IREXCI(1) = IREXCI(1)+1
19256 9998 IREJ = IREJ+1
19257 9999 CONTINUE
19258 LRCLPR = .TRUE.
19259 LRCLTA = .TRUE.
19260 IREJ = IREJ+1
19261 RETURN
19262 END
19263
19264*$ CREATE DT_EVA2HE.FOR
19265*COPY DT_EVA2HE
19266* *
19267*====eva2he============================================================*
19268* *
19269 SUBROUTINE DT_EVA2HE(MO,EEXCF,IRCL,IREJ)
19270
19271************************************************************************
19272* Interface between common's of evaporation module (FKFINU,FKFHVY) *
19273* and DTEVT1. *
19274* MO DTEVT1-index of "mother" (residual) nucleus before evap. *
19275* EEXCF exitation energy of residual nucleus after evaporation *
19276* IRCL = 1 projectile residual nucleus *
19277* = 2 target residual nucleus *
19278* This version dated 19.04.95 is written by S. Roesler. *
19279* *
19280* Last change 27.12.2006 by S. Roesler. *
19281************************************************************************
19282
19283 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19284 SAVE
19285 PARAMETER ( LINP = 10 ,
19286 & LOUT = 6 ,
19287 & LDAT = 9 )
19288 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3)
19289
19290* event history
19291 PARAMETER (NMXHKK=200000)
19292 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
19293 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
19294 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
19295* Note: DTEVT2 - special use for heavy fragments !
19296* (IDRES(I) = mass number, IDXRES(I) = charge)
19297* extended event history
19298 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
19299 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
19300 & IHIST(2,NMXHKK)
19301* particle properties (BAMJET index convention)
19302 CHARACTER*8 ANAME
19303 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
19304 & IICH(210),IIBAR(210),K1(210),K2(210)
19305* flags for input different options
19306 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
19307 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
19308 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
19309* statistics: residual nuclei
19310 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
19311 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
19312 & NINCST(2,4),NINCEV(2),
19313 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
19314 & NRESPB(2),NRESCH(2),NRESEV(4),
19315 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
19316 & NEVAFI(2,2)
19317* treatment of residual nuclei: properties of residual nuclei
19318 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
19319 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
19320 & NTOTFI(2),NPROFI(2)
19321* (original name: FINUC)
19322 PARAMETER (MXP=999)
19323 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
19324 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
19325 & TKI (MXP), PLR (MXP), WEI (MXP),
19326 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
19327 & KPART (MXP)
19328* (original name: FHEAVY,FHEAVC)
19329 PARAMETER ( MXHEAV = 100 )
19330 CHARACTER*8 ANHEAV
19331 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
19332 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
19333 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
19334 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
19335 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
19336 & IBHEAV ( 12 ) , NPHEAV
19337 COMMON /FKFHVC/ ANHEAV ( 12 )
19338* (original name: RESNUC)
19339 LOGICAL LRNFSS, LFRAGM
19340 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
19341 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
19342 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
19343 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
19344 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
19345 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
19346 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
19347 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
19348 & LFRAGM
19349
19350 DIMENSION IPTOKP(39)
19351 DATA IPTOKP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
19352 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 99,
19353 & 100, 101, 97, 102, 98, 103, 109, 115 /
19354
19355 IREJ = 0
19356
19357* skip if evaporation package is not included
19358 IF (.NOT.LEVAPO) RETURN
19359
19360* update counter
19361 IF (NRESEV(3).NE.NEVHKK) THEN
19362 NRESEV(3) = NEVHKK
19363 NRESEV(4) = NRESEV(4)+1
19364 ENDIF
19365
19366 IF (LEMCCK)
19367 & CALL DT_EVTEMC(PHKK(1,MO),PHKK(2,MO),PHKK(3,MO),PHKK(4,MO),1,
19368 & IDUM,IDUM)
19369* mass number/charge of residual nucleus before evaporation
19370 IBTOT = IDRES(MO)
19371 IZTOT = IDXRES(MO)
19372
19373* protons/neutrons/gammas
19374 DO 1 I=1,NP
19375 PX = CXR(I)*PLR(I)
19376 PY = CYR(I)*PLR(I)
19377 PZ = CZR(I)*PLR(I)
19378 ID = IPTOKP(KPART(I))
19379 IDPDG = IDT_IPDGHA(ID)
19380 AM = ((PLR(I)+TKI(I))*(PLR(I)-TKI(I)))/
19381 & (2.0D0*MAX(TKI(I),TINY10))
19382 IF (ABS(AM-AAM(ID)).GT.TINY3) THEN
19383 WRITE(LOUT,1000) ID,AM,AAM(ID)
19384 1000 FORMAT(1X,'EVA2HE: inconsistent mass of evap. ',
19385 & 'particle',I3,2E10.3)
19386 ENDIF
19387 PE = TKI(I)+AM
19388 CALL DT_EVTPUT(-1,IDPDG,MO,0,PX,PY,PZ,PE,0,0,0)
19389 NOBAM(NHKK) = IRCL
19390 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19391 IBTOT = IBTOT-IIBAR(ID)
19392 IZTOT = IZTOT-IICH(ID)
19393 1 CONTINUE
19394
19395* heavy fragments
19396 DO 2 I=1,NPHEAV
19397 PX = CXHEAV(I)*PHEAVY(I)
19398 PY = CYHEAV(I)*PHEAVY(I)
19399 PZ = CZHEAV(I)*PHEAVY(I)
19400 IDHEAV = 80000
19401 AM = ((PHEAVY(I)+TKHEAV(I))*(PHEAVY(I)-TKHEAV(I)))/
19402 & (2.0D0*MAX(TKHEAV(I),TINY10))
19403 PE = TKHEAV(I)+AM
19404 CALL DT_EVTPUT(-1,IDHEAV,MO,0,PX,PY,PZ,PE,
19405 & IBHEAV(KHEAVY(I)),ICHEAV(KHEAVY(I)),0)
19406 NOBAM(NHKK) = IRCL
19407 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19408 IBTOT = IBTOT-IBHEAV(KHEAVY(I))
19409 IZTOT = IZTOT-ICHEAV(KHEAVY(I))
19410 2 CONTINUE
19411
19412 IF (IBRES.GT.0) THEN
19413* residual nucleus after evaporation
19414 IDNUC = 80000
19415 CALL DT_EVTPUT(1001,IDNUC,MO,0,PXRES,PYRES,PZRES,ERES,
19416 & IBRES,ICRES,0)
19417 NOBAM(NHKK) = IRCL
19418 ENDIF
19419 EEXCF = TVCMS
19420 NTOTFI(IRCL) = IBRES
19421 NPROFI(IRCL) = ICRES
19422 IF (LEMCCK) CALL DT_EVTEMC(-PXRES,-PYRES,-PZRES,-ERES,2,IDUM,IDUM)
19423 IBTOT = IBTOT-IBRES
19424 IZTOT = IZTOT-ICRES
19425
19426* count events with fission
19427 NEVAFI(1,IRCL) = NEVAFI(1,IRCL)+1
19428 IF (LRNFSS) NEVAFI(2,IRCL) = NEVAFI(2,IRCL)+1
19429
19430* energy-momentum conservation check
19431 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,40,IREJ)
19432C IF (IREJ.GT.0) THEN
19433C CALL DT_EVTOUT(4)
19434C WRITE(*,*) EEXC(2),EEXCFI(2),NP,NPHEAV
19435C ENDIF
19436* baryon-number/charge conservation check
19437 IF (IBTOT+IZTOT.NE.0) THEN
19438 WRITE(LOUT,1001) NEVHKK,IBTOT,IZTOT
19439 1001 FORMAT(1X,'EVA2HE: baryon-number/charge conservation ',
19440 & 'failure at event ',I8,' : IBTOT,IZTOT = ',2I3)
19441 ENDIF
19442
19443 RETURN
19444 END
19445
19446*$ CREATE DT_EBIND.FOR
19447*COPY DT_EBIND
19448*
19449*===ebind==============================================================*
19450*
19451 DOUBLE PRECISION FUNCTION DT_EBIND(IA,IZ)
19452
19453************************************************************************
19454* Binding energy for nuclei. *
19455* (Shirokov & Yudin, Yad. Fizika, Nauka, Moskva 1972) *
19456* IA mass number *
19457* IZ atomic number *
19458* This version dated 5.5.95 is updated by S. Roesler. *
19459************************************************************************
19460
19461 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19462 SAVE
19463 PARAMETER ( LINP = 10 ,
19464 & LOUT = 6 ,
19465 & LDAT = 9 )
19466 PARAMETER (ZERO=0.0D0)
19467
19468 DATA A1, A2, A3, A4, A5
19469 & / 0.01575D0, 0.0178D0, 0.000710D0, 0.0237D0, 0.034D0/
19470
19471 IF ((IA.LE.1).OR.(IZ.EQ.0)) THEN
19472 WRITE(LOUT,'(1X,A,2I5)') 'DT_EBIND IA,IZ set EBIND=0. ',IA,IZ
19473 DT_EBIND = ZERO
19474 RETURN
19475 ENDIF
19476 AA = IA
19477 DT_EBIND = A1*AA - A2*AA**0.666667D0-A3*IZ*IZ*AA**(-0.333333D0)
19478 & -A4*(IA-2*IZ)**2/AA
19479 IF (MOD(IA,2).EQ.1) THEN
19480 IA5 = 0
19481 ELSEIF (MOD(IZ,2).EQ.1) THEN
19482 IA5 = 1
19483 ELSE
19484 IA5 = -1
19485 ENDIF
19486 DT_EBIND = DT_EBIND - IA5*A5*AA**(-0.75D0)
19487
19488 RETURN
19489 END
19490
19491**sr 30.6. routine replaced completely
19492*$ CREATE DT_ENERGY.FOR
19493*COPY DT_ENERGY
19494* *
19495*=== energy ===========================================================*
19496* *
19497 DOUBLE PRECISION FUNCTION DT_ENERGY( A, Z )
19498
19499C INCLUDE '(DBLPRC)'
19500* DBLPRC.ADD
19501 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19502 SAVE
19503* (original name: GLOBAL)
19504 PARAMETER ( KALGNM = 2 )
19505 PARAMETER ( ANGLGB = 5.0D-16 )
19506 PARAMETER ( ANGLSQ = 2.5D-31 )
19507 PARAMETER ( AXCSSV = 0.2D+16 )
19508 PARAMETER ( ANDRFL = 1.0D-38 )
19509 PARAMETER ( AVRFLW = 1.0D+38 )
19510 PARAMETER ( AINFNT = 1.0D+30 )
19511 PARAMETER ( AZRZRZ = 1.0D-30 )
19512 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
19513 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
19514 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
19515 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
19516 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
19517 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
19518 PARAMETER ( CSNNRM = 2.0D-15 )
19519 PARAMETER ( DMXTRN = 1.0D+08 )
19520 PARAMETER ( ZERZER = 0.D+00 )
19521 PARAMETER ( ONEONE = 1.D+00 )
19522 PARAMETER ( TWOTWO = 2.D+00 )
19523 PARAMETER ( THRTHR = 3.D+00 )
19524 PARAMETER ( FOUFOU = 4.D+00 )
19525 PARAMETER ( FIVFIV = 5.D+00 )
19526 PARAMETER ( SIXSIX = 6.D+00 )
19527 PARAMETER ( SEVSEV = 7.D+00 )
19528 PARAMETER ( EIGEIG = 8.D+00 )
19529 PARAMETER ( ANINEN = 9.D+00 )
19530 PARAMETER ( TENTEN = 10.D+00 )
19531 PARAMETER ( HLFHLF = 0.5D+00 )
19532 PARAMETER ( ONETHI = ONEONE / THRTHR )
19533 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
19534 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
19535 PARAMETER ( THRTWO = THRTHR / TWOTWO )
19536 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
19537 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
19538 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
19539 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
19540 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
19541 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
19542 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
19543 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
19544 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
19545 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
19546 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
19547 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
19548 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
19549 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
19550 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
19551 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
19552 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
19553 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
19554 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
19555 PARAMETER ( CLIGHT = 2.99792458 D+10 )
19556 PARAMETER ( AVOGAD = 6.0221367 D+23 )
19557 PARAMETER ( BOLTZM = 1.380658 D-23 )
19558 PARAMETER ( AMELGR = 9.1093897 D-28 )
19559 PARAMETER ( PLCKBR = 1.05457266 D-27 )
19560 PARAMETER ( ELCCGS = 4.8032068 D-10 )
19561 PARAMETER ( ELCMKS = 1.60217733 D-19 )
19562 PARAMETER ( AMUGRM = 1.6605402 D-24 )
19563 PARAMETER ( AMMUMU = 0.113428913 D+00 )
19564 PARAMETER ( AMPRMU = 1.007276470 D+00 )
19565 PARAMETER ( AMNEMU = 1.008664904 D+00 )
19566 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
19567 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
19568 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
19569 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
19570 PARAMETER ( PLABRC = 0.197327053 D+00 )
19571 PARAMETER ( AMELCT = 0.51099906 D-03 )
19572 PARAMETER ( AMUGEV = 0.93149432 D+00 )
19573 PARAMETER ( AMMUON = 0.105658389 D+00 )
19574 PARAMETER ( AMPRTN = 0.93827231 D+00 )
19575 PARAMETER ( AMNTRN = 0.93956563 D+00 )
19576 PARAMETER ( AMDEUT = 1.87561339 D+00 )
19577 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
19578 & * 1.D-09 )
19579 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
19580 PARAMETER ( BLTZMN = 8.617385 D-14 )
19581 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
19582 PARAMETER ( GFOHB3 = 1.16639 D-05 )
19583 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
19584 PARAMETER ( SIN2TW = 0.2319 D+00 )
19585 PARAMETER ( GEVMEV = 1.0 D+03 )
19586 PARAMETER ( EMVGEV = 1.0 D-03 )
19587 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
19588 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
19589 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
19590 LOGICAL LGBIAS, LGBANA
19591 COMMON /FKGLOB/ LGBIAS, LGBANA
19592C INCLUDE '(DIMPAR)'
19593* DIMPAR.ADD
19594 PARAMETER ( MXXRGN = 5000 )
19595 PARAMETER ( MXXMDF = 82 )
19596 PARAMETER ( MXXMDE = 54 )
19597 PARAMETER ( MFSTCK = 1000 )
19598 PARAMETER ( MESTCK = 100 )
19599 PARAMETER ( NALLWP = 39 )
19600 PARAMETER ( NELEMX = 80 )
19601 PARAMETER ( MPDPDX = 8 )
19602 PARAMETER ( ICOMAX = 180 )
19603 PARAMETER ( NSTBIS = 304 )
19604 PARAMETER ( IDMAXP = 220 )
19605 PARAMETER ( IDMXDC = 640 )
19606 PARAMETER ( MKBMX1 = 1 )
19607 PARAMETER ( MKBMX2 = 1 )
19608C INCLUDE '(IOUNIT)'
19609* IOUNIT.ADD
19610 PARAMETER ( LUNIN = 5 )
19611 PARAMETER ( LUNOUT = 6 )
19612**sr 19.5. set error output-unit from 15 to 6
19613 PARAMETER ( LUNERR = 6 )
19614 PARAMETER ( LUNBER = 14 )
19615 PARAMETER ( LUNECH = 8 )
19616 PARAMETER ( LUNFLU = 13 )
19617 PARAMETER ( LUNGEO = 16 )
19618 PARAMETER ( LUNPMF = 12 )
19619 PARAMETER ( LUNRAN = 2 )
19620 PARAMETER ( LUNXSC = 9 )
19621 PARAMETER ( LUNDET = 17 )
19622 PARAMETER ( LUNRAY = 10 )
19623 PARAMETER ( LUNRDB = 1 )
19624 PARAMETER ( LUNPGO = 7 )
19625 PARAMETER ( LUNPGS = 4 )
19626 PARAMETER ( LUNSCR = 3 )
19627*
19628*----------------------------------------------------------------------*
19629* *
19630* Revised version of the original routine from EVAP: *
19631* *
19632* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19633* Infn - Milan *
19634* *
19635* Last change on 19-sep-95 by Alfredo Ferrari *
19636* *
19637* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19638* !!! It is supposed to be used with the updated atomic !!! *
19639* !!! mass data file !!! *
19640* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19641* *
19642*----------------------------------------------------------------------*
19643*
19644* Mass number below which "unknown" isotopes out of the Z-interval
19645* reported in the mass tabulations are completely unstable and made
19646* up by Z proton masses + N neutron masses:
19647 PARAMETER ( KAFREE = 4 )
19648* Mass number below which "unknown" isotopes out of the Z-interval
19649* reported in the mass tabulations are supposed to be particle unstable
19650 PARAMETER ( KAPUNS = 12 )
19651* Minimum energy required for particle unstable isotopes
19652 PARAMETER ( DEPUNS = 0.5D+00 )
19653*
19654* (original name: EVA0)
19655 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
19656 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
19657 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
19658 * T (4,7), RMASS (297), ALPH (297), BET (297),
19659 * APRIME (250), IA (6), IZ (6)
19660* (original name: ISOTOP)
19661 PARAMETER ( NAMSMX = 270 )
19662 PARAMETER ( NZGVAX = 15 )
19663 PARAMETER ( NISMMX = 574 )
19664 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
19665 & WAPISM (NISMMX), T12ISM (NISMMX),
19666 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
19667 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
19668 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
19669 & INWAPS (NAMSMX), JSPISM (NISMMX),
19670 & JPTISM (NISMMX), IZWISM (NISMMX),
19671 & INWISM (0:NAMSMX)
19672*
454792a9 19673CPH SAVE KA0, KZ0, IZ0
9aaba0d6 19674 DATA KA0, KZ0, IZ0 / -1, -1, -1 /
19675*
19676 IFLAG = 1
19677 GO TO 10
19678*======================================================================*
19679* *
19680* Entry ENergy - KNOWn *
19681* *
19682*======================================================================*
19683 ENTRY DT_ENKNOW ( A, Z, IZZ0 )
19684 IZZ0 =-1
19685 IFLAG = 2
19686 10 CONTINUE
19687*
19688 KA0 = NINT ( A )
19689 KZ0 = NINT ( Z )
19690 N = KA0 - KZ0
19691* +-------------------------------------------------------------------*
19692* | Null residual nucleus:
19693 IF ( KA0 .EQ. 0 .AND. KZ0 .LE. 0 ) THEN
19694 IF ( IFLAG .EQ. 1 ) THEN
19695 DT_ENERGY = ZERZER
19696 ELSE
19697 DT_ENKNOW = ZERZER
19698 IZZ0 = -1
19699 END IF
19700 RETURN
19701* |
19702* +-------------------------------------------------------------------*
19703* | Only protons:
19704 ELSE IF ( N .LE. 0 ) THEN
19705 IF ( N .LT. 0 ) THEN
19706 WRITE ( LUNOUT, * )
19707 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19708 & KA0, KZ0
19709 WRITE ( LUNOUT, * )
19710 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19711 & KA0, KZ0
19712 WRITE ( 77, * )
19713 & ' ^^^DPMJET stopped in energy: mass number =< atomic number !!',
19714 & KA0, KZ0
19715 STOP 'DT_ENERGY:KA0-KZ0'
19716 END IF
19717 IZ0 = -1
19718 IF ( IFLAG .EQ. 1 ) THEN
19719 DT_ENERGY = Z * WAPS ( 1, 2 )
19720 ELSE
19721 DT_ENKNOW = Z * WAPS ( 1, 2 )
19722 IZZ0 = -1
19723 END IF
19724 RETURN
19725* |
19726* +-------------------------------------------------------------------*
19727* | Only neutrons:
19728 ELSE IF ( KZ0 .LE. 0 ) THEN
19729 IF ( KZ0 .LT. 0 ) THEN
19730 WRITE ( LUNOUT, * )
19731 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19732 WRITE ( LUNOUT, * )
19733 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19734 WRITE ( 77, * )
19735 &' ^^^DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19736 STOP 'DT_ENERGY:KZ0<0'
19737 END IF
19738 IZ0 = -1
19739 IF ( IFLAG .EQ. 1 ) THEN
19740 DT_ENERGY = A * WAPS ( 1, 1 )
19741 ELSE
19742 DT_ENKNOW = A * WAPS ( 1, 1 )
19743 IZZ0 = -1
19744 END IF
19745 RETURN
19746 END IF
19747* |
19748* +-------------------------------------------------------------------*
19749* +-------------------------------------------------------------------*
19750* | No actual nucleus
19751* |
19752* +-------------------------------------------------------------------*
19753* +-------------------------------------------------------------------*
19754* | A larger than maximum allowed:
19755 IF ( KA0 .GT. NAMSMX ) THEN
19756 IZ0 = -1
19757 IF ( IFLAG .EQ. 1 ) THEN
19758 DT_ENERGY = DT_ENRG( A, Z )
19759 ELSE
19760 DT_ENKNOW = DT_ENRG( A, Z )
19761 IZZ0 = -1
19762 END IF
19763 RETURN
19764 END IF
19765* |
19766* +-------------------------------------------------------------------*
19767 IZZ = INWAPS ( KA0 )
19768* +-------------------------------------------------------------------*
19769* | Too much neutron rich with respect to the stability line:
19770 IF ( KZ0 .LT. IZZ ) THEN
19771* | +----------------------------------------------------------------*
19772* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19773 IF ( KA0 .LE. KAFREE ) THEN
19774 DT_ENERGY = AINFNT
19775* | |
19776* | +----------------------------------------------------------------*
19777* | | Up to Kapuns: be sure it is particle unstable
19778 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19779* | | Exp. excess mass for A,IZZ
19780 ENEEXP = WAPS ( KA0, 1 )
19781* | | Cameron excess mass for A, IZZ
19782 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19783* | | Cameron excess mass for A, Z
19784 DT_ENERGY = DT_ENRG( A, Z )
19785* | | Use just the difference according to Cameron!!!
19786 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19787 JZZ = INWAPS ( KA0 - 1 )
19788 LZZ = INWAPS ( KA0 - 2 )
19789* | | +-------------------------------------------------------------*
19790* | | | Residual mass for n-decay known:
19791 IF ( KZ0 .GE. JZZ .AND. KZ0 .LE. JZZ + NZGVAX - 1 ) THEN
19792 IZ0 = KZ0 - JZZ + 1
19793 DT_ENERGY = MAX(DT_ENERGY,WAPS (KA0-1,IZ0) + WAPS (1,1)
19794 & + DEPUNS )
19795* | | |
19796* | | +-------------------------------------------------------------*
19797* | | | Residual mass for 2n-decay known:
19798 ELSE IF ( KZ0 .GE. LZZ .AND. KZ0 .LE. LZZ + NZGVAX - 1 )THEN
19799 IZ0 = KZ0 - LZZ + 1
19800 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19801 & ( WAPS (1,1) + DEPUNS ) )
19802* | | |
19803* | | +-------------------------------------------------------------*
19804* | | | Set it unbound:
19805 ELSE
19806 DT_ENERGY = AINFNT
19807 END IF
19808* | | |
19809* | | +-------------------------------------------------------------*
19810* | |
19811* | +----------------------------------------------------------------*
19812* | | Proceed as usual:
19813 ELSE
19814* | | Exp. excess mass for A,IZZ
19815 ENEEXP = WAPS ( KA0, 1 )
19816* | | Cameron excess mass for A, IZZ
19817 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19818* | | Cameron excess mass for A, Z
19819 DT_ENERGY = DT_ENRG( A, Z )
19820* | | Use just the difference according to Cameron!!!
19821 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19822 END IF
19823* | |
19824* | +----------------------------------------------------------------*
19825* | Be sure not to have a positive energy state:
19826 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19827 IZ0 = -1
19828 IF ( IFLAG .EQ. 2 ) THEN
19829 DT_ENKNOW = DT_ENERGY
19830 IZZ0 = -1
19831 END IF
19832 RETURN
19833* |
19834* +-------------------------------------------------------------------*
19835* | Too much proton rich with respect to the stability line:
19836 ELSE IF ( KZ0 .GT. IZZ + NZGVAX - 1 ) THEN
19837* | +----------------------------------------------------------------*
19838* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19839 IF ( KA0 .LE. KAFREE ) THEN
19840 DT_ENERGY = AINFNT
19841* | |
19842* | +----------------------------------------------------------------*
19843* | | Up to Kapuns: be sure it is particle unstable
19844 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19845* | | Exp. excess mass for A,IZZ+NZGVAX-1
19846 ENEEXP = WAPS ( KA0, NZGVAX )
19847* | | Cameron excess mass for A, IZZ+NZGVAX-1
19848 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19849* | | Cameron excess mass for A, Z
19850 DT_ENERGY = DT_ENRG( A, Z )
19851* | | Use just the difference according to Cameron!!!
19852 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19853 JZZ = INWAPS ( KA0 - 1 )
19854 LZZ = INWAPS ( KA0 - 2 )
19855* | | +-------------------------------------------------------------*
19856* | | | Residual mass for p-decay known:
19857 IF ( KZ0-1 .GE. JZZ .AND. KZ0-1 .LE. JZZ + NZGVAX - 1 ) THEN
19858 IZ0 = KZ0 - 1 - JZZ + 1
19859 DT_ENERGY = MAX (DT_ENERGY, WAPS (KA0-1,IZ0) + WAPS (1,2)
19860 & + DEPUNS )
19861* | | |
19862* | | +-------------------------------------------------------------*
19863* | | | Residual mass for 2p-decay known:
19864 ELSE IF ( KZ0-2 .GE. LZZ .AND. KZ0-2 .LE. LZZ + NZGVAX - 1 )
19865 & THEN
19866 IZ0 = KZ0 - 2 - LZZ + 1
19867 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19868 & ( WAPS (1,2) + DEPUNS ) )
19869* | | |
19870* | | +-------------------------------------------------------------*
19871* | | | Set it unbound:
19872 ELSE
19873 DT_ENERGY = AINFNT
19874 END IF
19875* | | |
19876* | | +-------------------------------------------------------------*
19877* | |
19878* | +----------------------------------------------------------------*
19879* | | Proceed as usual:
19880 ELSE
19881* | | Exp. excess mass for A,IZZ+NZGVAX-1
19882 ENEEXP = WAPS ( KA0, NZGVAX )
19883* | | Cameron excess mass for A, IZZ+NZGVAX-1
19884 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19885* | | Cameron excess mass for A, Z
19886 DT_ENERGY = DT_ENRG( A, Z )
19887* | | Use just the difference according to Cameron!!!
19888 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19889 END IF
19890* | |
19891* | +----------------------------------------------------------------*
19892* | Be sure not to have a positive energy state:
19893 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19894 IZ0 = -1
19895 IF ( IFLAG .EQ. 2 ) THEN
19896 DT_ENKNOW = DT_ENERGY
19897 IZZ0 = -1
19898 END IF
19899 RETURN
19900* |
19901* +-------------------------------------------------------------------*
19902* | Known isotope or anyway isotope "inside" the stability zone
19903 ELSE
19904 IZ0 = KZ0 - IZZ + 1
19905 DT_ENERGY = WAPS ( KA0, IZ0 )
19906 IF ( IFLAG .EQ. 2 ) IZZ0 = IZ0
19907* | +----------------------------------------------------------------*
19908* | | Mass not known
19909 IF ( ABS (DT_ENERGY) .LT. ANGLGB .AND. (KA0 .NE. 12 .OR. KZ0
19910 & .NE. 6) ) THEN
19911 IF ( IFLAG .EQ. 2 ) IZZ0 = -1
19912* | | +-------------------------------------------------------------*
19913* | | | Set it unbound:
19914 IF ( KA0 .LE. KAFREE ) THEN
19915 DT_ENERGY = AINFNT
19916* | | |
19917* | | +-------------------------------------------------------------*
19918* | | | Try to get a reasonable excess mass:
19919 ELSE
19920 JZ0 = -100
19921* | | | +----------------------------------------------------------*
19922* | | | | Check the closest one known:
19923 DO 500 JZZ = 1, NZGVAX
19924 IF ( ABS ( WAPS (KA0,JZZ) ) .GT. ANGLGB .AND.
19925 & ABS (JZZ-IZ0) .LT. ABS (JZ0-IZ0) ) JZ0 = JZZ
19926 IF ( ABS (JZ0-IZ0) .EQ. 1 ) GO TO 550
19927 500 CONTINUE
19928* | | | |
19929* | | | +----------------------------------------------------------*
19930 550 CONTINUE
19931* | | | Exp. excess mass for A,IZZ+JZ0-1
19932 ENEEXP = WAPS ( KA0, JZ0 )
19933* | | | Cameron excess mass for A, IZZ+JZ0-1
19934 ENECA1 = DT_ENRG( A, DBLE (IZZ+JZ0-1) )
19935* | | | Cameron excess mass for A, Z
19936 DT_ENERGY = DT_ENRG( A, Z )
19937* | | | Use just the difference according to Cameron!!!
19938 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19939 IZ0 = -1
19940 END IF
19941* | | |
19942* | | +-------------------------------------------------------------*
19943* | | Be sure not to have a positive energy state:
19944 DT_ENERGY = MIN(DT_ENERGY,(A-Z)*WAPS(1,1)+Z*WAPS (1,2) )
19945 END IF
19946* | |
19947* | +----------------------------------------------------------------*
19948 IF ( IFLAG .EQ. 2 ) DT_ENKNOW = DT_ENERGY
19949 RETURN
19950 END IF
19951* |
19952* +-------------------------------------------------------------------*
19953*=== End of Function Energy ===========================================*
19954* RETURN
19955 END
19956**
19957
19958*$ CREATE DT_ENRG.FOR
19959*COPY DT_ENRG
19960* *
19961*=== enrg =============================================================*
19962* *
19963 DOUBLE PRECISION FUNCTION DT_ENRG(A,Z)
19964
19965 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19966 SAVE
19967
19968 PARAMETER ( ZERZER = 0.D+00 )
19969 PARAMETER ( ONEONE = 1.D+00 )
19970 PARAMETER ( LUNIN = 5 )
19971 PARAMETER ( LUNOUT = 6 )
19972*
19973*----------------------------------------------------------------------*
19974* *
19975* Revised version of the original routine from EVAP: *
19976* *
19977* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19978* Infn - Milan *
19979* *
19980* Last change on 01-oct-94 by Alfredo Ferrari *
19981* *
19982* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19983* !!! It is supposed to be used with the updated atomic !!! *
19984* !!! mass data file !!! *
19985* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19986* *
19987*----------------------------------------------------------------------*
19988*
19989 PARAMETER ( O16OLD = 931.145 D+00 )
19990 PARAMETER ( O16NEW = 931.19826D+00 )
19991 PARAMETER ( O16RAT = O16NEW / O16OLD )
19992 PARAMETER ( C12NEW = 931.49432D+00 )
19993 PARAMETER ( ADJUST = -8.322737768178909D-02 )
19994 PARAMETER ( AINFNT = 1.0D+30 )
19995* (original name: EVA0)
19996 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
19997 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
19998 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
19999 * T (4,7), RMASS (297), ALPH (297), BET (297),
20000 * APRIME (250), IA (6), IZ (6)
20001 LOGICAL LFIRST
454792a9 20002CPH SAVE LFIRST, EXHYDR, EXNEUT
9aaba0d6 20003 DATA LFIRST / .TRUE. /
20004*
20005 IF ( LFIRST ) THEN
20006 LFIRST = .FALSE.
20007**sr 30.6.
20008C EXHYDR = DT_ENERGY( ONEONE, ONEONE )
20009C EXNEUT = DT_ENERGY( ONEONE, ZERZER )
20010 EXHYDR = A
20011 EXNEUT = Z
20012 DT_ENRG = -AINFNT
20013 RETURN
20014**
20015 END IF
20016 IZ0 = NINT (Z)
20017 IF ( IZ0 .LE. 0 ) THEN
20018 DT_ENRG = A * EXNEUT
20019 RETURN
20020 END IF
20021 N = NINT (A-Z)
20022 IF ( N .LE. 0 ) THEN
20023 DT_ENRG = Z * EXHYDR
20024 RETURN
20025 END IF
20026 AM2ZOA= (A-Z-Z)/A
20027 AM2ZOA=AM2ZOA*AM2ZOA
20028 A13 = RMASS(NINT(A))
20029* A13 = A**.3333333333333333D+00
20030 AM13 = 1.D+00/A13
20031 EV=-17.0354D+00*(1.D+00 -1.84619 D+00*AM2ZOA)*A
20032 ES= 25.8357D+00*(1.D+00 -1.712185D+00*AM2ZOA)*
20033 & (1.D+00 -0.62025D+00*AM13*AM13)*
20034 & (A13*A13 -.62025D+00)
20035 EC= 0.799D+00*Z*(Z-1.D+00)*AM13*(((1.5772D+00*AM13 +1.2273D+00)*
20036 & AM13-1.5849D+00)*
20037 & AM13*AM13 +1.D+00)
20038 EEX= -0.4323D+00*AM13*Z**1.3333333D+00*
20039 & (((0.49597D+00*AM13 -0.14518D+00)*AM13 -0.57811D+00) * AM13
20040 & + 1.D+00)
20041 DT_ENRG=8.367D+00*A-0.783D+00*Z +EV +ES +EC +EEX+CAM2(IZ0)+CAM3(N)
20042 DT_ENRG=(DT_ENRG + A * O16OLD ) * O16RAT - A * ( C12NEW - ADJUST )
20043 DT_ENRG = MIN ( DT_ENRG, Z * EXHYDR + ( A - Z ) * EXNEUT )
20044 RETURN
20045*=== End of function Enrg =============================================*
20046 END
20047
20048*$ CREATE DT_INCINI.FOR
20049*COPY DT_INCINI
20050* *
20051*=== incini ===========================================================*
20052* *
20053 SUBROUTINE DT_INCINI
20054
20055 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20056 SAVE
20057
20058 PARAMETER ( ZERZER = 0.D+00 )
20059 PARAMETER ( ONEONE = 1.D+00 )
20060 PARAMETER ( TWOTWO = 2.D+00 )
20061 PARAMETER ( THRTHR = 3.D+00 )
20062 PARAMETER ( FOUFOU = 4.D+00 )
20063 PARAMETER ( EIGEIG = 8.D+00 )
20064 PARAMETER ( ANINEN = 9.D+00 )
20065 PARAMETER ( HLFHLF = 0.5D+00 )
20066 PARAMETER ( ONETHI = ONEONE / THRTHR )
20067 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20068 PARAMETER ( PLABRC = 0.197327053 D+00 )
20069 PARAMETER ( AMELCT = 0.51099906 D-03 )
20070 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20071 PARAMETER ( AMPRTN = 0.93827231 D+00 )
20072 PARAMETER ( AMNTRN = 0.93956563 D+00 )
20073 PARAMETER ( AMDEUT = 1.87561339 D+00 )
20074 PARAMETER ( EMVGEV = 1.0 D-03 )
20075
20076 PARAMETER ( LUNOUT = 6 )
20077*
20078*----------------------------------------------------------------------*
20079* *
20080* Created on 10 june 1990 by Alfredo Ferrari & Paola Sala *
20081* Infn - Milan *
20082* *
20083* Last change on 02-may-95 by Alfredo Ferrari *
20084* *
20085* *
20086*----------------------------------------------------------------------*
20087*
20088* (original name: FHEAVY,FHEAVC)
20089 PARAMETER ( MXHEAV = 100 )
20090 CHARACTER*8 ANHEAV
20091 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
20092 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
20093 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
20094 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
20095 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
20096 & IBHEAV ( 12 ) , NPHEAV
20097 COMMON /FKFHVC/ ANHEAV ( 12 )
20098* (original name: INPFLG)
20099 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20100* (original name: FRBKCM)
20101 PARAMETER ( MXFFBK = 6 )
20102 PARAMETER ( MXZFBK = 9 )
20103 PARAMETER ( MXNFBK = 10 )
20104 PARAMETER ( MXAFBK = 16 )
20105 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20106 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20107 PARAMETER ( NXAFBK = MXAFBK + 1 )
20108 PARAMETER ( MXPSST = 300 )
20109 PARAMETER ( MXPSFB = 41000 )
20110 LOGICAL LFRMBK, LNCMSS
20111 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20112 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20113 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20114 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20115 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20116 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20117 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20118 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20119 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20120* (original name: NUCDAT)
20121 PARAMETER ( AMUAMU = AMUGEV )
20122 PARAMETER ( AMPROT = AMPRTN )
20123 PARAMETER ( AMNEUT = AMNTRN )
20124 PARAMETER ( AMELEC = AMELCT )
20125 PARAMETER ( R0NUCL = 1.12 D+00 )
20126 PARAMETER ( RCCOUL = 1.7 D+00 )
20127 PARAMETER ( FERTHO = 14.33 D-09 )
20128 PARAMETER ( EXPEBN = 2.39 D+00 )
20129 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
20130 PARAMETER ( AMUC12 = AMUGEV - HLFHLF * AMELCT + BEXC12 / 12.D+00 )
20131 PARAMETER ( AMHYDR = AMPRTN + AMELCT )
20132 PARAMETER ( AMHTON = AMHYDR - AMNTRN )
20133 PARAMETER ( AMNTOU = AMNTRN - AMUC12 )
20134 PARAMETER ( AMUCSQ = AMUC12 * AMUC12 )
20135 PARAMETER ( EBNDAV = HLFHLF * (AMPRTN + AMNTRN) - AMUC12 )
20136 PARAMETER ( GAMMIN = 1.0D-06 )
20137 PARAMETER ( GAMNSQ = 2.0D+00 * GAMMIN * GAMMIN )
20138 PARAMETER ( TVEPSI = GAMMIN / 100.D+00 )
20139 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
20140 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
20141 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
20142 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
20143 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
20144 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
20145 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
20146 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
20147* (original name: PAREVT)
20148 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20149 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20150 PARAMETER ( NALLWP = 39 )
20151 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20152 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20153 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20154 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20155* (original name: NUCOLD)
20156 COMMON /FKNOLD/ HELP (2), HHLP (2), FTVTH (2), FINCX (2),
20157 & EKPOLD (2), BBOLD, ZZOLD, SQROLD, ASEASQ,
20158 & FSPRED, FEX0RD
20159*
20160 BBOLD = - 1.D+10
20161 ZZOLD = - 1.D+10
20162 SQROLD = - 1.D+10
20163 APFRMX = PLABRC * ( ANINEN * PIPIPI / EIGEIG )**ONETHI / R0NUCL
20164 AMNUCL (1) = AMPROT
20165 AMNUCL (2) = AMNEUT
20166 AMNUSQ (1) = AMPROT * AMPROT
20167 AMNUSQ (2) = AMNEUT * AMNEUT
20168 AMNHLP = HLFHLF * ( AMNUCL (1) + AMNUCL (2) )
20169 ASQHLP = AMNHLP**2
20170* ASQHLP = HLFHLF * ( AMNUSQ (1) + AMNUSQ (2) )
20171 AEFRMX = SQRT ( ASQHLP + APFRMX**2 ) - AMNHLP
20172 AEFRMA = 0.3D+00 * APFRMX**2 / AMNHLP * ( ONEONE - APFRMX**2 /
20173 & ( 5.6D+00 * ASQHLP ) )
20174 AV0WEL = AEFRMX + EBNDAV
20175 EBNDNG (1) = EBNDAV
20176 EBNDNG (2) = EBNDAV
20177 AEXC12 = EMVGEV * DT_ENERGY( 12.D+00, 6.D+00 )
20178 CEXC12 = EMVGEV * DT_ENRG( 12.D+00, 6.D+00 )
20179 AMMC12 = 12.D+00 * AMUGEV + AEXC12
20180 AMNC12 = AMMC12 - 6.D+00 * AMELCT + FERTHO * 6.D+00**EXPEBN
20181 AEXO16 = EMVGEV * DT_ENERGY( 16.D+00, 8.D+00 )
20182 CEXO16 = EMVGEV * DT_ENRG( 16.D+00, 8.D+00 )
20183 AMMO16 = 16.D+00 * AMUGEV + AEXO16
20184 AMNO16 = AMMO16 - 8.D+00 * AMELCT + FERTHO * 8.D+00**EXPEBN
20185 AEXS28 = EMVGEV * DT_ENERGY( 28.D+00, 14.D+00 )
20186 CEXS28 = EMVGEV * DT_ENRG( 28.D+00, 14.D+00 )
20187 AMMS28 = 28.D+00 * AMUGEV + AEXS28
20188 AMNS28 = AMMS28 - 14.D+00 * AMELCT + FERTHO * 14.D+00**EXPEBN
20189 AEXC40 = EMVGEV * DT_ENERGY( 40.D+00, 20.D+00 )
20190 CEXC40 = EMVGEV * DT_ENRG( 40.D+00, 20.D+00 )
20191 AMMC40 = 40.D+00 * AMUGEV + AEXC40
20192 AMNC40 = AMMC40 - 20.D+00 * AMELCT + FERTHO * 20.D+00**EXPEBN
20193 AEXF56 = EMVGEV * DT_ENERGY( 56.D+00, 26.D+00 )
20194 CEXF56 = EMVGEV * DT_ENRG( 56.D+00, 26.D+00 )
20195 AMMF56 = 56.D+00 * AMUGEV + AEXF56
20196 AMNF56 = AMMF56 - 26.D+00 * AMELCT + FERTHO * 26.D+00**EXPEBN
20197 AEX107 = EMVGEV * DT_ENERGY( 107.D+00, 47.D+00 )
20198 CEX107 = EMVGEV * DT_ENRG( 107.D+00, 47.D+00 )
20199 AMM107 = 107.D+00 * AMUGEV + AEX107
20200 AMN107 = AMM107 - 47.D+00 * AMELCT + FERTHO * 47.D+00**EXPEBN
20201 AEX132 = EMVGEV * DT_ENERGY( 132.D+00, 54.D+00 )
20202 CEX132 = EMVGEV * DT_ENRG( 132.D+00, 54.D+00 )
20203 AMM132 = 132.D+00 * AMUGEV + AEX132
20204 AMN132 = AMM132 - 54.D+00 * AMELCT + FERTHO * 54.D+00**EXPEBN
20205 AEX181 = EMVGEV * DT_ENERGY( 181.D+00, 73.D+00 )
20206 CEX181 = EMVGEV * DT_ENRG( 181.D+00, 73.D+00 )
20207 AMM181 = 181.D+00 * AMUGEV + AEX181
20208 AMN181 = AMM181 - 73.D+00 * AMELCT + FERTHO * 73.D+00**EXPEBN
20209 AEX208 = EMVGEV * DT_ENERGY( 208.D+00, 82.D+00 )
20210 CEX208 = EMVGEV * DT_ENRG( 208.D+00, 82.D+00 )
20211 AMM208 = 208.D+00 * AMUGEV + AEX208
20212 AMN208 = AMM208 - 82.D+00 * AMELCT + FERTHO * 82.D+00**EXPEBN
20213 AEX238 = EMVGEV * DT_ENERGY( 238.D+00, 92.D+00 )
20214 CEX238 = EMVGEV * DT_ENRG( 238.D+00, 92.D+00 )
20215 AMM238 = 238.D+00 * AMUGEV + AEX238
20216 AMN238 = AMM238 - 92.D+00 * AMELCT + FERTHO * 92.D+00**EXPEBN
20217
20218 AMHEAV (1) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ZERZER )
20219 AMHEAV (2) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ONEONE )
20220 AMHEAV (3) = TWOTWO * AMUGEV
20221 & + EMVGEV * DT_ENERGY( TWOTWO, ONEONE )
20222 AMHEAV (4) = THRTHR * AMUGEV
20223 & + EMVGEV * DT_ENERGY( THRTHR, ONEONE )
20224 AMHEAV (5) = THRTHR * AMUGEV
20225 & + EMVGEV * DT_ENERGY( THRTHR, TWOTWO )
20226 AMHEAV (6) = FOUFOU * AMUGEV
20227 & + EMVGEV * DT_ENERGY( FOUFOU, TWOTWO )
20228 ELBNDE (0) = ZERZER
20229 ELBNDE (1) = 13.6D-09
20230 DO 2000 IZ = 2, 100
20231 ELBNDE ( IZ ) = FERTHO * DBLE ( IZ )**EXPEBN
202322000 CONTINUE
20233 AMNHEA (1) = AMHEAV (1) + ELBNDE (0)
20234 AMNHEA (2) = AMHEAV (2) - AMELCT + ELBNDE (1)
20235 AMNHEA (3) = AMHEAV (3) - AMELCT + ELBNDE (1)
20236 AMNHEA (4) = AMHEAV (4) - AMELCT + ELBNDE (1)
20237 AMNHEA (5) = AMHEAV (5) - TWOTWO * AMELCT + ELBNDE (2)
20238 AMNHEA (6) = AMHEAV (6) - TWOTWO * AMELCT + ELBNDE (2)
20239 IF ( LEVPRT ) THEN
20240 WRITE ( LUNOUT, * )' **** Evaporation from residual nucleus',
20241 & ' activated **** '
20242 IF ( LDEEXG ) WRITE ( LUNOUT, * )' **** Deexcitation gamma',
20243 & ' production activated **** '
20244**sr 18.5.95
20245* commented, since obsolete
20246C IF ( LHEAVY ) WRITE ( LUNOUT, * )' **** Evaporated "heavies"',
20247C & ' transport activated **** '
20248 IF ( IFISS .GT. 0 )
20249 & WRITE ( LUNOUT, * )' **** High Energy fission ',
20250 & ' requested & activated **** '
20251 IF ( LFRMBK )
20252 & WRITE ( LUNOUT, * )' **** Fermi Break Up ',
20253 & ' requested & activated **** '
20254 IF ( LFRMBK ) CALL DT_FRBKIN(.FALSE.,.FALSE.)
20255 ELSE
20256 LDEEXG = .FALSE.
20257 LHEAVY = .FALSE.
20258 LFRMBK = .FALSE.
20259 IFISS = 0
20260 END IF
20261 RETURN
20262*=== End of subroutine incini =========================================*
20263 END
20264
20265*$ CREATE DT_STALIN.FOR
20266*COPY DT_STALIN
20267* *
20268*=== stalin ===========================================================*
20269* *
20270 SUBROUTINE DT_STALIN
20271
20272 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20273 SAVE
20274 PARAMETER ( ANGLGB = 5.0D-16 )
20275 PARAMETER ( ZERZER = 0.D+00 )
20276 PARAMETER ( ONEONE = 1.D+00 )
20277 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20278 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20279 PARAMETER ( EMVGEV = 1.0 D-03 )
20280 PARAMETER ( NSTBIS = 304 )
20281 PARAMETER ( LUNIN = 5 )
20282 PARAMETER ( LUNOUT = 6 )
20283*
20284*----------------------------------------------------------------------*
20285* *
20286* STAbility LINe calculation: *
20287* *
20288* Created on 04 december 1992 by Alfredo Ferrari & Paola Sala *
20289* Infn - Milan *
20290* *
20291* Last change on 04-dec-92 by Alfredo Ferrari *
20292* *
20293* *
20294*----------------------------------------------------------------------*
20295*
20296* (original name: ISOTOP)
20297 PARAMETER ( NAMSMX = 270 )
20298 PARAMETER ( NZGVAX = 15 )
20299 PARAMETER ( NISMMX = 574 )
20300 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20301 & WAPISM (NISMMX), T12ISM (NISMMX),
20302 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20303 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20304 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20305 & INWAPS (NAMSMX), JSPISM (NISMMX),
20306 & JPTISM (NISMMX), IZWISM (NISMMX),
20307 & INWISM (0:NAMSMX)
20308*
20309 DIMENSION ZNORM (260)
20310* +-------------------------------------------------------------------*
20311* |
20312 DO 1000 IZ=1,100
20313 DO 500 J=1,2
20314 ASTLIN (J,IZ) = ZERZER
20315 500 CONTINUE
20316 1000 CONTINUE
20317* |
20318* +-------------------------------------------------------------------*
20319* +-------------------------------------------------------------------*
20320* |
20321 DO 2000 IA=1,260
20322 ZNORM (IA) = ZERZER
20323 DO 1500 J=1,2
20324 ZSTLIN (J,IA) = ZERZER
20325 1500 CONTINUE
20326 2000 CONTINUE
20327* |
20328* +-------------------------------------------------------------------*
20329* +-------------------------------------------------------------------*
20330* | Loop on the Atomic Number
20331 DO 3000 IZ=1,100
20332 AMSSST (IZ) = ZERZER
20333 ANORM = ONEONE
20334 ZTAR = IZ
20335* | +----------------------------------------------------------------*
20336* | | Loop on the stable isotopes
20337 DO 2500 IS = ISONDX (1,IZ), ISONDX (2,IZ)
20338 IA = ISOMNM (IS)
20339 ASTLIN (1,IZ) = ASTLIN (1,IZ) + ABUISO (IS) * IA
20340 ASTLIN (2,IZ) = ASTLIN (2,IZ) + ABUISO (IS) * IA**2
20341 ZNORM (IA) = ZNORM (IA) + ABUISO (IS)
20342 ZSTLIN (1,IA) = ZSTLIN (1,IA) + ABUISO (IS) * IZ
20343 ZSTLIN (2,IA) = ZSTLIN (2,IA) + ABUISO (IS) * IZ**2
20344 AHELP = IA
20345 IF ( AHELP .LE. 1.00001D+00 ) THEN
20346 ANORM = ONEONE / ( ONEONE - ABUISO (IS) )
20347 GO TO 2500
20348 END IF
20349 AMSSST (IZ) = ABUISO (IS) * ( AHELP * AMUGEV
20350 & + EMVGEV * DT_ENERGY(AHELP,ZTAR) ) + AMSSST (IZ)
20351 2500 CONTINUE
20352* | |
20353* | +----------------------------------------------------------------*
20354 AMSSST (IZ) = ANORM * AMSSST (IZ) / AMUGEV
20355* | Normalize and print A_stab versus Z data:
20356 ASTLIN (2,IZ) = MAX ( SQRT (ASTLIN(2,IZ)-ASTLIN(1,IZ)**2),
20357 & 0.5D+00 )
20358* WRITE (LUNOUT,*)' Z:',IZ,' A_stab:',SNGL(ASTLIN(1,IZ)),
20359* & ' Sigma_st',SNGL(ASTLIN(2,IZ))
20360 3000 CONTINUE
20361* |
20362* +-------------------------------------------------------------------*
20363* +-------------------------------------------------------------------*
20364* | Normalize and print Z_stab versus A data:
20365 DO 4000 IA=1,260
20366 ZSTLIN (1,IA) = ZSTLIN (1,IA) / MAX ( ZNORM (IA), 1.D-10 )
20367 ZSTLIN (2,IA) = ZSTLIN (2,IA) / MAX ( ZNORM (IA), 1.D-10 )
20368 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ZSTLIN (1,IA)**2 )
20369 IF ( ZNORM (IA) .GT. ANGLGB )
20370**sr 2.11. avoid underflows at Pentium
20371 & ZSTLIN (2,IA) =
20372 & MAX ( SQRT ( ABS(ZSTLIN(2,IA)-ZSTLIN(1,IA)**2) ),
20373C & ZSTLIN (2,IA) = MAX ( SQRT (ZSTLIN(2,IA)-ZSTLIN(1,IA)**2),
20374 & 0.3D+00 )
20375 4000 CONTINUE
20376* |
20377* +-------------------------------------------------------------------*
20378* +-------------------------------------------------------------------*
20379* | Normalize and print Z_stab versus A data:
20380 DO 5000 IA=1,260
20381 IF ( ZNORM (IA) .LE. ANGLGB ) THEN
20382 DO 4200 JA = IA-1,1,-1
20383 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20384 IA1 = JA
20385 GO TO 4300
20386 END IF
20387 4200 CONTINUE
20388 4300 CONTINUE
20389 DO 4400 JA = IA+1,260
20390 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20391 IA2 = JA
20392 GO TO 4500
20393 END IF
20394 4400 CONTINUE
20395 IA2 = IA1
20396 IA1 = IA1 - 1
20397 4500 CONTINUE
20398 ZSTLIN (1,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20399 & * ( ZSTLIN (1,IA2) - ZSTLIN (1,IA1) )
20400 & + ZSTLIN (1,IA1)
20401 ZSTLIN (2,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20402 & * ( ZSTLIN (2,IA2) - ZSTLIN (2,IA1) )
20403 & + ZSTLIN (2,IA1)
20404 END IF
20405 IZ = MIN ( 100, NINT (ZSTLIN(1,IA)) )
20406 ATOZ = IZ / ASTLIN (1,IZ)
20407 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ATOZ * ASTLIN (2,IZ) )
20408* WRITE (LUNOUT,*)' A:',IA,' Z_stab:',SNGL(ZSTLIN(1,IA)),
20409* & ' Sigma_st',SNGL(ZSTLIN(2,IA))
20410 5000 CONTINUE
20411* |
20412* +-------------------------------------------------------------------*
20413 RETURN
20414 END
20415
20416*$ CREATE DT_BERTTP.FOR
20417*COPY DT_BERTTP
20418*
20419*=== berttp ===========================================================*
20420* *
20421 SUBROUTINE DT_BERTTP
20422
20423 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20424 SAVE
20425
20426 PARAMETER ( CSNNRM = 2.0D-15 )
20427 PARAMETER ( ZERZER = 0.D+00 )
20428 PARAMETER ( ONEONE = 1.D+00 )
20429 PARAMETER ( THRTHR = 3.D+00 )
20430 PARAMETER ( SIXSIX = 6.D+00 )
20431 PARAMETER ( ONETHI = ONEONE / THRTHR )
20432 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20433 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
20434 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
20435 PARAMETER ( EMVGEV = 1.0 D-03 )
20436
20437 PARAMETER ( NSTBIS = 304 )
20438
20439 PARAMETER ( LUNIN = 5 )
20440 PARAMETER ( LUNOUT = 6 )
20441**sr 19.5. set error output-unit from 15 to 6
20442 PARAMETER ( LUNERR = 6 )
20443C---------------------------------------------------------------------
20444C SUBNAME = DT_BERTTP --- READ BERTINI DATA
20445C---------------------------------------------------------------------
20446C ---------------------------------- I-N-C DATA
20447C COMMON R8(2127),R4(64),CRSC(600,4),R8B(336),CS(29849)
20448C REAL*8 R8,R8B,CRSC,CS
20449C REAL*4 R4
20450C --------------------------------- EVAPORATION DATA
20451* (original name: COOKCM)
20452 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
20453 LOGICAL LDEFOZ, LDEFON
20454 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
20455 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
20456 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
20457 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
20458* (original name: EVA0)
20459 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
20460 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
20461 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
20462 * T (4,7), RMASS (297), ALPH (297), BET (297),
20463 * APRIME (250), IA (6), IZ (6)
20464* (original name: FRBKCM)
20465 PARAMETER ( MXFFBK = 6 )
20466 PARAMETER ( MXZFBK = 9 )
20467 PARAMETER ( MXNFBK = 10 )
20468 PARAMETER ( MXAFBK = 16 )
20469 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20470 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20471 PARAMETER ( NXAFBK = MXAFBK + 1 )
20472 PARAMETER ( MXPSST = 300 )
20473 PARAMETER ( MXPSFB = 41000 )
20474 LOGICAL LFRMBK, LNCMSS
20475 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20476 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20477 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20478 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20479 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20480 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20481 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20482 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20483 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20484* (original name: HETTP)
20485 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
20486* (original name: INPFLG)
20487 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20488* (original name: ISOTOP)
20489 PARAMETER ( NAMSMX = 270 )
20490 PARAMETER ( NZGVAX = 15 )
20491 PARAMETER ( NISMMX = 574 )
20492 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20493 & WAPISM (NISMMX), T12ISM (NISMMX),
20494 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20495 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20496 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20497 & INWAPS (NAMSMX), JSPISM (NISMMX),
20498 & JPTISM (NISMMX), IZWISM (NISMMX),
20499 & INWISM (0:NAMSMX)
20500* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
20501 PARAMETER ( PI = PIPIPI )
20502 PARAMETER ( PISQ = PIPISQ )
20503 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
20504 PARAMETER ( RZNUCL = 1.12 D+00 )
20505 PARAMETER ( RMSPRO = 0.8 D+00 )
20506 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
20507 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
20508 & / R0PROT )
20509 PARAMETER ( RLLE04 = RZNUCL )
20510 PARAMETER ( RLLE16 = RZNUCL )
20511 PARAMETER ( RLGT16 = RZNUCL )
20512 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
20513 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
20514 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
20515 PARAMETER ( SKLE04 = 1.4D+00 )
20516 PARAMETER ( SKLE16 = 1.9D+00 )
20517 PARAMETER ( SKGT16 = 2.4D+00 )
20518 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
20519 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
20520 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
20521 PARAMETER ( ALPHA0 = 0.1D+00 )
20522 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
20523 PARAMETER ( GAMSK0 = 0.9D+00 )
20524 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
20525 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
20526 PARAMETER ( POTBA0 = 1.D+00 )
20527 PARAMETER ( PNFRAT = 1.533D+00 )
20528 PARAMETER ( RADPIM = 0.035D+00 )
20529 PARAMETER ( RDPMHL = 14.D+00 )
20530 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
20531 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
20532 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
20533 PARAMETER ( AP0PFS = 0.5D+00 )
20534 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
20535 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
20536 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
20537 PARAMETER ( MXSCIN = 50 )
20538 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
20539 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
20540 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
20541 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
20542 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
20543 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
20544 & PFRTAB (2:260)
20545 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
20546 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
20547 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
20548 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
20549 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
20550 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
20551 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
20552 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
20553 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
20554 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
20555 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
20556 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
20557 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
20558 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
20559 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
20560 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
20561 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
20562 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
20563 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
20564 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
20565 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
20566 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
20567 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
20568 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
20569 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
20570 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
20571 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
20572 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
20573 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
20574 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
20575 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
20576 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
20577 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
20578 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
20579 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
20580 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
20581 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
20582 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
20583 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
20584 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
20585 & LNCDCY, LNUSCT
20586 DIMENSION AWSTAB (2:260), SIGMAB (3)
20587 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
20588 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
20589 EQUIVALENCE ( RHOIPP, RHONCP (1) )
20590 EQUIVALENCE ( RHOINP, RHONCP (2) )
20591 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
20592 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
20593 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
20594 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
20595 EQUIVALENCE ( RHOIPT, RHONCT (1) )
20596 EQUIVALENCE ( RHOINT, RHONCT (2) )
20597 EQUIVALENCE ( OMALHL, SK3PAR )
20598 EQUIVALENCE ( ALPHAL, HABPAR )
20599 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
20600 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
20601 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
20602 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
20603 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
20604 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
20605 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
20606 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
20607 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
20608 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
20609 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
20610 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
20611 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
20612* (original name: NUCLEV)
20613 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
20614 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
20615 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
20616 & CUMRAD (0:160,2), RUSNUC (2),
20617 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
20618 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
20619 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
20620 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
20621 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
20622 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
20623 & LFLVSL, LRLVSL, LEQSBL
20624 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
20625 & MGSSPR (19) , MGSSNE (25)
20626 EQUIVALENCE ( RUSNUC (1), RUSPRO )
20627 EQUIVALENCE ( RUSNUC (2), RUSNEU )
20628 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
20629 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
20630 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
20631 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
20632 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
20633 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
20634 EQUIVALENCE ( NTANUC (1), NTAPRO )
20635 EQUIVALENCE ( NTANUC (2), NTANEU )
20636 EQUIVALENCE ( NAVNUC (1), NAVPRO )
20637 EQUIVALENCE ( NAVNUC (2), NAVNEU )
20638 EQUIVALENCE ( NLSNUC (1), NLSPRO )
20639 EQUIVALENCE ( NLSNUC (2), NLSNEU )
20640 EQUIVALENCE ( NCONUC (1), NCOPRO )
20641 EQUIVALENCE ( NCONUC (2), NCONEU )
20642 EQUIVALENCE ( NSKNUC (1), NSKPRO )
20643 EQUIVALENCE ( NSKNUC (2), NSKNEU )
20644 EQUIVALENCE ( NHANUC (1), NHAPRO )
20645 EQUIVALENCE ( NHANUC (2), NHANEU )
20646 EQUIVALENCE ( NUSNUC (1), NUSPRO )
20647 EQUIVALENCE ( NUSNUC (2), NUSNEU )
20648 EQUIVALENCE ( NACNUC (1), NACPRO )
20649 EQUIVALENCE ( NACNUC (2), NACNEU )
20650 EQUIVALENCE ( JMXNUC (1), JMXPRO )
20651 EQUIVALENCE ( JMXNUC (2), JMXNEU )
20652 EQUIVALENCE ( MAGNUC (1), MAGPRO )
20653 EQUIVALENCE ( MAGNUC (2), MAGNEU )
20654* (original name: PAREVT)
20655 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20656 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20657 PARAMETER ( NALLWP = 39 )
20658 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20659 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20660 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20661 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20662* (original name: XSEPAR)
20663 COMMON /FKXSEP/ AANXSE (100), BBNXSE (100), CCNXSE (100),
20664 & DDNXSE (100), EENXSE (100), ZZNXSE (100),
20665 & EMNXSE (100), XMNXSE (100),
20666 & AAPXSE (100), BBPXSE (100), CCPXSE (100),
20667 & DDPXSE (100), EEPXSE (100), FFPXSE (100),
20668 & ZZPXSE (100), EMPXSE (100), XMPXSE (100)
20669
20670C---------------------------------------------------------------------
20671**sr 17.5.95
20672* modified for use in DPMJET
20673C WRITE( LUNOUT,'(A,I2)')
20674C & ' *** Reading evaporation and nuclear data from unit: ', NBERTP
20675C REWIND NBERTP
20676 IF (LEVPRT) WRITE(LUNOUT,1000)
20677 1000 FORMAT(/,1X,'BERTTP:',4X,'Initialization of evaporation module',
20678 & /,12X,'------------------------------------',/)
20679 NBERNW = 23
f87dab60 20680CPH OPEN (UNIT=NBERNW,FILE='dpmjet.dat',STATUS='UNKNOWN')
9aaba0d6 20681
20682**sr 17.5.
20683*!!!! changed to be able to read the ASCII !!!!
20684**
20685C A. Ferrari: first of all read isotopic data
20686 READ (NBERNW,*) ISONDX
20687 READ (NBERNW,*) ISOMNM
20688 READ (NBERNW,*) ABUISO
20689C READ (NBERTP) ISONDX
20690C READ (NBERTP) ISOMNM
20691C READ (NBERTP) ABUISO
20692 DO 1 I=1,4
20693C READ (NBERTP) (CRSC(J,I),J=1,600)
20694C A. Ferrari: commented also the dummy read to save disk space
20695C READ (NBERTP)
20696 1 CONTINUE
20697C READ (NBERTP) CS
20698C A. Ferrari: commented also the dummy read to save disk space
20699C READ (NBERTP)
20700C---------------------------------------------------------------------
20701 READ (NBERNW,*) (P0(I),P1(I),P2(I),I=1,1001)
20702 READ (NBERNW,*) IA,IZ
20703 DO 2 I=1,6
20704 FLA(I)=IA(I)
20705 FLZ(I)=IZ(I)
20706 2 CONTINUE
20707 READ (NBERNW,*) RHO,OMEGA
20708 READ (NBERNW,*) EXMASS
20709 READ (NBERNW,*) CAM2
20710 READ (NBERNW,*) CAM3
20711 READ (NBERNW,*) CAM4
20712 READ (NBERNW,*) CAM5
20713 READ (NBERNW,*) ((T(I,J),J=1,7),I=1,3)
20714 DO 3 I=1,7
20715 T(4,I) = ZERZER
20716 3 CONTINUE
20717 READ (NBERNW,*) RMASS
20718 READ (NBERNW,*) ALPH
20719 READ (NBERNW,*) BET
20720 READ (NBERNW,*) INWAPS
20721 READ (NBERNW,*) WAPS
20722 READ (NBERNW,*) T12NUC
20723 READ (NBERNW,*) JSPNUC
20724 READ (NBERNW,*) JPTNUC
20725 READ (NBERNW,*) INWISM
20726 READ (NBERNW,*) IZWISM
20727 READ (NBERNW,*) WAPISM
20728 READ (NBERNW,*) T12ISM
20729 READ (NBERNW,*) JSPISM
20730 READ (NBERNW,*) JPTISM
20731 READ (NBERNW,*) APRIME
20732 IF (LEVPRT)
20733 &WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20734 READ (NBERNW,*) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20735 IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20736 & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20737 WRITE (LUNOUT,*)
20738 & ' *** Inconsistent Nuclear Geometry data on file ***'
20739 STOP
20740 END IF
20741 READ (NBERNW,*) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20742 & EKATAB, PFATAB, PFRTAB
20743 READ (NBERNW,*) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20744 & EMNXSE, XMNXSE
20745 READ (NBERNW,*) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20746 & ZZPXSE, EMPXSE, XMPXSE
20747* Data about Fermi-breakup:
20748 READ (NBERNW,*) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20749 IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20750 & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20751 WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20752 & ' in the Nuclear Data file ***'
20753 STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20754 END IF
20755 READ (NBERNW,*) IFRBKN
20756 READ (NBERNW,*) IFRBKZ
20757 READ (NBERNW,*) IFBKSP
20758 READ (NBERNW,*) IFBKST
20759 READ (NBERNW,*) EEXFBK
20760
20761 CLOSE (UNIT=NBERNW)
20762
20763C READ (NBERTP) (P0(I),P1(I),P2(I),I=1,1001)
20764C READ (NBERTP) IA,IZ
20765C DO 2 I=1,6
20766C FLA(I)=IA(I)
20767C FLZ(I)=IZ(I)
20768C 2 CONTINUE
20769C READ (NBERTP) RHO,OMEGA
20770C READ (NBERTP) EXMASS
20771C READ (NBERTP) CAM2
20772C READ (NBERTP) CAM3
20773C READ (NBERTP) CAM4
20774C READ (NBERTP) CAM5
20775C READ (NBERTP) ((T(I,J),J=1,7),I=1,3)
20776C DO 3 I=1,7
20777C T(4,I) = ZERZER
20778C 3 CONTINUE
20779C READ (NBERTP) RMASS
20780C READ (NBERTP) ALPH
20781C READ (NBERTP) BET
20782C READ (NBERTP) INWAPS
20783C READ (NBERTP) WAPS
20784C READ (NBERTP) T12NUC
20785C READ (NBERTP) JSPNUC
20786C READ (NBERTP) JPTNUC
20787C READ (NBERTP) INWISM
20788C READ (NBERTP) IZWISM
20789C READ (NBERTP) WAPISM
20790C READ (NBERTP) T12ISM
20791C READ (NBERTP) JSPISM
20792C READ (NBERTP) JPTISM
20793C READ (NBERTP) APRIME
20794C WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20795C READ (NBERTP) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20796C IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20797C & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20798C WRITE (LUNOUT,*)
20799C & ' *** Inconsistent Nuclear Geometry data on file ***'
20800C STOP
20801C END IF
20802C READ (NBERTP) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20803C & EKATAB, PFATAB, PFRTAB
20804C READ (NBERTP) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20805C & EMNXSE, XMNXSE
20806C READ (NBERTP) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20807C & ZZPXSE, EMPXSE, XMPXSE
20808* Data about Fermi-breakup:
20809C READ (NBERTP) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20810C IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20811C & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20812C WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20813C & ' in the Nuclear Data file ***'
20814C STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20815C END IF
20816C READ (NBERTP) IFRBKN
20817C READ (NBERTP) IFRBKZ
20818C READ (NBERTP) IFBKSP
20819C READ (NBERTP) IFBKST
20820C READ (NBERTP) EEXFBK
20821C CLOSE (UNIT=NBERTP)
20822 DO 100 JZ = 1, 130
20823 SHENUC ( JZ, 1 ) = EMVGEV * ( CAM2 (JZ) + CAM4 (JZ) )
20824 100 CONTINUE
20825 DO 200 JA = 1, 200
20826 SHENUC ( JA, 2 ) = EMVGEV * ( CAM3 (JA) + CAM5 (JA) )
20827 200 CONTINUE
20828 CALL DT_STALIN
20829 IF ( ILVMOD .LE. 0 ) THEN
20830 ILVMOD = IB0
20831 ELSE
20832 IB0 = ILVMOD
20833 END IF
20834 IF ( LLVMOD ) THEN
20835 DO 300 JZ = 1, IZCOOK
20836 CAM4 (JZ) = PZCOOK (JZ)
20837 300 CONTINUE
20838 DO 400 JN = 1, INCOOK
20839 CAM5 (JN) = PNCOOK (JZ)
20840 400 CONTINUE
20841 END IF
20842**sr
20843 IF (LEVPRT) THEN
20844 WRITE (LUNOUT,*)
20845 IF ( ILVMOD .EQ. 1 ) THEN
20846 WRITE (LUNOUT,*)
20847 & ' **** Standard EVAP T=0 level density used ****'
20848 ELSE IF ( ILVMOD .EQ. 2 ) THEN
20849 WRITE (LUNOUT,*)
20850 & ' **** Gilbert & Cameron T=0 N,Z-dep. level density used ****'
20851 ELSE IF ( ILVMOD .EQ. 3 ) THEN
20852 WRITE (LUNOUT,*)
20853 & ' **** Julich A-dependent level density used ****'
20854 ELSE IF ( ILVMOD .EQ. 4 ) THEN
20855 WRITE (LUNOUT,*)
20856 & ' **** Brancazio & Cameron T=0 N,Z-dep. level density used',
20857 & ' ****'
20858 ELSE
20859 WRITE (LUNOUT,*)
20860 & ' **** Unknown T=0 level density option requested ****'
20861 STOP 'BERTTP-ILVMOD'
20862 END IF
20863 IF ( JLVMOD .LE. 0 ) THEN
20864 GAMIGN = ZERZER
20865 WRITE (LUNOUT,*)
20866 & ' **** No Excitation en. dependence for level densities ****'
20867 ELSE IF ( JLVMOD .EQ. 1 ) THEN
20868 WRITE (LUNOUT,*)
20869 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20870 WRITE (LUNOUT,*)
20871 & ' **** with Ignyatuk (1975, 1st) set of parameters for T=oo',
20872 & ' ****'
20873 GAMIGN = 0.054D+00
20874 BETIGN = -6.3 D-05
20875 ALPIGN = 0.154D+00
20876 POWIGN = ZERZER
20877 ELSE IF ( JLVMOD .EQ. 2 ) THEN
20878 WRITE (LUNOUT,*)
20879 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20880 WRITE (LUNOUT,*)
20881 & ' **** with UNKNOWN set of parameters for T=oo ****'
20882 STOP 'BERTTP-JLVMOD'
20883 ELSE IF ( JLVMOD .EQ. 3 ) THEN
20884 WRITE (LUNOUT,*)
20885 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20886 WRITE (LUNOUT,*)
20887 & ' **** with UNKNOWN set of parameters for T=oo ****'
20888 STOP 'BERTTP-JLVMOD'
20889 ELSE IF ( JLVMOD .EQ. 4 ) THEN
20890 WRITE (LUNOUT,*)
20891 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20892 WRITE (LUNOUT,*)
20893 & ' **** with Ignyatuk (1975, 2nd) set of parameters for T=oo',
20894 & ' ****'
20895 GAMIGN = 0.054D+00
20896 BETIGN = 0.162D+00
20897 ALPIGN = 0.114D+00
20898 POWIGN = -ONETHI
20899 ELSE IF ( JLVMOD .EQ. 5 ) THEN
20900 WRITE (LUNOUT,*)
20901 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20902 WRITE (LUNOUT,*)
20903 & ' **** with Iljinov & Mebel 1st set of parameters for T=oo****'
20904 GAMIGN = 0.051D+00
20905 BETIGN = 0.098D+00
20906 ALPIGN = 0.114D+00
20907 POWIGN = -ONETHI
20908 ELSE IF ( JLVMOD .EQ. 6 ) THEN
20909 WRITE (LUNOUT,*)
20910 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20911 WRITE (LUNOUT,*)
20912 & ' **** with Iljinov & Mebel 2nd set of parameters for T=oo****'
20913 GAMIGN = -0.46D+00
20914 BETIGN = 0.107D+00
20915 ALPIGN = 0.111D+00
20916 POWIGN = -ONETHI
20917 ELSE IF ( JLVMOD .EQ. 7 ) THEN
20918 WRITE (LUNOUT,*)
20919 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20920 WRITE (LUNOUT,*)
20921 & ' **** with Iljinov & Mebel 3rd set of parameters for T=oo****'
20922 GAMIGN = 0.059D+00
20923 BETIGN = 0.257D+00
20924 ALPIGN = 0.072D+00
20925 POWIGN = -ONETHI
20926 ELSE IF ( JLVMOD .EQ. 8 ) THEN
20927 WRITE (LUNOUT,*)
20928 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20929 WRITE (LUNOUT,*)
20930 & ' **** with Iljinov & Mebel 4th set of parameters for T=oo****'
20931 GAMIGN = -0.37D+00
20932 BETIGN = 0.229D+00
20933 ALPIGN = 0.077D+00
20934 POWIGN = -ONETHI
20935 ELSE
20936 WRITE (LUNOUT,*)
20937 & ' **** Unknown T=oo level density option requested ****'
20938 STOP 'BERTTP-JLVMOD'
20939 END IF
20940 IF ( LLVMOD ) THEN
20941 WRITE (LUNOUT,*)
20942 & ' **** Cook''s modified pairing energy used ****'
20943 ELSE
20944 WRITE (LUNOUT,*)
20945 & ' **** Original Gilbert/Cameron pairing energy used ****'
20946 END IF
20947 ENDIF
20948**
20949
20950 ILVMOD = IB0
20951 DO 500 JZ = 1, 130
20952 PAENUC ( JZ, 1 ) = EMVGEV * CAM4 (JZ)
20953 500 CONTINUE
20954 DO 600 JA = 1, 200
20955 PAENUC ( JA, 2 ) = EMVGEV * CAM5 (JA)
20956 600 CONTINUE
20957 RETURN
20958 END
20959
20960*$ CREATE DT_EVEVAP.FOR
20961*COPY DT_EVEVAP
20962*
20963*====evevap============================================================*
20964*
20965 SUBROUTINE DT_EVEVAP(WE)
20966
20967 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20968 SAVE
20969 PARAMETER ( LINP = 10 ,
20970 & LOUT = 6 ,
20971 & LDAT = 9 )
20972
20973* flags for input different options
20974 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
20975 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
20976 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
20977
20978 LEVAPO = .FALSE.
20979
20980 RETURN
20981 END
20982
20983*$ CREATE DT_FRBKIN.FOR
20984*COPY DT_FRBKIN
20985*
20986*====frbkin============================================================*
20987*
20988 SUBROUTINE DT_FRBKIN(LDUM1,LDUM2)
20989
20990 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20991 SAVE
20992 PARAMETER ( LINP = 10 ,
20993 & LOUT = 6 ,
20994 & LDAT = 9 )
20995
20996 LOGICAL LDUM1,LDUM2
20997
20998 RETURN
20999 END
21000
21001*$ CREATE DT_EXPLOD.FOR
21002*COPY DT_EXPLOD
21003*
21004*=== explod ===========================================================*
21005*
21006 SUBROUTINE DT_EXPLOD( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
21007 & PYEXPL, PZEXPL )
21008
21009 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21010 SAVE
21011
21012 DIMENSION PXEXPL (NPEXPL), PYEXPL (NPEXPL), PZEXPL (NPEXPL),
21013 & ETEXPL (NPEXPL), AMEXPL (NPEXPL)
21014
21015 RETURN
21016 END
21017
21018************************************************************************
21019* *
21020* DPMJET 3.0: cross section routines *
21021* *
21022************************************************************************
21023*
21024*
21025* SUBROUTINE DT_SHNDIF
21026* diffractive cross sections (all energies)
21027* SUBROUTINE DT_PHOXS
21028* total and inel. cross sections from PHOJET interpol. tables
21029* SUBROUTINE DT_XSHN
21030* total and el. cross sections for all energies
21031* SUBROUTINE DT_SIHNAB
21032* pion 2-nucleon absorption cross sections
21033* SUBROUTINE DT_SIGEMU
21034* cross section for target "compounds"
21035* SUBROUTINE DT_SIGGA
21036* photon nucleus cross sections
21037* SUBROUTINE DT_SIGGAT
21038* photon nucleus cross sections from tables
21039* SUBROUTINE DT_SANO
21040* anomalous hard photon-nucleon cross sections from tables
21041* SUBROUTINE DT_SIGGP
21042* photon nucleon cross sections
21043* SUBROUTINE DT_SIGVEL
21044* quasi-elastic vector meson prod. cross sections
21045* DOUBLE PRECISION FUNCTION DT_SIGVP
21046* sigma_VN(tilde)
21047* DOUBLE PRECISION FUNCTION DT_RRM2
21048* DOUBLE PRECISION FUNCTION DT_RM2
21049* DOUBLE PRECISION FUNCTION DT_SAM2
21050* SUBROUTINE DT_CKMT
21051* SUBROUTINE DT_CKMTX
21052* SUBROUTINE DT_PDF0
21053* SUBROUTINE DT_CKMTQ0
21054* SUBROUTINE DT_CKMTDE
21055* SUBROUTINE DT_CKMTPR
21056* FUNCTION DT_CKMTFF
21057*
21058* SUBROUTINE DT_FLUINI
21059* total nucleon cross section fluctuation treatment
21060*
21061* SUBROUTINE DT_SIGTBL
21062* pre-tabulation of low-energy elastic x-sec. using SIHNEL
21063* SUBROUTINE DT_XSTABL
21064* service routines
21065*
21066*
21067*$ CREATE DT_SHNDIF.FOR
21068*COPY DT_SHNDIF
21069*
21070*===shndif===============================================================*
21071*
21072 SUBROUTINE DT_SHNDIF(ECM,KPROJ,KTARG,SIGDIF,SIGDIH)
21073
21074**********************************************************************
21075* Single diffractive hadron-nucleon cross sections *
21076* S.Roesler 14/1/93 *
21077* *
21078* The cross sections are calculated from extrapolated single *
21079* diffractive antiproton-proton cross sections (DTUJET92) using *
21080* scaling relations between total and single diffractive cross *
21081* sections. *
21082**********************************************************************
21083
21084 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21085 SAVE
21086 PARAMETER (ZERO=0.0D0)
21087
21088* particle properties (BAMJET index convention)
21089 CHARACTER*8 ANAME
21090 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21091 & IICH(210),IIBAR(210),K1(210),K2(210)
21092*
21093 CSD1 = 4.201483727D0
21094 CSD4 = -0.4763103556D-02
21095 CSD5 = 0.4324148297D0
21096*
21097 CHMSD1 = 0.8519297242D0
21098 CHMSD4 = -0.1443076599D-01
21099 CHMSD5 = 0.4014954567D0
21100*
21101 EPN = (ECM**2 -AAM(KPROJ)**2 -AAM(KTARG)**2)/(2.0D0*AAM(KTARG))
21102 PPN = SQRT((EPN-AAM(KPROJ))*(EPN+AAM(KPROJ)))
21103*
21104 SDIAPP = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21105 SHMSD = CHMSD1+CHMSD4*LOG(PPN)**2+CHMSD5*LOG(PPN)
21106 FRAC = SHMSD/SDIAPP
21107*
21108 GOTO( 10, 20,999,999,999,999,999, 10, 20,999,
21109 & 999, 20, 20, 20, 20, 20, 10, 20, 20, 10,
21110 & 10, 10, 20, 20, 20) KPROJ
21111*
21112 10 CONTINUE
21113*---------------------------- p - p , n - p , sigma0+- - p ,
21114* Lambda - p
21115 CSD1 = 6.004476070D0
21116 CSD4 = -0.1257784606D-03
21117 CSD5 = 0.2447335720D0
21118 SIGDIF = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21119 SIGDIH = FRAC*SIGDIF
21120 RETURN
21121*
21122 20 CONTINUE
21123*
21124 KPSCAL = 2
21125 KTSCAL = 1
21126C F = SDIAPP/DT_SHNTOT(KPSCAL,KTSCAL,ECM,ZERO)
21127 DUMZER = ZERO
21128 CALL DT_XSHN(KPSCAL,KTSCAL,DUMZER,ECM,SIGTO,SIGEL)
21129 F = SDIAPP/SIGTO
21130 KT = 1
21131C SIGDIF = DT_SHNTOT(KPROJ,KT,ECM,ZERO)*F
21132 CALL DT_XSHN(KPROJ,KT,DUMZER,ECM,SIGTO,SIGEL)
21133 SIGDIF = SIGTO*F
21134 SIGDIH = FRAC*SIGDIF
21135 RETURN
21136*
21137 999 CONTINUE
21138*-------------------------- leptons..
21139 SIGDIF = 1.D-10
21140 SIGDIH = 1.D-10
21141 RETURN
21142 END
21143
21144*$ CREATE DT_PHOXS.FOR
21145*COPY DT_PHOXS
21146*
21147*===phoxs================================================================*
21148*
21149 SUBROUTINE DT_PHOXS(KPROJ,KTARG,ECM,PLAB,STOT,SINE,SDIF1,BEL,MODE)
21150
21151************************************************************************
21152* Total/inelastic proton-nucleon cross sections taken from PHOJET- *
21153* interpolation tables. *
21154* This version dated 05.11.97 is written by S. Roesler *
21155************************************************************************
21156
21157 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21158 SAVE
21159
21160 PARAMETER ( LINP = 10 ,
21161 & LOUT = 6 ,
21162 & LDAT = 9 )
21163 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21164 PARAMETER (TWOPI = 6.283185307179586454D+00,
21165 & PI = TWOPI/TWO,
21166 & GEV2MB = 0.38938D0)
21167
21168 LOGICAL LFIRST
21169 DATA LFIRST /.TRUE./
21170
21171* nucleon-nucleon event-generator
21172 CHARACTER*8 CMODEL
21173 LOGICAL LPHOIN
21174 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21175* particle properties (BAMJET index convention)
21176 CHARACTER*8 ANAME
21177 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21178 & IICH(210),IIBAR(210),K1(210),K2(210)
21179
21180**PHOJET105a
21181C PARAMETER (IEETAB=10)
21182C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21183**PHOJET110
21184C energy-interpolation table
21185 INTEGER IEETA2
21186 PARAMETER ( IEETA2 = 20 )
21187 INTEGER ISIMAX
21188 DOUBLE PRECISION SIGTAB,SIGECM
21189 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21190**
21191
21192 IF ((MCGENE.NE.2).AND.(MODE.NE.1)) THEN
21193 WRITE(LOUT,*) MCGENE
21194 1000 FORMAT(1X,'PHOXS: warning! PHOJET not initialized (',I2,')')
21195 STOP
21196 ENDIF
21197
21198 IF (ECM.LE.ZERO) THEN
21199 EPN = SQRT(AAM(KPROJ)**2+PLAB**2)
21200 ECM = SQRT(AAM(KPROJ)**2+AAM(KTARG)**2+2.0D0*EPN*AAM(KTARG))
21201 ENDIF
21202
21203 IF (MODE.EQ.1) THEN
21204* DL
21205 DELDL = 0.0808D0
21206 EPSDL = -0.4525D0
21207 S = ECM*ECM
21208 STOT = 21.7D0*S**DELDL+56.08D0*S**EPSDL
21209 ALPHAP= 0.25D0
21210 BEL = 8.5D0+2.D0*ALPHAP*LOG(S)
21211 SIGEL = STOT**2/(16.D0*PI*BEL*GEV2MB)
21212 SINE = STOT-SIGEL
21213 SDIF1 = ZERO
21214 ELSE
21215* Phojet
21216 IP = 1
21217 IF(ECM.LE.SIGECM(IP,1)) THEN
21218 I1 = 1
21219 I2 = 1
21220 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
21221 DO 1 I=2,ISIMAX
21222 IF (ECM.LE.SIGECM(IP,I)) GOTO 2
21223 1 CONTINUE
21224 2 CONTINUE
21225 I1 = I-1
21226 I2 = I
21227 ELSE
21228 IF (LFIRST) THEN
21229 WRITE(LOUT,'(/1X,A,2E12.3)')
21230 & 'PHOXS: warning! energy above initialization limit (',
21231 & ECM,SIGECM(IP,ISIMAX)
21232 LFIRST = .FALSE.
21233 ENDIF
21234 I1 = ISIMAX
21235 I2 = ISIMAX
21236 ENDIF
21237 FAC2 = ZERO
21238 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
21239 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
21240 FAC1 = ONE-FAC2
21241 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
21242 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
21243 SDIF1 = FAC2*(SIGTAB(IP,30,I2)+SIGTAB(IP,32,I2))+
21244 & FAC1*(SIGTAB(IP,30,I1)+SIGTAB(IP,32,I1))
21245 BEL = FAC2*SIGTAB(IP,39,I2)+FAC1*SIGTAB(IP,39,I1)
21246 ENDIF
21247
21248 RETURN
21249 END
21250
21251*$ CREATE DT_XSHN.FOR
21252*COPY DT_XSHN
21253*
21254*===xshn===============================================================*
21255*
21256 SUBROUTINE DT_XSHN(IP,IT,PL,ECM,STOT,SELA)
21257
21258************************************************************************
21259* Total and elastic hadron-nucleon cross section. *
21260* Below 500GeV cross sections are based on the '98 data compilation *
21261* of the PDG. At higher energies PHOJET results are used (patched to *
21262* the low energy data at 500GeV). *
21263* IP projectile index (BAMJET numbering scheme) *
21264* (should be in the range 1..25) *
21265* IT target index (BAMJET numbering scheme) *
21266* (1 = proton, 8 = neutron) *
21267* PL laboratory momentum *
21268* ECM cm. energy (ignored if PL>0) *
21269* STOT total cross section *
21270* SELA elastic cross section *
21271* Last change: 24.4.99 by S. Roesler *
21272************************************************************************
21273
21274 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21275 SAVE
21276
21277 PARAMETER ( LINP = 10 ,
21278 & LOUT = 6 ,
21279 & LDAT = 9 )
21280 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
21281
21282 PARAMETER (NPOIN1 = 54, NPOIN2 = 8,
21283 & PLABLO = 0.1D0, PTHRE = 5.0D0, PLABHI = 500.0D0)
21284 PARAMETER (NPOINT = NPOIN1+NPOIN2+1)
21285
21286 LOGICAL LFIRST
21287* particle properties (BAMJET index convention)
21288 CHARACTER*8 ANAME
21289 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21290 & IICH(210),IIBAR(210),K1(210),K2(210)
21291* nucleon-nucleon event-generator
21292 CHARACTER*8 CMODEL
21293 LOGICAL LPHOIN
21294 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21295**PHOJET105a
21296C PARAMETER (IEETAB=10)
21297C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21298**PHOJET110
21299C energy-interpolation table
21300 INTEGER IEETA2
21301 PARAMETER ( IEETA2 = 20 )
21302 INTEGER ISIMAX
21303 DOUBLE PRECISION SIGTAB,SIGECM
21304 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21305
21306 DIMENSION APL(NPOINT),ASIGTO(10,NPOINT),ASIGEL(10,NPOINT)
21307 DIMENSION IDXDAT(25,2)
21308*
21309 DATA APL /
21310 &-1.000,-0.969,-0.937,-0.906,-0.874,-0.843,-0.811,-0.780,-0.748,
21311 &-0.717,-0.685,-0.654,-0.622,-0.591,-0.560,-0.528,-0.497,-0.465,
21312 &-0.434,-0.402,-0.371,-0.339,-0.308,-0.276,-0.245,-0.213,-0.182,
21313 &-0.151,-0.119,-0.088,-0.056,-0.025, 0.007, 0.038, 0.070, 0.101,
21314 & 0.133, 0.164, 0.196, 0.227, 0.258, 0.290, 0.321, 0.353, 0.384,
21315 & 0.416, 0.447, 0.479, 0.510, 0.542, 0.573, 0.605, 0.636, 0.668,
21316 & 0.699, 0.949, 1.199, 1.449, 1.699, 1.949, 2.199, 2.449, 2.699/
21317*
21318* total cross sections:
21319* p p
21320 DATA (ASIGTO(1,K),K=1,NPOINT) /
21321 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21322 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21323 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.375, 1.363, 1.356, 1.352,
21324 & 1.350, 1.351, 1.359, 1.381, 1.410, 1.444, 1.487, 1.544, 1.596,
21325 & 1.650, 1.672, 1.676, 1.677, 1.677, 1.675, 1.675, 1.669, 1.664,
21326 & 1.658, 1.653, 1.645, 1.640, 1.634, 1.630, 1.625, 1.620, 1.617,
21327 & 1.614, 1.602, 1.594, 1.589, 1.581, 1.583, 1.588, 1.596, 1.603/
21328* pbar p
21329 DATA (ASIGTO(2,K),K=1,NPOINT) /
21330 & 2.778, 2.759, 2.739, 2.718, 2.697, 2.675, 2.651, 2.626, 2.598,
21331 & 2.569, 2.537, 2.502, 2.471, 2.443, 2.420, 2.389, 2.361, 2.329,
21332 & 2.313, 2.304, 2.268, 2.244, 2.222, 2.212, 2.178, 2.162, 2.151,
21333 & 2.132, 2.109, 2.097, 2.089, 2.078, 2.063, 2.049, 2.035, 2.024,
21334 & 2.014, 2.004, 1.993, 1.981, 1.970, 1.958, 1.946, 1.933, 1.921,
21335 & 1.909, 1.894, 1.885, 1.871, 1.854, 1.836, 1.825, 1.816, 1.802,
21336 & 1.790, 1.744, 1.694, 1.663, 1.642, 1.614, 1.623, 1.623, 1.630/
21337* n p
21338 DATA (ASIGTO(3,K),K=1,NPOINT) /
21339 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21340 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21341 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21342 & 1.547, 1.534, 1.526, 1.522, 1.520, 1.525, 1.536, 1.550, 1.566,
21343 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21344 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21345 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21346* pi+ p
21347 DATA (ASIGTO(4,K),K=1,NPOINT) /
21348 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21349 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21350 & 2.001, 1.875, 1.801, 1.665, 1.609, 1.484, 1.412, 1.334, 1.195,
21351 & 1.160, 1.166, 1.208, 1.309, 1.356, 1.394, 1.406, 1.419, 1.473,
21352 & 1.540, 1.596, 1.570, 1.533, 1.516, 1.484, 1.471, 1.478, 1.492,
21353 & 1.497, 1.491, 1.479, 1.465, 1.453, 1.449, 1.450, 1.444, 1.428,
21354 & 1.422, 1.406, 1.384, 1.369, 1.364, 1.369, 1.374, 1.388, 1.395/
21355* pi- p
21356 DATA (ASIGTO(5,K),K=1,NPOINT) /
21357 & 0.458, 0.540, 0.626, 0.718, 0.819, 0.933, 1.063, 1.208, 1.226,
21358 & 1.436, 1.470, 1.594, 1.708, 1.786, 1.852, 1.836, 1.763, 1.679,
21359 & 1.590, 1.492, 1.445, 1.426, 1.423, 1.433, 1.473, 1.506, 1.547,
21360 & 1.660, 1.671, 1.545, 1.591, 1.687, 1.808, 1.656, 1.582, 1.543,
21361 & 1.562, 1.560, 1.537, 1.540, 1.549, 1.557, 1.557, 1.551, 1.535,
21362 & 1.527, 1.511, 1.510, 1.507, 1.500, 1.491, 1.483, 1.478, 1.468,
21363 & 1.463, 1.435, 1.408, 1.394, 1.384, 1.380, 1.383, 1.393, 1.411/
21364* K+ p
21365 DATA (ASIGTO(6,K),K=1,NPOINT) /
21366 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21367 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21368 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.096, 1.095,
21369 & 1.098, 1.105, 1.111, 1.139, 1.169, 1.209, 1.248, 1.259, 1.268,
21370 & 1.262, 1.257, 1.254, 1.252, 1.250, 1.249, 1.246, 1.244, 1.244,
21371 & 1.243, 1.240, 1.238, 1.237, 1.236, 1.235, 1.235, 1.236, 1.236,
21372 & 1.236, 1.233, 1.238, 1.248, 1.257, 1.272, 1.292, 1.311, 1.336/
21373* K- p
21374 DATA (ASIGTO(7,K),K=1,NPOINT) /
21375 & 2.003, 2.002, 2.001, 2.000, 1.999, 1.998, 1.998, 1.997, 1.997,
21376 & 1.996, 1.995, 1.993, 1.990, 1.992, 1.974, 1.912, 1.865, 1.847,
21377 & 1.896, 1.950, 1.827, 1.681, 1.637, 1.616, 1.589, 1.545, 1.543,
21378 & 1.532, 1.603, 1.604, 1.616, 1.658, 1.700, 1.658, 1.595, 1.508,
21379 & 1.493, 1.514, 1.531, 1.523, 1.501, 1.479, 1.474, 1.467, 1.463,
21380 & 1.450, 1.444, 1.435, 1.426, 1.424, 1.423, 1.415, 1.401, 1.396,
21381 & 1.384, 1.364, 1.330, 1.313, 1.310, 1.309, 1.317, 1.329, 1.338/
21382* K+ n
21383 DATA (ASIGTO(8,K),K=1,NPOINT) /
21384 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21385 & 0.631, 0.675, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21386 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.102, 1.125, 1.147,
21387 & 1.168, 1.187, 1.205, 1.224, 1.248, 1.279, 1.315, 1.324, 1.301,
21388 & 1.285, 1.279, 1.274, 1.273, 1.272, 1.271, 1.267, 1.263, 1.261,
21389 & 1.259, 1.256, 1.252, 1.247, 1.244, 1.241, 1.240, 1.240, 1.240,
21390 & 1.241, 1.243, 1.245, 1.253, 1.265, 1.275, 1.293, 1.314, 1.342/
21391* K- n
21392 DATA (ASIGTO(9,K),K=1,NPOINT) /
21393 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778,
21394 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.779, 1.779, 1.778, 1.773,
21395 & 1.765, 1.746, 1.703, 1.646, 1.561, 1.488, 1.454, 1.437, 1.437,
21396 & 1.458, 1.505, 1.561, 1.588, 1.593, 1.581, 1.551, 1.500, 1.454,
21397 & 1.427, 1.408, 1.390, 1.372, 1.361, 1.356, 1.351, 1.347, 1.343,
21398 & 1.341, 1.340, 1.338, 1.337, 1.335, 1.334, 1.332, 1.331, 1.330,
21399 & 1.330, 1.313, 1.303, 1.288, 1.288, 1.297, 1.305, 1.320, 1.342/
21400* Lambda p
21401 DATA (ASIGTO(10,K),K=1,NPOINT) /
21402 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21403 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.629,
21404 & 1.599, 1.576, 1.558, 1.543, 1.530, 1.520, 1.512, 1.505, 1.499,
21405 & 1.495, 1.495, 1.497, 1.504, 1.514, 1.525, 1.536, 1.550, 1.567,
21406 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21407 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21408 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21409*
21410* elastic cross sections:
21411* p p
21412 DATA (ASIGEL(1,K),K=1,NPOINT) /
21413 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21414 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21415 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.374, 1.360, 1.353, 1.350,
21416 & 1.351, 1.356, 1.362, 1.369, 1.376, 1.384, 1.385, 1.399, 1.397,
21417 & 1.389, 1.385, 1.379, 1.366, 1.358, 1.344, 1.320, 1.294, 1.275,
21418 & 1.260, 1.248, 1.235, 1.219, 1.199, 1.172, 1.144, 1.126, 1.115,
21419 & 1.104, 1.013, 0.962, 0.905, 0.869, 0.845, 0.846, 0.850, 0.868/
21420* pbar p
21421 DATA (ASIGEL(2,K),K=1,NPOINT) /
21422 & 1.987, 1.985, 1.983, 1.980, 1.978, 1.975, 1.971, 1.968, 1.963,
21423 & 1.958, 1.951, 1.944, 1.935, 1.925, 1.914, 1.902, 1.889, 1.875,
21424 & 1.859, 1.845, 1.834, 1.817, 1.792, 1.769, 1.754, 1.738, 1.720,
21425 & 1.702, 1.688, 1.676, 1.667, 1.659, 1.652, 1.645, 1.640, 1.636,
21426 & 1.620, 1.591, 1.562, 1.546, 1.540, 1.524, 1.496, 1.475, 1.457,
21427 & 1.429, 1.402, 1.373, 1.344, 1.330, 1.306, 1.294, 1.265, 1.228,
21428 & 1.204, 1.086, 0.977, 0.933, 0.914, 0.850, 0.862, 0.848, 0.845/
21429* n p
21430 DATA (ASIGEL(3,K),K=1,NPOINT) /
21431 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21432 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21433 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21434 & 1.544, 1.527, 1.514, 1.504, 1.495, 1.486, 1.476, 1.466, 1.454,
21435 & 1.440, 1.425, 1.409, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21436 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21437 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21438* pi+ p
21439 DATA (ASIGEL(4,K),K=1,NPOINT) /
21440 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21441 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21442 & 2.001, 1.875, 1.801, 1.664, 1.610, 1.479, 1.423, 1.299, 1.166,
21443 & 1.097, 1.020, 0.958, 0.914, 1.013, 1.088, 1.153, 1.167, 1.235,
21444 & 1.240, 1.237, 1.202, 1.135, 1.090, 1.026, 0.975, 0.941, 0.904,
21445 & 0.894, 0.884, 0.862, 0.850, 0.845, 0.827, 0.805, 0.789, 0.776,
21446 & 0.763, 0.686, 0.626, 0.562, 0.505, 0.518, 0.525, 0.528, 0.528/
21447* pi- p
21448 DATA (ASIGEL(5,K),K=1,NPOINT) /
21449 & 0.266, 0.278, 0.294, 0.320, 0.360, 0.419, 0.503, 0.608, 0.727,
21450 & 0.850, 0.968, 1.071, 1.167, 1.305, 1.369, 1.404, 1.446, 1.217,
21451 & 1.112, 1.071, 1.014, 1.002, 0.996, 1.008, 1.070, 1.126, 1.209,
21452 & 1.300, 1.281, 1.188, 1.156, 1.341, 1.423, 1.314, 1.171, 1.140,
21453 & 1.106, 1.071, 1.011, 1.037, 1.026, 1.024, 0.988, 0.953, 0.895,
21454 & 0.894, 0.880, 0.871, 0.864, 0.853, 0.837, 0.820, 0.809, 0.800,
21455 & 0.782, 0.674, 0.612, 0.530, 0.521, 0.528, 0.524, 0.542, 0.569/
21456* K+ p
21457 DATA (ASIGEL(6,K),K=1,NPOINT) /
21458 & 1.064, 1.065, 1.065, 1.066, 1.066, 1.066, 1.066, 1.066, 1.066,
21459 & 1.065, 1.064, 1.063, 1.062, 1.062, 1.062, 1.064, 1.066, 1.070,
21460 & 1.076, 1.082, 1.088, 1.096, 1.103, 1.104, 1.104, 1.102, 1.093,
21461 & 1.087, 1.084, 1.079, 1.075, 1.067, 1.058, 1.040, 1.029, 1.012,
21462 & 1.003, 0.985, 0.935, 0.909, 0.880, 0.846, 0.790, 0.771, 0.759,
21463 & 0.743, 0.718, 0.681, 0.666, 0.645, 0.622, 0.606, 0.594, 0.584,
21464 & 0.575, 0.513, 0.453, 0.403, 0.356, 0.365, 0.389, 0.430, 0.477/
21465* K- p
21466 DATA (ASIGEL(7,K),K=1,NPOINT) /
21467 & 1.941, 1.936, 1.931, 1.926, 1.919, 1.912, 1.903, 1.892, 1.878,
21468 & 1.863, 1.844, 1.821, 1.791, 1.755, 1.713, 1.666, 1.615, 1.561,
21469 & 1.533, 1.531, 1.518, 1.511, 1.452, 1.339, 1.265, 1.233, 1.188,
21470 & 1.184, 1.236, 1.316, 1.333, 1.336, 1.333, 1.277, 1.216, 1.077,
21471 & 1.018, 0.912, 0.926, 0.920, 0.910, 0.894, 0.830, 0.825, 0.800,
21472 & 0.788, 0.747, 0.703, 0.707, 0.689, 0.643, 0.633, 0.635, 0.618,
21473 & 0.584, 0.579, 0.461, 0.403, 0.405, 0.399, 0.408, 0.418, 0.413/
21474* K+ n
21475 DATA (ASIGEL(8,K),K=1,NPOINT) /
21476 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21477 & 0.631, 0.676, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21478 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.103, 1.126, 1.148,
21479 & 1.168, 1.187, 1.205, 1.223, 1.248, 1.282, 1.269, 1.185, 1.111,
21480 & 1.063, 1.031, 0.998, 0.964, 0.928, 0.889, 0.849, 0.814, 0.785,
21481 & 0.760, 0.738, 0.720, 0.703, 0.688, 0.674, 0.660, 0.648, 0.635,
21482 & 0.624, 0.536, 0.473, 0.442, 0.428, 0.428, 0.436, 0.453, 0.477/
21483* K- n
21484 DATA (ASIGEL(9,K),K=1,NPOINT) /
21485 & 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613,
21486 & 1.613, 1.613, 1.613, 1.612, 1.613, 1.614, 1.614, 1.612, 1.606,
21487 & 1.593, 1.564, 1.498, 1.402, 1.240, 1.071, 0.977, 0.922, 0.914,
21488 & 0.961, 1.077, 1.214, 1.271, 1.290, 1.281, 1.217, 1.096, 0.979,
21489 & 0.896, 0.822, 0.736, 0.655, 0.608, 0.591, 0.580, 0.569, 0.559,
21490 & 0.550, 0.540, 0.531, 0.522, 0.514, 0.507, 0.500, 0.494, 0.489,
21491 & 0.485, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477/
21492* Lambda p
21493 DATA (ASIGEL(10,K),K=1,NPOINT) /
21494 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21495 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.630,
21496 & 1.600, 1.577, 1.558, 1.542, 1.528, 1.518, 1.510, 1.505, 1.502,
21497 & 1.501, 1.500, 1.499, 1.496, 1.491, 1.485, 1.477, 1.466, 1.454,
21498 & 1.440, 1.425, 1.408, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21499 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21500 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21501
21502 DATA (IDXDAT(K,1),K=1,25) /
21503 & 1, 2, 0, 0, 0, 0, 0, 3, 2, 0, 0,67, 4, 5, 6, 7,10, 2,67, 3,
21504 & 1, 3,45, 8, 9/
21505 DATA (IDXDAT(K,2),K=1,25) /
21506 & 3, 2, 0, 0, 0, 0, 0, 1, 2, 0, 0,89, 5, 4, 8, 9, 1, 2,89, 1,
21507 & 3, 1,45, 6, 7/
21508
21509 DATA LFIRST /.TRUE./
21510
21511 IF (LFIRST) THEN
21512 APLABL = LOG10(PLABLO)
21513 APLABH = LOG10(PLABHI)
21514 APTHRE = LOG10(PTHRE)
21515 ADP1 = (APTHRE-APLABL)/DBLE(NPOIN1)
21516 ADP2 = (APLABH-APTHRE)/DBLE(NPOIN2)
21517 DUM0 = ZERO
21518 PHOPLA = PLABHI
21519 PHOELA = SQRT(AAM(1)**2+PHOPLA**2)
21520 ECMS = SQRT(2.0D0*AAM(1)**2+2.0D0*AAM(1)*PHOELA)
21521 IF (MCGENE.EQ.2) THEN
21522 IF (ECMS.LE.SIGECM(1,ISIMAX)) THEN
21523 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,0)
21524 ELSE
21525 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21526 ENDIF
21527 ELSE
21528 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21529 ENDIF
21530 PHOSEL = PHOSTO-PHOSIN
21531 APHOST = LOG10(PHOSTO)
21532 APHOSE = LOG10(PHOSEL)
21533 LFIRST = .FALSE.
21534 ENDIF
21535 STOT = ZERO
21536 SELA = ZERO
21537 PLAB = PL
21538 ECMS = ECM
21539 IF ( (IP.LT.1).OR.((IT.NE.1).AND.(IT.NE.8)) ) THEN
21540 WRITE(LOUT,1000) IP,IT
21541 1000 FORMAT(1X,'DT_XSHN: cross sections not implemented for ',
21542 & 'proj/target',2I4)
21543 STOP
21544 ENDIF
21545
21546 IF ((PLAB.LE.ZERO).AND.(ECMS.GT.ZERO)) THEN
21547 ELAB = (ECMS**2-AAM(IP)**2-AAM(IT)**2)/(2.0D0*AAM(IT))
21548 PLAB = SQRT((ELAB-AAM(IP))*(ELAB+AAM(IP)))
21549 ELSEIF ((PLAB.LE.ZERO).AND.(ECMS.LE.ZERO)) THEN
21550 WRITE(LOUT,1001) PLAB,ECMS
21551 1001 FORMAT(1X,'DT_XSHN: invalid momentum/cm-energy ',2E15.5)
21552 STOP
21553 ENDIF
21554
21555* index of spectrum
21556 IDXP = IP
21557 IF (IP.GT.25) THEN
21558 IF (AAM(IP).GT.ZERO) THEN
21559 IF (ABS(IIBAR(IP)).GT.0) THEN
21560 IDXP = 1
21561 ELSE
21562 IDXP = 13
21563 ENDIF
21564 ELSE
21565 IDXP = 7
21566 ENDIF
21567 ENDIF
21568 IDXT = 1
21569 IF (IT.EQ.8) IDXT = 2
21570 IDXS = IDXDAT(IDXP,IDXT)
21571 IF (IDXS.EQ.0) RETURN
21572
21573* compute momentum bin indices
21574 IF (PLAB.LT.PLABLO) THEN
21575 IDX0 = 1
21576 IDX1 = 1
21577 ELSEIF (PLAB.GE.PLABHI) THEN
21578 IDX0 = NPOINT
21579 IDX1 = NPOINT
21580 ELSE
21581 APLAB = LOG10(PLAB)
21582 IF ((PLAB.GE.PLABLO).AND.(PLAB.LT.PTHRE )) THEN
21583 IDX0 = INT((APLAB-APLABL)/ADP1)+1
21584 ELSEIF ((PLAB.GE.PTHRE ).AND.(PLAB.LT.PLABHI)) THEN
21585 IDX0 = INT((APLAB-APTHRE)/ADP2)+NPOIN1+1
21586 ENDIF
21587 IDX1 = IDX0+1
21588 ENDIF
21589
21590* interpolate cross section
21591 IF (IDXS.GT.10) THEN
21592 IDXS1 = IDXS/10
21593 IDXS2 = IDXS-10*IDXS1
21594 IF (IDX0.EQ.IDX1) THEN
21595 IF (IDX0.EQ.1) THEN
21596 ASTOT = 0.5D0*(ASIGTO(IDXS1,IDX0)+ASIGTO(IDXS2,IDX0))
21597 ASELA = 0.5D0*(ASIGEL(IDXS1,IDX0)+ASIGEL(IDXS2,IDX0))
21598 ELSE
21599 DUM0 = ZERO
21600 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21601 PHOSEL = PHOSTO-PHOSIN
21602 ASTOT1 = ASIGTO(IDXS1,NPOINT)-APHOST+LOG10(PHOSTO)
21603 ASELA1 = ASIGEL(IDXS1,NPOINT)-APHOSE+LOG10(PHOSEL)
21604 ASTOT2 = ASIGTO(IDXS2,NPOINT)-APHOST+LOG10(PHOSTO)
21605 ASELA2 = ASIGEL(IDXS2,NPOINT)-APHOSE+LOG10(PHOSEL)
21606 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21607 ASELA = 0.5D0*(ASELA1+ASELA2)
21608 ENDIF
21609 ELSE
21610 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21611 ASTOT1 = ASIGTO(IDXS1,IDX0)+
21612 & FAC*(ASIGTO(IDXS1,IDX1)-ASIGTO(IDXS1,IDX0))
21613 ASTOT2 = ASIGTO(IDXS2,IDX0)+
21614 & FAC*(ASIGTO(IDXS2,IDX1)-ASIGTO(IDXS2,IDX0))
21615 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21616 ASELA1 = ASIGEL(IDXS1,IDX0)+
21617 & FAC*(ASIGEL(IDXS1,IDX1)-ASIGEL(IDXS1,IDX0))
21618 ASELA2 = ASIGEL(IDXS2,IDX0)+
21619 & FAC*(ASIGEL(IDXS2,IDX1)-ASIGEL(IDXS2,IDX0))
21620 ASELA = 0.5D0*(ASELA1+ASELA2)
21621 ENDIF
21622 ELSE
21623 IF (IDX0.EQ.IDX1) THEN
21624 IF (IDX0.EQ.1) THEN
21625 ASTOT = ASIGTO(IDXS,IDX0)
21626 ASELA = ASIGEL(IDXS,IDX0)
21627 ELSE
21628 DUM0 = ZERO
21629 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21630 PHOSEL = PHOSTO-PHOSIN
21631 ASTOT = ASIGTO(IDXS,NPOINT)-APHOST+LOG10(PHOSTO)
21632 ASELA = ASIGEL(IDXS,NPOINT)-APHOSE+LOG10(PHOSEL)
21633 ENDIF
21634 ELSE
21635 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21636 ASTOT = ASIGTO(IDXS,IDX0)+
21637 & FAC*(ASIGTO(IDXS,IDX1)-ASIGTO(IDXS,IDX0))
21638 ASELA = ASIGEL(IDXS,IDX0)+
21639 & FAC*(ASIGEL(IDXS,IDX1)-ASIGEL(IDXS,IDX0))
21640 ENDIF
21641 ENDIF
21642 STOT = 10.0D0**ASTOT
21643 SELA = 10.0D0**ASELA
21644
21645 RETURN
21646 END
21647
21648*$ CREATE DT_SIHNAB.FOR
21649*COPY DT_SIHNAB
21650*
21651*===sihnab===============================================================*
21652*
21653 SUBROUTINE DT_SIHNAB(IDP,IDT,PLAB,SIGABS)
21654
21655**********************************************************************
21656* Pion 2-nucleon absorption cross sections. *
21657* (sigma_tot for pi+ d --> p p, pi- d --> n n *
21658* taken from Ritchie PRC 28 (1983) 926 ) *
21659* This version dated 18.05.96 is written by S. Roesler *
21660**********************************************************************
21661
21662 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21663 SAVE
21664 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY3=1.0D-3)
21665 PARAMETER (AMPR = 938.0D0,
21666 & AMPI = 140.0D0,
21667 & AMDE = TWO*AMPR,
21668 & A = -1.2D0,
21669 & B = 3.5D0,
21670 & C = 7.4D0,
21671 & D = 5600.0D0,
21672 & ER = 2136.0D0)
21673
21674 SIGABS = ZERO
21675 IF ( ((IDP.NE.13).AND.(IDP.NE.14).AND.(IDP.NE.23))
21676 & .OR.((IDT.NE.1).AND.(IDT.NE.8)) ) RETURN
21677 PTOT = PLAB*1.0D3
21678 EKIN = SQRT(AMPI**2+PTOT**2)-AMPI
21679 IF ((EKIN.LT.TINY3).OR.(EKIN.GT.400.0D0)) RETURN
21680 ECM = SQRT( (AMPI+AMDE)**2+TWO*EKIN*AMDE )
21681 SIGABS = A+B/SQRT(EKIN)+C*1.0D4/((ECM-ER)**2+D)
21682* approximate 3N-abs., I=1-abs. etc.
21683 SIGABS = SIGABS/0.40D0
21684* pi0-absorption (rough approximation!!)
21685 IF (IDP.EQ.23) SIGABS = 0.5D0*SIGABS
21686
21687 RETURN
21688 END
21689
21690*$ CREATE DT_SIGEMU.FOR
21691*COPY DT_SIGEMU
21692*
21693*===sigemu=============================================================*
21694*
21695 SUBROUTINE DT_SIGEMU
21696
21697************************************************************************
21698* Combined cross section for target compounds. *
21699* This version dated 6.4.98 is written by S. Roesler *
21700************************************************************************
21701
21702 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21703 SAVE
21704 PARAMETER ( LINP = 10 ,
21705 & LOUT = 6 ,
21706 & LDAT = 9 )
21707 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21708 & OHALF=0.5D0,ONE=1.0D0)
21709
21710 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21711* Glauber formalism: cross sections
21712 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21713 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21714 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21715 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21716 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21717 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21718 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21719 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21720 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21721 & BSLOPE,NEBINI,NQBINI
21722* emulsion treatment
21723 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
21724 & NCOMPO,IEMUL
21725* nucleon-nucleon event-generator
21726 CHARACTER*8 CMODEL
21727 LOGICAL LPHOIN
21728 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21729
21730 IF (MCGENE.NE.4) THEN
21731 WRITE(LOUT,'(A)') ' DT_SIGEMU: Combined cross sections'
21732 WRITE(LOUT,'(15X,A)') '-----------------------'
21733 ENDIF
21734 DO 1 IE=1,NEBINI
21735 DO 2 IQ=1,NQBINI
21736 SIGTOT = ZERO
21737 SIGELA = ZERO
21738 SIGQEP = ZERO
21739 SIGQET = ZERO
21740 SIGQE2 = ZERO
21741 SIGPRO = ZERO
21742 SIGDEL = ZERO
21743 SIGDQE = ZERO
21744 ERRTOT = ZERO
21745 ERRELA = ZERO
21746 ERRQEP = ZERO
21747 ERRQET = ZERO
21748 ERRQE2 = ZERO
21749 ERRPRO = ZERO
21750 ERRDEL = ZERO
21751 ERRDQE = ZERO
21752 IF (NCOMPO.GT.0) THEN
21753 DO 3 IC=1,NCOMPO
21754 SIGTOT = SIGTOT+EMUFRA(IC)*XSTOT(IE,IQ,IC)
21755 SIGELA = SIGELA+EMUFRA(IC)*XSELA(IE,IQ,IC)
21756 SIGQEP = SIGQEP+EMUFRA(IC)*XSQEP(IE,IQ,IC)
21757 SIGQET = SIGQET+EMUFRA(IC)*XSQET(IE,IQ,IC)
21758 SIGQE2 = SIGQE2+EMUFRA(IC)*XSQE2(IE,IQ,IC)
21759 SIGPRO = SIGPRO+EMUFRA(IC)*XSPRO(IE,IQ,IC)
21760 SIGDEL = SIGDEL+EMUFRA(IC)*XSDEL(IE,IQ,IC)
21761 SIGDQE = SIGDQE+EMUFRA(IC)*XSDQE(IE,IQ,IC)
21762 ERRTOT = ERRTOT+XETOT(IE,IQ,IC)**2
21763 ERRELA = ERRELA+XEELA(IE,IQ,IC)**2
21764 ERRQEP = ERRQEP+XEQEP(IE,IQ,IC)**2
21765 ERRQET = ERRQET+XEQET(IE,IQ,IC)**2
21766 ERRQE2 = ERRQE2+XEQE2(IE,IQ,IC)**2
21767 ERRPRO = ERRPRO+XEPRO(IE,IQ,IC)**2
21768 ERRDEL = ERRDEL+XEDEL(IE,IQ,IC)**2
21769 ERRDQE = ERRDQE+XEDQE(IE,IQ,IC)**2
21770 3 CONTINUE
21771 ERRTOT = SQRT(ERRTOT)
21772 ERRELA = SQRT(ERRELA)
21773 ERRQEP = SQRT(ERRQEP)
21774 ERRQET = SQRT(ERRQET)
21775 ERRQE2 = SQRT(ERRQE2)
21776 ERRPRO = SQRT(ERRPRO)
21777 ERRDEL = SQRT(ERRDEL)
21778 ERRDQE = SQRT(ERRDQE)
21779 ELSE
21780 SIGTOT = XSTOT(IE,IQ,1)
21781 SIGELA = XSELA(IE,IQ,1)
21782 SIGQEP = XSQEP(IE,IQ,1)
21783 SIGQET = XSQET(IE,IQ,1)
21784 SIGQE2 = XSQE2(IE,IQ,1)
21785 SIGPRO = XSPRO(IE,IQ,1)
21786 SIGDEL = XSDEL(IE,IQ,1)
21787 SIGDQE = XSDQE(IE,IQ,1)
21788 ERRTOT = XETOT(IE,IQ,1)
21789 ERRELA = XEELA(IE,IQ,1)
21790 ERRQEP = XEQEP(IE,IQ,1)
21791 ERRQET = XEQET(IE,IQ,1)
21792 ERRQE2 = XEQE2(IE,IQ,1)
21793 ERRPRO = XEPRO(IE,IQ,1)
21794 ERRDEL = XEDEL(IE,IQ,1)
21795 ERRDQE = XEDQE(IE,IQ,1)
21796 ENDIF
21797 IF (MCGENE.NE.4) THEN
21798 WRITE(LOUT,1000) ECMNN(IE),Q2G(IQ)
21799 1000 FORMAT(/,1X,'E_cm =',F9.1,' GeV Q^2 =',F6.1,' GeV^2 :',/)
21800 WRITE(LOUT,1001) SIGTOT,ERRTOT
21801 1001 FORMAT(1X,'total',32X,F10.4,' +-',F11.5,' mb')
21802 WRITE(LOUT,1002) SIGELA,ERRELA
21803 1002 FORMAT(1X,'elastic',30X,F10.4,' +-',F11.5,' mb')
21804 WRITE(LOUT,1003) SIGQEP,ERRQEP
21805 1003 FORMAT(1X,'quasi-elastic (A+B-->A+X)',12X,F10.4,' +-',
21806 & F11.5,' mb')
21807 WRITE(LOUT,1004) SIGQET,ERRQET
21808 1004 FORMAT(1X,'quasi-elastic (A+B-->X+B)',12X,F10.4,' +-',
21809 & F11.5,' mb')
21810 WRITE(LOUT,1005) SIGQE2,ERRQE2
21811 1005 FORMAT(1X,'quasi-elastic (A+B-->X, excl. 2-4)',3X,F10.4,
21812 & ' +-',F11.5,' mb')
21813 WRITE(LOUT,1006) SIGPRO,ERRPRO
21814 1006 FORMAT(1X,'production',27X,F10.4,' +-',F11.5,' mb')
21815 WRITE(LOUT,1007) SIGDEL,ERRDEL
21816 1007 FORMAT(1X,'diff-el ',27X,F10.4,' +-',F11.5,' mb')
21817 WRITE(LOUT,1008) SIGDQE,ERRDQE
21818 1008 FORMAT(1X,'diff-qel ',27X,F10.4,' +-',F11.5,' mb')
21819 ENDIF
21820
21821 2 CONTINUE
21822 1 CONTINUE
21823
21824 RETURN
21825 END
21826
21827*$ CREATE DT_SIGGA.FOR
21828*COPY DT_SIGGA
21829*
21830*===sigga==============================================================*
21831*
21832 SUBROUTINE DT_SIGGA(NTI,XI,Q2I,ECMI,XNUI,STOT,ETOT,SIN,EIN,STOT0)
21833
21834************************************************************************
21835* Total/inelastic photon-nucleus cross sections. *
21836* !!!! Overwrites SHMAKI-initialization. Do not use it during *
21837* production runs !!!! *
21838* This version dated 27.03.96 is written by S. Roesler *
21839************************************************************************
21840
21841 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21842 SAVE
21843 PARAMETER ( LINP = 10 ,
21844 & LOUT = 6 ,
21845 & LDAT = 9 )
21846 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21847 & OHALF=0.5D0,ONE=1.0D0)
21848 PARAMETER (AMPROT = 0.938D0)
21849
21850 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21851* Glauber formalism: cross sections
21852 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21853 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21854 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21855 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21856 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21857 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21858 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21859 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21860 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21861 & BSLOPE,NEBINI,NQBINI
21862
21863 NT = NTI
21864 X = XI
21865 Q2 = Q2I
21866 ECM = ECMI
21867 XNU = XNUI
21868 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
21869 & ECM = SQRT(AMPROT**2-Q2+2.0D0*XNUI*AMPROT)
21870 CALL DT_XSGLAU(1,NT,7,X,Q2,ECM,1,1,-1)
21871 STOT = XSTOT(1,1,1)
21872 ETOT = XETOT(1,1,1)
21873 SIN = XSPRO(1,1,1)
21874 EIN = XEPRO(1,1,1)
21875
21876 RETURN
21877 END
21878
21879*$ CREATE DT_SIGGAT.FOR
21880*COPY DT_SIGGAT
21881*
21882*===siggat=============================================================*
21883*
21884 SUBROUTINE DT_SIGGAT(Q2I,ECMI,STOT,NT)
21885
21886************************************************************************
21887* Total/inelastic photon-nucleus cross sections. *
21888* Uses pre-tabulated cross section. *
21889* This version dated 29.07.96 is written by S. Roesler *
21890************************************************************************
21891
21892 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21893 SAVE
21894 PARAMETER ( LINP = 10 ,
21895 & LOUT = 6 ,
21896 & LDAT = 9 )
21897 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21898 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21899
21900 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21901* Glauber formalism: cross sections
21902 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21903 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21904 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21905 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21906 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21907 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21908 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21909 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21910 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21911 & BSLOPE,NEBINI,NQBINI
21912
21913 NTARG = ABS(NT)
21914 I1 = 1
21915 I2 = 1
21916 RATE = ONE
21917 IF (NEBINI.GT.1) THEN
21918 IF (ECMI.GE.ECMNN(NEBINI)) THEN
21919 I1 = NEBINI
21920 I2 = NEBINI
21921 RATE = ONE
21922 ELSEIF (ECMI.GT.ECMNN(1)) THEN
21923 DO 1 I=2,NEBINI
21924 IF (ECMI.LT.ECMNN(I)) THEN
21925 I1 = I-1
21926 I2 = I
21927 RATE = (ECMI-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
21928 GOTO 2
21929 ENDIF
21930 1 CONTINUE
21931 2 CONTINUE
21932 ENDIF
21933 ENDIF
21934 J1 = 1
21935 J2 = 1
21936 RATQ = ONE
21937 IF (NQBINI.GT.1) THEN
21938 IF (Q2I.GE.Q2G(NQBINI)) THEN
21939 J1 = NQBINI
21940 J2 = NQBINI
21941 RATQ = ONE
21942 ELSEIF (Q2I.GT.Q2G(1)) THEN
21943 DO 3 I=2,NQBINI
21944 IF (Q2I.LT.Q2G(I)) THEN
21945 J1 = I-1
21946 J2 = I
21947 RATQ = LOG10( Q2I/MAX(Q2G(J1),TINY14))/
21948 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
21949C RATQ = (Q2I-Q2G(J1))/(Q2G(J2)-Q2G(J1))
21950 GOTO 4
21951 ENDIF
21952 3 CONTINUE
21953 4 CONTINUE
21954 ENDIF
21955 ENDIF
21956
21957 STOT = XSTOT(I1,J1,NTARG)+
21958 & RATE*(XSTOT(I2,J1,NTARG)-XSTOT(I1,J1,NTARG))+
21959 & RATQ*(XSTOT(I1,J2,NTARG)-XSTOT(I1,J1,NTARG))+
21960 & RATE*RATQ*(XSTOT(I2,J2,NTARG)-XSTOT(I1,J2,NTARG)+
21961 & XSTOT(I1,J1,NTARG)-XSTOT(I2,J1,NTARG))
21962
21963 RETURN
21964 END
21965
21966*$ CREATE DT_SANO.FOR
21967*COPY DT_SANO
21968*
21969*===sigano=============================================================*
21970*
21971 DOUBLE PRECISION FUNCTION DT_SANO(ECM)
21972
21973************************************************************************
21974* This version dated 31.07.96 is written by S. Roesler *
21975************************************************************************
21976
21977 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21978 SAVE
21979 PARAMETER ( LINP = 10 ,
21980 & LOUT = 6 ,
21981 & LDAT = 9 )
21982 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21983 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21984 PARAMETER (NE = 8)
21985
21986* VDM parameter for photon-nucleus interactions
21987 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
21988* properties of interacting particles
21989 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
21990
21991 DIMENSION ECMANO(NE),FRAANO(NE),SIGHRD(NE)
21992 DATA ECMANO /
21993 & 0.200D+02,0.500D+02,0.100D+03,0.200D+03,0.500D+03,
21994 & 0.100D+04,0.200D+04,0.500D+04
21995 & /
21996* fixed cut (3 GeV/c)
21997 DATA FRAANO /
21998 & 0.085D+00,0.114D+00,0.105D+00,0.091D+00,0.073D+00,
21999 & 0.062D+00,0.054D+00,0.042D+00
22000 & /
22001 DATA SIGHRD /
22002 & 4.0099D-04,3.3104D-03,1.1905D-02,3.6435D-02,1.3493D-01,
22003 & 3.3086D-01,7.6255D-01,2.1319D+00
22004 & /
22005* running cut (based on obsolete Phojet-caluclations, bugs..)
22006C DATA FRAANO /
22007C & 0.251E+00,0.313E+00,0.279E+00,0.239E+00,0.186E+00,
22008C & 0.167E+00,0.150E+00,0.131E+00
22009C & /
22010C DATA SIGHRD /
22011C & 6.6569E-04,4.4949E-03,1.4837E-02,4.1466E-02,1.5071E-01,
22012C & 2.5736E-01,4.5593E-01,8.2550E-01
22013C & /
22014
22015 DT_SANO = ZERO
22016 IF ((ISHAD(2).NE.1).OR.(IJPROJ.NE.7)) RETURN
22017 J1 = 0
22018 J2 = 0
22019 RATE = ONE
22020 IF (ECM.GE.ECMANO(NE)) THEN
22021 J1 = NE
22022 J2 = NE
22023 ELSEIF (ECM.GT.ECMANO(1)) THEN
22024 DO 1 IE=2,NE
22025 IF (ECM.LT.ECMANO(IE)) THEN
22026 J1 = IE-1
22027 J2 = IE
22028 RATE = LOG10(ECM/ECMANO(J1))/LOG10(ECMANO(J2)/ECMANO(J1))
22029 GOTO 2
22030 ENDIF
22031 1 CONTINUE
22032 2 CONTINUE
22033 ENDIF
22034 IF ((J1.GT.0).AND.(J2.GT.0)) THEN
22035 AFRA1 = LOG10(MAX(FRAANO(J1)*SIGHRD(J1),TINY14))
22036 AFRA2 = LOG10(MAX(FRAANO(J2)*SIGHRD(J2),TINY14))
22037 DT_SANO = 10.0D0**(AFRA1+RATE*(AFRA2-AFRA1))
22038 ENDIF
22039
22040 RETURN
22041 END
22042
22043*$ CREATE DT_SIGGP.FOR
22044*COPY DT_SIGGP
22045*
22046*===siggp==============================================================*
22047*
22048 SUBROUTINE DT_SIGGP(XI,Q2I,ECMI,XNUI,STOT,SINE,SDIR)
22049
22050************************************************************************
22051* Total/inelastic photon-nucleon cross sections. *
22052* This version dated 30.04.96 is written by S. Roesler *
22053************************************************************************
22054
22055 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22056 SAVE
22057 PARAMETER ( LINP = 10 ,
22058 & LOUT = 6 ,
22059 & LDAT = 9 )
22060 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22061 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22062 & PI = TWOPI/TWO,
22063 & GEV2MB = 0.38938D0,
22064 & ALPHEM = ONE/137.0D0)
22065
22066* particle properties (BAMJET index convention)
22067 CHARACTER*8 ANAME
22068 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22069 & IICH(210),IIBAR(210),K1(210),K2(210)
22070* VDM parameter for photon-nucleus interactions
22071 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22072
22073**PHOJET105a
22074C CHARACTER*8 MDLNA
22075C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
22076C PARAMETER (IEETAB=10)
22077C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
22078**PHOJET110
22079C model switches and parameters
22080 CHARACTER*8 MDLNA
22081 INTEGER ISWMDL,IPAMDL
22082 DOUBLE PRECISION PARMDL
22083 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
22084C energy-interpolation table
22085 INTEGER IEETA2
22086 PARAMETER ( IEETA2 = 20 )
22087 INTEGER ISIMAX
22088 DOUBLE PRECISION SIGTAB,SIGECM
22089 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
22090**
22091
22092C PARAMETER (NPOINT=80)
22093 PARAMETER (NPOINT=16)
22094 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22095
22096 STOT = ZERO
22097 SINE = ZERO
22098 SDIR = ZERO
22099
22100 W2 = ECMI**2
22101 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22102 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22103 Q2 = Q2I
22104 X = XI
22105* photoprod.
22106 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22107 Q2 = 0.0001D0
22108 X = Q2/(W2+Q2-AAM(1)**2)
22109* DIS
22110 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22111 X = Q2/(W2+Q2-AAM(1)**2)
22112 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22113 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22114 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22115 W2 = Q2*(ONE-X)/X+AAM(1)**2
22116 ELSE
22117 WRITE(LOUT,*) 'SIGGP: inconsistent input ',W2,Q2,X
22118 STOP
22119 ENDIF
22120 ECM = SQRT(W2)
22121
22122 IF (MODEGA.EQ.1) THEN
22123 SCALE = SQRT(Q2)
22124 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22125 & IDPDF)
22126C W = SQRT(W2)
22127C ALLMF2 = PHO_ALLM97(Q2,W)
22128C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22129 STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22130 SINE = ZERO
22131 SDIR = ZERO
22132 ELSEIF (MODEGA.EQ.2) THEN
22133 IF (INTRGE(1).EQ.1) THEN
22134 AMLO2 = (3.0D0*AAM(13))**2
22135 ELSEIF (INTRGE(1).EQ.2) THEN
22136 AMLO2 = AAM(33)**2
22137 ELSE
22138 AMLO2 = AAM(96)**2
22139 ENDIF
22140 IF (INTRGE(2).EQ.1) THEN
22141 AMHI2 = W2/TWO
22142 ELSEIF (INTRGE(2).EQ.2) THEN
22143 AMHI2 = W2/4.0D0
22144 ELSE
22145 AMHI2 = W2
22146 ENDIF
22147 AMHI20 = (ECM-AAM(1))**2
22148 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22149 XAMLO = LOG( AMLO2+Q2 )
22150 XAMHI = LOG( AMHI2+Q2 )
22151**PHOJET105a
22152C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22153**PHOJET112
22154 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22155**
22156 SUM = ZERO
22157 DO 1 J=1,NPOINT
22158 AM2 = EXP(ABSZX(J))-Q2
22159 IF (AM2.LT.16.0D0) THEN
22160 R = TWO
22161 ELSEIF ((AM2.GE.16.0D0).AND.(AM2.LT.121.0D0)) THEN
22162 R = 10.0D0/3.0D0
22163 ELSE
22164 R = 11.0D0/3.0D0
22165 ENDIF
22166C FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22167 FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22168 & * (ONE+EPSPOL*Q2/AM2)
22169 SUM = SUM+WEIGHT(J)*FAC
22170 1 CONTINUE
22171 SINE = SUM
22172 SDIR = DT_SIGVP(X,Q2)
22173 STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*SDIR
22174 SDIR = SDIR/(0.588D0+RL2+Q2)
22175C STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*DT_SIGVP(X,Q2)
22176 ELSEIF (MODEGA.EQ.3) THEN
22177 CALL DT_SIGGA(1,XI,Q2I,ECMI,ZERO,STOT,ETOT,SINE,EINE,DUM)
22178 ELSEIF (MODEGA.EQ.4) THEN
22179* load cross sections from PHOJET interpolation table
22180 IP = 1
22181 IF(ECM.LE.SIGECM(IP,1)) THEN
22182 I1 = 1
22183 I2 = 1
22184 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
22185 DO 2 I=2,ISIMAX
22186 IF (ECM.LE.SIGECM(IP,I)) GOTO 3
22187 2 CONTINUE
22188 3 CONTINUE
22189 I1 = I-1
22190 I2 = I
22191 ELSE
22192 WRITE(LOUT,'(/1X,A,2E12.3)')
22193 & 'SIGGP:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
22194 I1 = ISIMAX
22195 I2 = ISIMAX
22196 ENDIF
22197 FAC2 = ZERO
22198 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
22199 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
22200 FAC1 = ONE-FAC2
22201* cross section dependence on photon virtuality
22202 FSUP1 = ZERO
22203 DO 4 I=1,3
22204 FSUP1 = FSUP1+PARMDL(26+I)*(1.D0+Q2/(4.D0*PARMDL(30+I)))
22205 & /(1.D0+Q2/PARMDL(30+I))**2
22206 4 CONTINUE
22207 FSUP1 = FSUP1+PARMDL(30)/(1.D0+Q2/PARMDL(34))
22208 FAC1 = FAC1*FSUP1
22209 FAC2 = FAC2*FSUP1
22210 FSUP2 = 1.0D0
22211 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
22212 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
22213 SDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
22214**re:
22215 STOT = STOT-SDIR
22216**
22217 SDIR = SDIR/(FSUP1*FSUP2)
22218**re:
22219 STOT = STOT+SDIR
22220**
22221 ENDIF
22222
22223 RETURN
22224 END
22225
22226*$ CREATE DT_SIGVEL.FOR
22227*COPY DT_SIGVEL
22228*
22229*===sigvel=============================================================*
22230*
22231 SUBROUTINE DT_SIGVEL(XI,Q2I,ECMI,XNUI,IDXV,SVEL,SIG1,SIG2)
22232
22233************************************************************************
22234* Cross section for elastic vector meson production *
22235* This version dated 10.05.96 is written by S. Roesler *
22236************************************************************************
22237
22238 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22239 SAVE
22240 PARAMETER ( LINP = 10 ,
22241 & LOUT = 6 ,
22242 & LDAT = 9 )
22243 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22244 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22245 & PI = TWOPI/TWO,
22246 & GEV2MB = 0.38938D0,
22247 & ALPHEM = ONE/137.0D0)
22248
22249* particle properties (BAMJET index convention)
22250 CHARACTER*8 ANAME
22251 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22252 & IICH(210),IIBAR(210),K1(210),K2(210)
22253* VDM parameter for photon-nucleus interactions
22254 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22255
22256 W2 = ECMI**2
22257 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22258 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22259 Q2 = Q2I
22260 X = XI
22261* photoprod.
22262 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22263 Q2 = 0.0001D0
22264 X = Q2/(W2+Q2-AAM(1)**2)
22265* DIS
22266 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22267 X = Q2/(W2+Q2-AAM(1)**2)
22268 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22269 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22270 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22271 W2 = Q2*(ONE-X)/X+AAM(1)**2
22272 ELSE
22273 WRITE(LOUT,*) 'SIGVEL: inconsistent input ',W2,Q2,X
22274 STOP
22275 ENDIF
22276 ECM = SQRT(W2)
22277
22278 AMV = AAM(IDXV)
22279 AMV2 = AMV**2
22280
22281 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
22282 & +0.25D0*LOG(W2/(AMV2+Q2)))*GEV2MB
22283 ROSH = 0.1D0
22284 STOVP = DT_SIGVP(X,Q2)/(AMV2+Q2+RL2)
22285 SELVP = STOVP**2*(ONE+ROSH**2)/(8.0D0*TWOPI*BSLOPE)
22286
22287 IF (IDXV.EQ.33) THEN
22288 COUPL = 0.00365D0
22289 ELSE
22290 STOP
22291 ENDIF
22292 SIG1 = (AMV2/(AMV2+Q2))**2 * (ONE+EPSPOL*Q2/AMV2)
22293 SIG2 = SELVP
22294 SVEL = COUPL * (AMV2/(AMV2+Q2))**2
22295 & * (ONE+EPSPOL*Q2/AMV2) * SELVP
22296
22297 RETURN
22298 END
22299
22300*$ CREATE DT_SIGVP.FOR
22301*COPY DT_SIGVP
22302*
22303*===sigvp==============================================================*
22304*
22305 DOUBLE PRECISION FUNCTION DT_SIGVP(XI,Q2I)
22306
22307************************************************************************
22308* sigma_Vp *
22309************************************************************************
22310
22311 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22312 SAVE
22313
22314 PARAMETER ( LINP = 10 ,
22315 & LOUT = 6 ,
22316 & LDAT = 9 )
22317 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22318 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22319 & PI = TWOPI/TWO,
22320 & GEV2MB = 0.38938D0,
22321 & AMPROT = 0.938D0,
22322 & ALPHEM = ONE/137.0D0)
22323* VDM parameter for photon-nucleus interactions
22324 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22325
22326 X = XI
22327 Q2 = Q2I
22328 IF (XI.LE.ZERO) X = 0.0001D0
22329 IF (Q2I.LE.ZERO) Q2 = 0.0001D0
22330
22331 ECM = SQRT( Q2*(ONE-X)/X+AMPROT**2 )
22332
22333 SCALE = SQRT(Q2)
22334 IF (MODEGA.EQ.1) THEN
22335 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22336 & IDPDF)
22337C W = ECM
22338C ALLMF2 = PHO_ALLM97(Q2,W)
22339C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22340C STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22341C DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))
22342 DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))*GEV2MB
22343 ELSEIF (MODEGA.EQ.4) THEN
22344 CALL DT_SIGGP(X,Q2,ECM,DUM1,STOT,DUM2,DUM3)
22345C F2 = Q2*(ONE-X)/(TWOPI**2*ALPHEM*GEV2MB) * STOT
22346 DT_SIGVP = 3.0D0*PI/(ALPHEM*DT_RRM2(X,Q2)) * STOT
22347 ELSE
22348 STOP ' DT_SIGVP: F2 not defined for this MODEGA !'
22349 ENDIF
22350
22351 RETURN
22352
22353 END
22354
22355*$ CREATE DT_RRM2.FOR
22356*COPY DT_RRM2
22357*
22358*===RRM2===============================================================*
22359*
22360 DOUBLE PRECISION FUNCTION DT_RRM2(X,Q2)
22361
22362 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22363 SAVE
22364 PARAMETER ( LINP = 10 ,
22365 & LOUT = 6 ,
22366 & LDAT = 9 )
22367 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22368 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22369 & PI = TWOPI/TWO,
22370 & GEV2MB = 0.38938D0)
22371
22372* particle properties (BAMJET index convention)
22373 CHARACTER*8 ANAME
22374 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22375 & IICH(210),IIBAR(210),K1(210),K2(210)
22376* VDM parameter for photon-nucleus interactions
22377 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22378
22379 S = Q2*(ONE-X)/X+AAM(1)**2
22380 ECM = SQRT(S)
22381
22382 IF (INTRGE(1).EQ.1) THEN
22383 AMLO2 = (3.0D0*AAM(13))**2
22384 ELSEIF (INTRGE(1).EQ.2) THEN
22385 AMLO2 = AAM(33)**2
22386 ELSE
22387 AMLO2 = AAM(96)**2
22388 ENDIF
22389 IF (INTRGE(2).EQ.1) THEN
22390 AMHI2 = S/TWO
22391 ELSEIF (INTRGE(2).EQ.2) THEN
22392 AMHI2 = S/4.0D0
22393 ELSE
22394 AMHI2 = S
22395 ENDIF
22396 AMHI20 = (ECM-AAM(1))**2
22397 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22398
22399 AM1C2 = 16.0D0
22400 AM2C2 = 121.0D0
22401 IF (AMHI2.LE.AM1C2) THEN
22402 DT_RRM2 = TWO*DT_RM2(AMLO2,AMHI2,Q2)
22403 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22404 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22405 & 10.0D0/3.0D0*DT_RM2(AM1C2,AMHI2,Q2)
22406 ELSE
22407 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22408 & 10.0D0/3.0D0*DT_RM2(AM1C2,AM2C2,Q2)+
22409 & 11.0D0/3.0D0*DT_RM2(AM2C2,AMHI2,Q2)
22410 ENDIF
22411
22412 RETURN
22413 END
22414
22415*$ CREATE DT_RM2.FOR
22416*COPY DT_RM2
22417*
22418*===RM2================================================================*
22419*
22420 DOUBLE PRECISION FUNCTION DT_RM2(AMLO2,AMHI2,Q2)
22421
22422 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22423 SAVE
22424 PARAMETER ( LINP = 10 ,
22425 & LOUT = 6 ,
22426 & LDAT = 9 )
22427 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22428 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22429 & PI = TWOPI/TWO,
22430 & GEV2MB = 0.38938D0)
22431* VDM parameter for photon-nucleus interactions
22432 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22433
22434 IF (RL2.LE.ZERO) THEN
22435 DT_RM2 = -ONE/(AMHI2+Q2)+Q2/(TWO*(AMHI2+Q2)**2) -
22436 & (-ONE/(AMLO2+Q2)+Q2/(TWO*(AMLO2+Q2)**2))
22437 & +EPSPOL*(-Q2/(TWO*(AMHI2+Q2)**2)+Q2/(TWO*(AMLO2+Q2)**2))
22438 ELSE
22439 TMPMLO = LOG(ONE+RL2/(AMLO2+Q2))
22440 TMPMHI = LOG(ONE+RL2/(AMHI2+Q2))
22441 DT_RM2 = Q2/(RL2*(AMHI2+Q2))-(Q2+RL2)/RL2**2*TMPMHI
22442 & -(Q2/(RL2*(AMLO2+Q2))-(Q2+RL2)/RL2**2*TMPMLO)
22443 & +EPSPOL*(
22444 & -Q2/(RL2*(AMHI2+Q2))+Q2/RL2**2*TMPMHI
22445 & -(-Q2/(RL2*(AMLO2+Q2))+Q2/RL2**2*TMPMLO))
22446 ENDIF
22447
22448 RETURN
22449 END
22450
22451*$ CREATE DT_SAM2.FOR
22452*COPY DT_SAM2
22453*
22454*===SAM2===============================================================*
22455*
22456 DOUBLE PRECISION FUNCTION DT_SAM2(Q2,ECM)
22457
22458 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22459 SAVE
22460 PARAMETER ( LINP = 10 ,
22461 & LOUT = 6 ,
22462 & LDAT = 9 )
22463 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
22464 & TENTRD=10.0D0/3.0D0,ELVTRD=11.0D0/3.0D0)
22465 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22466 & PI = TWOPI/TWO,
22467 & GEV2MB = 0.38938D0)
22468
22469* particle properties (BAMJET index convention)
22470 CHARACTER*8 ANAME
22471 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22472 & IICH(210),IIBAR(210),K1(210),K2(210)
22473* VDM parameter for photon-nucleus interactions
22474 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22475
22476 S = ECM**2
22477 IF (INTRGE(1).EQ.1) THEN
22478 AMLO2 = (3.0D0*AAM(13))**2
22479 ELSEIF (INTRGE(1).EQ.2) THEN
22480 AMLO2 = AAM(33)**2
22481 ELSE
22482 AMLO2 = AAM(96)**2
22483 ENDIF
22484 IF (INTRGE(2).EQ.1) THEN
22485 AMHI2 = S/TWO
22486 ELSEIF (INTRGE(2).EQ.2) THEN
22487 AMHI2 = S/4.0D0
22488 ELSE
22489 AMHI2 = S
22490 ENDIF
22491 AMHI20 = (ECM-AAM(1))**2
22492 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22493
22494 AM1C2 = 16.0D0
22495 AM2C2 = 121.0D0
22496 YLO = LOG(AMLO2+Q2)
22497 YC1 = LOG(AM1C2+Q2)
22498 YC2 = LOG(AM2C2+Q2)
22499 YHI = LOG(AMHI2+Q2)
22500 IF (AMHI2.LE.AM1C2) THEN
22501 FACHI = TWO
22502 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22503 FACHI = TENTRD
22504 ELSE
22505 FACHI = ELVTRD
22506 ENDIF
22507
22508 1 CONTINUE
22509 YSAM2 = YLO+(YHI-YLO)*DT_RNDM(AM1C2)
22510 IF (YSAM2.LE.YC1) THEN
22511 FAC = TWO
22512 ELSEIF ((YSAM2.GT.YC1).AND.(YSAM2.LE.YC2)) THEN
22513 FAC = TENTRD
22514 ELSE
22515 FAC = ELVTRD
22516 ENDIF
22517 WEIGMX = FACHI*(ONE-Q2*EXP( -YHI))
22518 XSAM2 = FAC *(ONE-Q2*EXP(-YSAM2))
22519 IF (DT_RNDM(YSAM2)*WEIGMX.GT.XSAM2) GOTO 1
22520
22521 DT_SAM2 = EXP(YSAM2)-Q2
22522
22523 RETURN
22524 END
22525
22526*$ CREATE DT_CKMT.FOR
22527*COPY DT_CKMT
22528*
22529*===ckmt===============================================================*
22530*
22531 SUBROUTINE DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,
22532 & F2,IPAR)
22533
22534************************************************************************
22535* This version dated 31.01.96 is written by S. Roesler *
22536************************************************************************
22537
22538 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22539 SAVE
22540 PARAMETER ( LINP = 10 ,
22541 & LOUT = 6 ,
22542 & LDAT = 9 )
22543 PARAMETER (ZERO=0.0D0,TWO=2.0D0,TINY10=1.0D-10)
22544
22545 PARAMETER (Q02 = 2.0D0,
22546 & DQ2 = 10.05D0,
22547 & Q12 = Q02+DQ2)
22548
22549 DIMENSION PD(-6:6),SEA(3),VAL(2)
22550
22551 CALL DT_PDF0(Q02,X,F2Q0,VAL,SEA,GLU,IPAR)
22552 CALL DT_PDF0(Q12,X,F2Q1,VAL,SEA,GLU,IPAR)
22553 ADQ2 = LOG10(Q12)-LOG10(Q02)
22554 F2P = (F2Q1-F2Q0)/ADQ2
22555 CALL DT_CKMTX(IPAR,X,Q02,PD,F2PQ0)
22556 CALL DT_CKMTX(IPAR,X,Q12,PD,F2PQ1)
22557 F2PP = (F2PQ1-F2PQ0)/ADQ2
22558 FX = (F2P-F2PP)/(F2PP+LOG(DQ2)*F2PQ0+TINY10)*Q02
22559
22560 Q2 = MAX(SCALE**2.0D0,TINY10)
22561 SMOOTH = 1.0D0+FX*(Q2-Q02)/Q2**2
22562 IF (Q2.LT.Q02) THEN
22563 CALL DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22564 UPV = VAL(1)
22565 DNV = VAL(2)
22566 USEA = SEA(1)
22567 DSEA = SEA(2)
22568 STR = SEA(3)
22569 CHM = 0.0D0
22570 BOT = 0.0D0
22571 TOP = 0.0D0
22572 GL = GLU
22573 ELSE
22574 CALL DT_CKMTX(IPAR,X,Q2,PD,F2)
22575 F2 = F2*SMOOTH
22576 UPV = PD(2)-PD(3)
22577 DNV = PD(1)-PD(3)
22578 USEA = PD(3)
22579 DSEA = PD(3)
22580 STR = PD(3)
22581 CHM = PD(4)
22582 BOT = PD(5)
22583 TOP = PD(6)
22584 GL = PD(0)
22585C UPV = UPV*SMOOTH
22586C DNV = DNV*SMOOTH
22587C USEA = USEA*SMOOTH
22588C DSEA = DSEA*SMOOTH
22589C STR = STR*SMOOTH
22590C CHM = CHM*SMOOTH
22591C GL = GL*SMOOTH
22592 ENDIF
22593
22594 RETURN
22595 END
22596C
22597
22598*$ CREATE DT_CKMTX.FOR
22599*COPY DT_CKMTX
22600 SUBROUTINE DT_CKMTX(IPAR,X,SCALE2,PD,F2)
22601C**********************************************************************
22602C
22603C PDF based on Regge theory, evolved with .... by ....
22604C
22605C input: IPAR 2212 proton (not installed)
22606C 45 Pomeron
22607C 100 Deuteron
22608C
22609C output: PD(-6:6) x*f(x) parton distribution functions
22610C (PDFLIB convention: d = PD(1), u = PD(2) )
22611C
22612C**********************************************************************
22613
22614 SAVE
22615 DOUBLE PRECISION X,SCALE2,PD(-6:6),CDN,CUP,F2
22616 PARAMETER ( LINP = 10 ,
22617 & LOUT = 6 ,
22618 & LDAT = 9 )
22619 DIMENSION QQ(7)
22620C
22621 Q2=SNGL(SCALE2)
22622 Q1S=Q2
22623 XX=SNGL(X)
22624C QCD lambda for evolution
22625 OWLAM = 0.23D0
22626 OWLAM2=OWLAM**2
22627C Q0**2 for evolution
22628 Q02 = 2.D0
22629C
22630C
22631C the conventions are : q(1)=x*u, q(2)=x*d, q(3)=q(4)=x*sbar=x*ubar=...
22632C q(6)=x*charm, q(7)=x*gluon
22633C
22634 SB=0.
22635 IF(Q2-Q02) 1,1,2
22636 2 SB=LOG(LOG(Q2/OWLAM2)/LOG(Q02/OWLAM2))
22637 1 CONTINUE
22638 IF(IPAR.EQ.2212) THEN
22639 CALL DT_CKMTPR(1,0,XX,SB,QQ(1))
22640 CALL DT_CKMTPR(2,0,XX,SB,QQ(2))
22641 CALL DT_CKMTPR(3,0,XX,SB,QQ(3))
22642 CALL DT_CKMTPR(4,0,XX,SB,QQ(4))
22643 CALL DT_CKMTPR(5,0,XX,SB,QQ(5))
22644 CALL DT_CKMTPR(8,0,XX,SB,QQ(6))
22645 CALL DT_CKMTPR(7,0,XX,SB,QQ(7))
22646C ELSEIF (IPAR.EQ.45) THEN
22647C CALL CKMTPO(1,0,XX,SB,QQ(1))
22648C CALL CKMTPO(2,0,XX,SB,QQ(2))
22649C CALL CKMTPO(3,0,XX,SB,QQ(3))
22650C CALL CKMTPO(4,0,XX,SB,QQ(4))
22651C CALL CKMTPO(5,0,XX,SB,QQ(5))
22652C CALL CKMTPO(8,0,XX,SB,QQ(6))
22653C CALL CKMTPO(7,0,XX,SB,QQ(7))
22654 ELSEIF (IPAR.EQ.100) THEN
22655 CALL DT_CKMTDE(1,0,XX,SB,QQ(1))
22656 CALL DT_CKMTDE(2,0,XX,SB,QQ(2))
22657 CALL DT_CKMTDE(3,0,XX,SB,QQ(3))
22658 CALL DT_CKMTDE(4,0,XX,SB,QQ(4))
22659 CALL DT_CKMTDE(5,0,XX,SB,QQ(5))
22660 CALL DT_CKMTDE(8,0,XX,SB,QQ(6))
22661 CALL DT_CKMTDE(7,0,XX,SB,QQ(7))
22662 ELSE
22663 WRITE(LOUT,'(1X,A,I4,A)')
22664 & 'CKMTX: IPAR =',IPAR,' not implemented!'
22665 STOP
22666 ENDIF
22667C
22668 PD(-6) = 0.D0
22669 PD(-5) = 0.D0
22670 PD(-4) = DBLE(QQ(6))
22671 PD(-3) = DBLE(QQ(3))
22672 PD(-2) = DBLE(QQ(4))
22673 PD(-1) = DBLE(QQ(5))
22674 PD(0) = DBLE(QQ(7))
22675 PD(1) = DBLE(QQ(2))
22676 PD(2) = DBLE(QQ(1))
22677 PD(3) = DBLE(QQ(3))
22678 PD(4) = DBLE(QQ(6))
22679 PD(5) = 0.D0
22680 PD(6) = 0.D0
22681 IF(IPAR.EQ.45) THEN
22682 CDN = (PD(1)-PD(-1))/2.D0
22683 CUP = (PD(2)-PD(-2))/2.D0
22684 PD(-1) = PD(-1) + CDN
22685 PD(-2) = PD(-2) + CUP
22686 PD(1) = PD(-1)
22687 PD(2) = PD(-2)
22688 ENDIF
22689 F2 = 4.0D0/9.0D0*(PD(2)-PD(3)+2.0D0*PD(3))+
22690 & 1.0D0/9.0D0*(PD(1)-PD(3)+2.0D0*PD(3))+
22691 & 1.0D0/9.0D0*(2.0D0*PD(3))+4.0D0/9.0D0*(2.0D0*PD(4))
22692 END
22693C
22694
22695*$ CREATE DT_PDF0.FOR
22696*COPY DT_PDF0
22697*
22698*===pdf0===============================================================*
22699*
22700 SUBROUTINE DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22701
22702************************************************************************
22703* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22704* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22705* IPAR = 2212 proton *
22706* = 100 deuteron *
22707* This version dated 31.01.96 is written by S. Roesler *
22708************************************************************************
22709
22710 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22711 SAVE
22712 PARAMETER ( LINP = 10 ,
22713 & LOUT = 6 ,
22714 & LDAT = 9 )
22715 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22716
22717 PARAMETER (
22718 & AA = 0.1502D0,
22719 & BBDEU = 1.2D0,
22720 & BUD = 0.754D0,
22721 & BDD = 0.4495D0,
22722 & BUP = 1.2064D0,
22723 & BDP = 0.1798D0,
22724 & DELTA0 = 0.07684D0,
22725 & D = 1.117D0,
22726 & C = 3.5489D0,
22727 & A = 0.2631D0,
22728 & B = 0.6452D0,
22729 & ALPHAR = 0.415D0,
22730 & E = 0.1D0
22731 & )
22732
22733 PARAMETER (NPOINT=16)
22734C DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22735 DIMENSION SEA(3),VAL(2)
22736
22737 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22738 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22739* proton, deuteron
22740 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22741 CALL DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22742 SEA(1) = 0.75D0*SEA0
22743 SEA(2) = SEA(1)
22744 SEA(3) = SEA(1)
22745 VAL(1) = 9.0D0/4.0D0*VALU0
22746 VAL(2) = 9.0D0*VALD0
22747 GLU0 = SEA(1)/(1.0D0-X)
22748 F2 = SEA0+VALU0+VALD0
22749 F2PDF = 4.0D0/9.0D0*(VAL(1)+2.0D0*SEA(1))+
22750 & 1.0D0/9.0D0*(VAL(2)+2.0D0*SEA(2))+
22751 & 1.0D0/9.0D0*(2.0D0*SEA(3))
22752 IF (ABS(F2-F2PDF).GT.TINY9) THEN
22753 WRITE(LOUT,'(1X,A,2E15.5)') 'inconsistent PDF! ',F2,F2PDF
22754 STOP
22755 ENDIF
22756**PHOJET105a
22757C CALL GSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22758**PHOJET112
22759C CALL PHO_GAUSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22760**
22761C SUMQ = ZERO
22762C SUMG = ZERO
22763C DO 1 J=1,NPOINT
22764C CALL DT_CKMTQ0(Q2,ABSZX(J),IPAR,VALU0,VALD0,SEA0)
22765C VALU0 = 9.0D0/4.0D0*VALU0
22766C VALD0 = 9.0D0*VALD0
22767C SEA0 = 0.75D0*SEA0
22768C SUMQ = SUMQ+ (VALU0+VALD0+6.0D0*SEA0) *WEIGHT(J)
22769C SUMG = SUMG+ (SEA0/(1.0D0-ABSZX(J))) *WEIGHT(J)
22770C 1 CONTINUE
22771C GLU = GLU0*(1.0D0-SUMQ)/SUMG
22772 ELSE
22773 WRITE(LOUT,'(1X,A,I4,A)')
22774 & 'PDF0: IPAR =',IPAR,' not implemented!'
22775 STOP
22776 ENDIF
22777
22778 RETURN
22779 END
22780
22781*$ CREATE DT_CKMTQ0.FOR
22782*COPY DT_CKMTQ0
22783*
22784*===ckmtq0=============================================================*
22785*
22786 SUBROUTINE DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22787
22788************************************************************************
22789* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22790* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22791* IPAR = 2212 proton *
22792* = 100 deuteron *
22793* This version dated 31.01.96 is written by S. Roesler *
22794************************************************************************
22795
22796 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22797 SAVE
22798 PARAMETER ( LINP = 10 ,
22799 & LOUT = 6 ,
22800 & LDAT = 9 )
22801 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22802
22803 PARAMETER (
22804 & AA = 0.1502D0,
22805 & BBDEU = 1.2D0,
22806 & BUD = 0.754D0,
22807 & BDD = 0.4495D0,
22808 & BUP = 1.2064D0,
22809 & BDP = 0.1798D0,
22810 & DELTA0 = 0.07684D0,
22811 & D = 1.117D0,
22812 & C = 3.5489D0,
22813 & A = 0.2631D0,
22814 & B = 0.6452D0,
22815 & ALPHAR = 0.415D0,
22816 & E = 0.1D0
22817 & )
22818
22819 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22820 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22821* proton, deuteron
22822 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22823 IF (IPAR.EQ.2212) THEN
22824 BU = BUP
22825 BD = BDP
22826 ELSE
22827 BU = BUD
22828 BD = BDD
22829 ENDIF
22830 SEA0 = AA*X**(-DELTA)*(1.0D0-X)**(AN+4.0D0)*
22831 & (Q2/(Q2+A))**(1.0D0+DELTA)
22832 VALU0 = BU*X**(1.0D0-ALPHAR)*(1.0D0-X)**AN*
22833 & (Q2/(Q2+B))**(ALPHAR)
22834 VALD0 = BD*X**(1.0D0-ALPHAR)*(1.0D0-X)**(AN+1.0D0)*
22835 & (Q2/(Q2+B))**(ALPHAR)
22836 ELSE
22837 WRITE(LOUT,'(1X,A,I4,A)')
22838 & 'CKMTQ0: IPAR =',IPAR,' not implemented!'
22839 STOP
22840 ENDIF
22841 RETURN
22842 END
22843C
22844C
22845
22846*$ CREATE DT_CKMTDE.FOR
22847*COPY DT_CKMTDE
22848 SUBROUTINE DT_CKMTDE(I,NDRV,X,S,ANS)
22849C
22850C**********************************************************************
22851C Deuteron - PDFs
22852C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
22853C ANS = PDF(I)
22854C This version by S. Roesler, 30.01.96
22855C**********************************************************************
22856
22857 SAVE
22858 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
22859 EQUIVALENCE (GF(1,1,1),DL(1))
22860 DATA DELTA/.13/
22861C
22862 DATA (DL(K),K= 1, 85) /
22863 &0.351858E+00,0.388489E+00,0.325356E+00,0.325356E+00,0.325356E+00,
22864 &0.325356E+00,0.445218E+01,0.000000E+00,0.419818E+00,0.459249E+00,
22865 &0.391167E+00,0.391143E+00,0.391125E+00,0.391167E+00,0.628186E+01,
22866 &0.703797E-01,0.498333E+00,0.540626E+00,0.467466E+00,0.467423E+00,
22867 &0.467393E+00,0.467466E+00,0.837368E+01,0.151191E+00,0.587839E+00,
22868 &0.633058E+00,0.554689E+00,0.554630E+00,0.554595E+00,0.554689E+00,
22869 &0.107170E+02,0.242877E+00,0.688652E+00,0.736861E+00,0.653150E+00,
22870 &0.653080E+00,0.653046E+00,0.653150E+00,0.132960E+02,0.345760E+00,
22871 &0.800961E+00,0.852226E+00,0.763038E+00,0.762961E+00,0.762933E+00,
22872 &0.763038E+00,0.160884E+02,0.460033E+00,0.924829E+00,0.979213E+00,
22873 &0.884414E+00,0.884335E+00,0.884319E+00,0.884414E+00,0.190679E+02,
22874 &0.585764E+00,0.106016E+01,0.111773E+01,0.101719E+01,0.101711E+01,
22875 &0.101711E+01,0.101719E+01,0.222033E+02,0.722864E+00,0.120670E+01,
22876 &0.126752E+01,0.116110E+01,0.116102E+01,0.116105E+01,0.116110E+01,
22877 &0.254603E+02,0.871079E+00,0.136402E+01,0.142815E+01,0.131571E+01,
22878 &0.131565E+01,0.131570E+01,0.131571E+01,0.288020E+02,0.102998E+01,
22879 &0.153151E+01,0.159900E+01,0.148043E+01,0.148038E+01,0.148046E+01/
22880 DATA (DL(K),K= 86, 170) /
22881 &0.148043E+01,0.321898E+02,0.119897E+01,0.170838E+01,0.177930E+01,
22882 &0.165447E+01,0.165444E+01,0.165455E+01,0.165447E+01,0.355845E+02,
22883 &0.137726E+01,0.189369E+01,0.196807E+01,0.183687E+01,0.183686E+01,
22884 &0.183701E+01,0.183687E+01,0.389473E+02,0.156390E+01,0.208631E+01,
22885 &0.216422E+01,0.202653E+01,0.202654E+01,0.202673E+01,0.202653E+01,
22886 &0.422402E+02,0.175779E+01,0.228501E+01,0.236648E+01,0.222220E+01,
22887 &0.222224E+01,0.222248E+01,0.222220E+01,0.454277E+02,0.195768E+01,
22888 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22889 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22890 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22891 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22892 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22893 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22894 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22895 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22896 &0.326035E+00,0.380777E+00,0.286363E+00,0.286363E+00,0.286363E+00,
22897 &0.286363E+00,0.392252E+01,-.138778E-16,0.380092E+00,0.438587E+00/
22898 DATA (DL(K),K= 171, 255) /
22899 &0.337452E+00,0.337430E+00,0.337424E+00,0.337452E+00,0.532193E+01,
22900 &0.553645E-01,0.440879E+00,0.503177E+00,0.395208E+00,0.395169E+00,
22901 &0.395165E+00,0.395208E+00,0.686454E+01,0.117354E+00,0.508415E+00,
22902 &0.574566E+00,0.459649E+00,0.459600E+00,0.459604E+00,0.459649E+00,
22903 &0.853316E+01,0.185994E+00,0.582647E+00,0.652699E+00,0.530722E+00,
22904 &0.530667E+00,0.530687E+00,0.530722E+00,0.103093E+02,0.261237E+00,
22905 &0.663404E+00,0.737405E+00,0.608254E+00,0.608199E+00,0.608241E+00,
22906 &0.608254E+00,0.121710E+02,0.342917E+00,0.750429E+00,0.828423E+00,
22907 &0.691990E+00,0.691941E+00,0.692009E+00,0.691990E+00,0.140946E+02,
22908 &0.430783E+00,0.843361E+00,0.925391E+00,0.781571E+00,0.781533E+00,
22909 &0.781632E+00,0.781571E+00,0.160553E+02,0.524479E+00,0.941741E+00,
22910 &0.102784E+01,0.876538E+00,0.876515E+00,0.876650E+00,0.876538E+00,
22911 &0.180277E+02,0.623549E+00,0.104501E+01,0.113521E+01,0.976335E+00,
22912 &0.976332E+00,0.976506E+00,0.976335E+00,0.199863E+02,0.727439E+00,
22913 &0.115251E+01,0.124685E+01,0.108031E+01,0.108034E+01,0.108055E+01,
22914 &0.108031E+01,0.219066E+02,0.835506E+00,0.126352E+01,0.136201E+01,
22915 &0.118775E+01,0.118780E+01,0.118806E+01,0.118775E+01,0.237652E+02/
22916 DATA (DL(K),K= 256, 340) /
22917 &0.947020E+00,0.137724E+01,0.147989E+01,0.129783E+01,0.129791E+01,
22918 &0.129822E+01,0.129783E+01,0.255406E+02,0.106119E+01,0.149279E+01,
22919 &0.159961E+01,0.140972E+01,0.140984E+01,0.141019E+01,0.140972E+01,
22920 &0.272135E+02,0.117715E+01,0.160929E+01,0.172028E+01,0.152252E+01,
22921 &0.152267E+01,0.152308E+01,0.152252E+01,0.287669E+02,0.129402E+01,
22922 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22923 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22924 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22925 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22926 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22927 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22928 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22929 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22930 &0.309785E+00,0.391282E+00,0.250518E+00,0.250518E+00,0.250518E+00,
22931 &0.250518E+00,0.343842E+01,-.138778E-16,0.352113E+00,0.438463E+00,
22932 &0.288877E+00,0.288863E+00,0.288878E+00,0.288877E+00,0.446765E+01,
22933 &0.424850E-01,0.398382E+00,0.489596E+00,0.331132E+00,0.331111E+00/
22934 DATA (DL(K),K= 341, 425) /
22935 &0.331148E+00,0.331132E+00,0.555902E+01,0.888369E-01,0.448375E+00,
22936 &0.544458E+00,0.377064E+00,0.377043E+00,0.377108E+00,0.377064E+00,
22937 &0.669490E+01,0.138845E+00,0.501854E+00,0.602811E+00,0.426440E+00,
22938 &0.426425E+00,0.426523E+00,0.426440E+00,0.785892E+01,0.192281E+00,
22939 &0.558506E+00,0.664331E+00,0.478946E+00,0.478944E+00,0.479079E+00,
22940 &0.478946E+00,0.903368E+01,0.248834E+00,0.617972E+00,0.728657E+00,
22941 &0.534229E+00,0.534244E+00,0.534421E+00,0.534229E+00,0.102022E+02,
22942 &0.308155E+00,0.679844E+00,0.795370E+00,0.591883E+00,0.591921E+00,
22943 &0.592141E+00,0.591883E+00,0.113479E+02,0.369841E+00,0.743667E+00,
22944 &0.864009E+00,0.651460E+00,0.651525E+00,0.651792E+00,0.651460E+00,
22945 &0.124553E+02,0.433447E+00,0.808951E+00,0.934073E+00,0.712474E+00,
22946 &0.712571E+00,0.712885E+00,0.712474E+00,0.135102E+02,0.498486E+00,
22947 &0.875171E+00,0.100503E+01,0.774408E+00,0.774541E+00,0.774902E+00,
22948 &0.774408E+00,0.144999E+02,0.564446E+00,0.941784E+00,0.107632E+01,
22949 &0.836726E+00,0.836897E+00,0.837307E+00,0.836726E+00,0.154136E+02,
22950 &0.630788E+00,0.100823E+01,0.114738E+01,0.898879E+00,0.899092E+00,
22951 &0.899551E+00,0.898879E+00,0.162423E+02,0.696967E+00,0.107396E+01/
22952 DATA (DL(K),K= 426, 510) /
22953 &0.121764E+01,0.960319E+00,0.960577E+00,0.961084E+00,0.960319E+00,
22954 &0.169791E+02,0.762433E+00,0.113843E+01,0.128655E+01,0.102051E+01,
22955 &0.102081E+01,0.102137E+01,0.102051E+01,0.176190E+02,0.826647E+00,
22956 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22957 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22958 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22959 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22960 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22961 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22962 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22963 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22964 &0.304680E+00,0.425088E+00,0.216504E+00,0.216504E+00,0.216504E+00,
22965 &0.216504E+00,0.298356E+01,0.000000E+00,0.337300E+00,0.463627E+00,
22966 &0.244023E+00,0.244024E+00,0.244063E+00,0.244023E+00,0.370271E+01,
22967 &0.316585E-01,0.371787E+00,0.503942E+00,0.273415E+00,0.273423E+00,
22968 &0.273505E+00,0.273415E+00,0.443039E+01,0.651685E-01,0.407853E+00,
22969 &0.545739E+00,0.304395E+00,0.304418E+00,0.304545E+00,0.304395E+00/
22970 DATA (DL(K),K= 511, 595) /
22971 &0.515321E+01,0.100252E+00,0.445229E+00,0.588741E+00,0.336700E+00,
22972 &0.336744E+00,0.336918E+00,0.336700E+00,0.586004E+01,0.136648E+00,
22973 &0.483606E+00,0.632629E+00,0.370026E+00,0.370095E+00,0.370318E+00,
22974 &0.370026E+00,0.654027E+01,0.174056E+00,0.522666E+00,0.677074E+00,
22975 &0.404062E+00,0.404162E+00,0.404433E+00,0.404062E+00,0.718442E+01,
22976 &0.212167E+00,0.562075E+00,0.721735E+00,0.438483E+00,0.438618E+00,
22977 &0.438938E+00,0.438483E+00,0.778423E+01,0.250658E+00,0.601494E+00,
22978 &0.766258E+00,0.472959E+00,0.473131E+00,0.473500E+00,0.472959E+00,
22979 &0.833276E+01,0.289199E+00,0.640580E+00,0.810290E+00,0.507156E+00,
22980 &0.507369E+00,0.507784E+00,0.507156E+00,0.882448E+01,0.327457E+00,
22981 &0.678993E+00,0.853479E+00,0.540747E+00,0.541003E+00,0.541463E+00,
22982 &0.540747E+00,0.925529E+01,0.365104E+00,0.716405E+00,0.895483E+00,
22983 &0.573411E+00,0.573714E+00,0.574216E+00,0.573411E+00,0.962250E+01,
22984 &0.401821E+00,0.752501E+00,0.935975E+00,0.604848E+00,0.605197E+00,
22985 &0.605740E+00,0.604848E+00,0.992478E+01,0.437304E+00,0.786987E+00,
22986 &0.974647E+00,0.634775E+00,0.635173E+00,0.635752E+00,0.634775E+00,
22987 &0.101620E+02,0.471269E+00,0.819594E+00,0.101122E+01,0.662936E+00/
22988 DATA (DL(K),K= 596, 680) /
22989 &0.663382E+00,0.663995E+00,0.662936E+00,0.103354E+02,0.503459E+00,
22990 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22991 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22992 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22993 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22994 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22995 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22996 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22997 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22998 &0.312661E+00,0.487836E+00,0.182562E+00,0.182562E+00,0.182562E+00,
22999 &0.182562E+00,0.253626E+01,0.000000E+00,0.336910E+00,0.518440E+00,
23000 &0.200702E+00,0.200721E+00,0.200779E+00,0.200702E+00,0.299460E+01,
23001 &0.224425E-01,0.361554E+00,0.549164E+00,0.219359E+00,0.219402E+00,
23002 &0.219517E+00,0.219359E+00,0.343183E+01,0.453742E-01,0.386348E+00,
23003 &0.579759E+00,0.238296E+00,0.238367E+00,0.238536E+00,0.238296E+00,
23004 &0.384076E+01,0.685610E-01,0.411080E+00,0.610003E+00,0.257305E+00,
23005 &0.257408E+00,0.257630E+00,0.257305E+00,0.421619E+01,0.917987E-01/
23006 DATA (DL(K),K= 681, 765) /
23007 &0.435528E+00,0.639668E+00,0.276174E+00,0.276313E+00,0.276583E+00,
23008 &0.276174E+00,0.455400E+01,0.114876E+00,0.459476E+00,0.668531E+00,
23009 &0.294698E+00,0.294875E+00,0.295191E+00,0.294698E+00,0.485107E+01,
23010 &0.137589E+00,0.482719E+00,0.696375E+00,0.312682E+00,0.312900E+00,
23011 &0.313258E+00,0.312682E+00,0.510539E+01,0.159742E+00,0.505060E+00,
23012 &0.722995E+00,0.329941E+00,0.330200E+00,0.330596E+00,0.329941E+00,
23013 &0.531589E+01,0.181149E+00,0.526315E+00,0.748199E+00,0.346303E+00,
23014 &0.346604E+00,0.347034E+00,0.346303E+00,0.548250E+01,0.201638E+00,
23015 &0.546317E+00,0.771808E+00,0.361613E+00,0.361957E+00,0.362418E+00,
23016 &0.361613E+00,0.560595E+01,0.221052E+00,0.564917E+00,0.793667E+00,
23017 &0.375735E+00,0.376122E+00,0.376609E+00,0.375735E+00,0.568772E+01,
23018 &0.239253E+00,0.581987E+00,0.813638E+00,0.388553E+00,0.388982E+00,
23019 &0.389491E+00,0.388553E+00,0.572992E+01,0.256122E+00,0.597419E+00,
23020 &0.831608E+00,0.399972E+00,0.400443E+00,0.400970E+00,0.399972E+00,
23021 &0.573516E+01,0.271562E+00,0.611129E+00,0.847487E+00,0.409919E+00,
23022 &0.410430E+00,0.410972E+00,0.409919E+00,0.570642E+01,0.285497E+00,
23023 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23024 DATA (DL(K),K= 766, 850) /
23025 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23026 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23027 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23028 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23029 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23030 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23031 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23032 &0.335149E+00,0.582072E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23033 &0.146415E+00,0.206772E+01,0.000000E+00,0.351552E+00,0.603437E+00,
23034 &0.156515E+00,0.156542E+00,0.156595E+00,0.156515E+00,0.231143E+01,
23035 &0.146091E-01,0.367407E+00,0.623737E+00,0.166387E+00,0.166442E+00,
23036 &0.166542E+00,0.166387E+00,0.252488E+01,0.289315E-01,0.382571E+00,
23037 &0.642832E+00,0.175891E+00,0.175976E+00,0.176118E+00,0.175891E+00,
23038 &0.270658E+01,0.428312E-01,0.396926E+00,0.660609E+00,0.184917E+00,
23039 &0.185034E+00,0.185212E+00,0.184917E+00,0.285608E+01,0.561981E-01,
23040 &0.410365E+00,0.676962E+00,0.193365E+00,0.193513E+00,0.193722E+00,
23041 &0.193365E+00,0.297375E+01,0.689319E-01,0.422792E+00,0.691796E+00/
23042 DATA (DL(K),K= 851, 935) /
23043 &0.201144E+00,0.201324E+00,0.201560E+00,0.201144E+00,0.306050E+01,
23044 &0.809434E-01,0.434123E+00,0.705030E+00,0.208181E+00,0.208393E+00,
23045 &0.208650E+00,0.208181E+00,0.311775E+01,0.921567E-01,0.444287E+00,
23046 &0.716596E+00,0.214413E+00,0.214656E+00,0.214931E+00,0.214413E+00,
23047 &0.314738E+01,0.102508E+00,0.453228E+00,0.726441E+00,0.219792E+00,
23048 &0.220066E+00,0.220354E+00,0.219792E+00,0.315156E+01,0.111949E+00,
23049 &0.460906E+00,0.734527E+00,0.224285E+00,0.224589E+00,0.224886E+00,
23050 &0.224285E+00,0.313271E+01,0.120441E+00,0.467291E+00,0.740835E+00,
23051 &0.227870E+00,0.228203E+00,0.228506E+00,0.227870E+00,0.309338E+01,
23052 &0.127963E+00,0.472372E+00,0.745357E+00,0.230541E+00,0.230902E+00,
23053 &0.231208E+00,0.230541E+00,0.303621E+01,0.134506E+00,0.476148E+00,
23054 &0.748105E+00,0.232304E+00,0.232690E+00,0.232996E+00,0.232304E+00,
23055 &0.296381E+01,0.140070E+00,0.478635E+00,0.749103E+00,0.233176E+00,
23056 &0.233586E+00,0.233889E+00,0.233176E+00,0.287874E+01,0.144672E+00,
23057 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23058 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23059 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23060 DATA (DL(K),K= 936, 1020) /
23061 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23062 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23063 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23064 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23065 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23066 &0.370162E+00,0.695827E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23067 &0.105823E+00,0.154556E+01,0.208167E-16,0.378214E+00,0.703794E+00,
23068 &0.109539E+00,0.109554E+00,0.109571E+00,0.109539E+00,0.162770E+01,
23069 &0.818783E-02,0.385258E+00,0.710067E+00,0.112818E+00,0.112847E+00,
23070 &0.112879E+00,0.112818E+00,0.168578E+01,0.158212E-01,0.391264E+00,
23071 &0.714648E+00,0.115620E+00,0.115666E+00,0.115709E+00,0.115620E+00,
23072 &0.172175E+01,0.228667E-01,0.396214E+00,0.717539E+00,0.117923E+00,
23073 &0.117985E+00,0.118037E+00,0.117923E+00,0.173756E+01,0.293009E-01,
23074 &0.400098E+00,0.718759E+00,0.119711E+00,0.119790E+00,0.119848E+00,
23075 &0.119711E+00,0.173541E+01,0.351123E-01,0.402915E+00,0.718332E+00,
23076 &0.120979E+00,0.121074E+00,0.121137E+00,0.120979E+00,0.171755E+01,
23077 &0.402951E-01,0.404672E+00,0.716292E+00,0.121728E+00,0.121840E+00/
23078 DATA (DL(K),K= 1021, 1105) /
23079 &0.121905E+00,0.121728E+00,0.168619E+01,0.448514E-01,0.405385E+00,
23080 &0.712681E+00,0.121967E+00,0.122095E+00,0.122161E+00,0.121967E+00,
23081 &0.164352E+01,0.487902E-01,0.405077E+00,0.707551E+00,0.121712E+00,
23082 &0.121855E+00,0.121920E+00,0.121712E+00,0.159162E+01,0.521265E-01,
23083 &0.403778E+00,0.700963E+00,0.120984E+00,0.121141E+00,0.121204E+00,
23084 &0.120984E+00,0.153245E+01,0.548814E-01,0.401525E+00,0.692984E+00,
23085 &0.119809E+00,0.119980E+00,0.120040E+00,0.119809E+00,0.146780E+01,
23086 &0.570807E-01,0.398361E+00,0.683691E+00,0.118218E+00,0.118402E+00,
23087 &0.118457E+00,0.118218E+00,0.139928E+01,0.587542E-01,0.394333E+00,
23088 &0.673166E+00,0.116244E+00,0.116440E+00,0.116490E+00,0.116244E+00,
23089 &0.132834E+01,0.599355E-01,0.389495E+00,0.661496E+00,0.113924E+00,
23090 &0.114131E+00,0.114175E+00,0.113924E+00,0.125620E+01,0.606602E-01,
23091 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23092 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23093 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23094 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23095 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23096 DATA (DL(K),K= 1106, 1190) /
23097 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23098 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23099 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23100 &0.394012E+00,0.757115E+00,0.772117E-01,0.772117E-01,0.772117E-01,
23101 &0.772117E-01,0.117279E+01,0.346945E-17,0.395841E+00,0.752988E+00,
23102 &0.780501E-01,0.780655E-01,0.780723E-01,0.780501E-01,0.118528E+01,
23103 &0.491697E-02,0.396627E+00,0.747223E+00,0.785386E-01,0.785692E-01,
23104 &0.785806E-01,0.785386E-01,0.118242E+01,0.932754E-02,0.396401E+00,
23105 &0.739901E+00,0.786820E-01,0.787273E-01,0.787413E-01,0.786820E-01,
23106 &0.116673E+01,0.132427E-01,0.395190E+00,0.731092E+00,0.784870E-01,
23107 &0.785464E-01,0.785613E-01,0.784870E-01,0.114033E+01,0.166738E-01,
23108 &0.393030E+00,0.720878E+00,0.779683E-01,0.780410E-01,0.780555E-01,
23109 &0.779683E-01,0.110528E+01,0.196392E-01,0.389962E+00,0.709342E+00,
23110 &0.771427E-01,0.772280E-01,0.772409E-01,0.771427E-01,0.106344E+01,
23111 &0.221591E-01,0.386027E+00,0.696571E+00,0.760304E-01,0.761276E-01,
23112 &0.761378E-01,0.760304E-01,0.101653E+01,0.242567E-01,0.381274E+00,
23113 &0.682657E+00,0.746543E-01,0.747623E-01,0.747692E-01,0.746543E-01/
23114 DATA (DL(K),K= 1191, 1275) /
23115 &0.966057E+00,0.259571E-01,0.375752E+00,0.667695E+00,0.730389E-01,
23116 &0.731569E-01,0.731598E-01,0.730389E-01,0.913345E+00,0.272876E-01,
23117 &0.369514E+00,0.651782E+00,0.712104E-01,0.713374E-01,0.713358E-01,
23118 &0.712104E-01,0.859530E+00,0.282763E-01,0.362616E+00,0.635021E+00,
23119 &0.691957E-01,0.693307E-01,0.693243E-01,0.691957E-01,0.805566E+00,
23120 &0.289524E-01,0.355116E+00,0.617511E+00,0.670220E-01,0.671640E-01,
23121 &0.671526E-01,0.670220E-01,0.752235E+00,0.293453E-01,0.347072E+00,
23122 &0.599357E+00,0.647162E-01,0.648642E-01,0.648478E-01,0.647162E-01,
23123 &0.700161E+00,0.294844E-01,0.338543E+00,0.580659E+00,0.623046E-01,
23124 &0.624578E-01,0.624363E-01,0.623046E-01,0.649828E+00,0.293983E-01,
23125 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23126 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23127 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23128 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23129 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23130 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23131 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23132 DATA (DL(K),K= 1276, 1360) /
23133 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23134 &0.408305E+00,0.775318E+00,0.509141E-01,0.509141E-01,0.509141E-01,
23135 &0.509141E-01,0.818839E+00,-.867362E-17,0.403619E+00,0.758058E+00,
23136 &0.502245E-01,0.502351E-01,0.502337E-01,0.502245E-01,0.795347E+00,
23137 &0.264045E-02,0.398068E+00,0.739709E+00,0.493454E-01,0.493661E-01,
23138 &0.493626E-01,0.493454E-01,0.764942E+00,0.491508E-02,0.391719E+00,
23139 &0.720394E+00,0.482952E-01,0.483253E-01,0.483192E-01,0.482952E-01,
23140 &0.729624E+00,0.685202E-02,0.384627E+00,0.700222E+00,0.470896E-01,
23141 &0.471285E-01,0.471194E-01,0.470896E-01,0.690906E+00,0.847433E-02,
23142 &0.376851E+00,0.679300E+00,0.457475E-01,0.457946E-01,0.457822E-01,
23143 &0.457475E-01,0.650078E+00,0.980774E-02,0.368452E+00,0.657739E+00,
23144 &0.442875E-01,0.443419E-01,0.443261E-01,0.442875E-01,0.608239E+00,
23145 &0.108769E-01,0.359490E+00,0.635646E+00,0.427281E-01,0.427892E-01,
23146 &0.427698E-01,0.427281E-01,0.566280E+00,0.117061E-01,0.350026E+00,
23147 &0.613128E+00,0.410878E-01,0.411549E-01,0.411320E-01,0.410878E-01,
23148 &0.524918E+00,0.123191E-01,0.340122E+00,0.590292E+00,0.393848E-01,
23149 &0.394571E-01,0.394308E-01,0.393848E-01,0.484713E+00,0.127393E-01/
23150 DATA (DL(K),K= 1361, 1445) /
23151 &0.329838E+00,0.567240E+00,0.376363E-01,0.377132E-01,0.376836E-01,
23152 &0.376363E-01,0.446084E+00,0.129888E-01,0.319236E+00,0.544074E+00,
23153 &0.358589E-01,0.359396E-01,0.359068E-01,0.358589E-01,0.409328E+00,
23154 &0.130888E-01,0.308374E+00,0.520890E+00,0.340678E-01,0.341517E-01,
23155 &0.341160E-01,0.340678E-01,0.374641E+00,0.130594E-01,0.297312E+00,
23156 &0.497781E+00,0.322772E-01,0.323636E-01,0.323253E-01,0.322772E-01,
23157 &0.342135E+00,0.129195E-01,0.286106E+00,0.474837E+00,0.304999E-01,
23158 &0.305882E-01,0.305474E-01,0.304999E-01,0.311854E+00,0.126863E-01,
23159 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23160 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23161 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23162 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23163 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23164 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23165 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23166 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23167 &0.407248E+00,0.746438E+00,0.335640E-01,0.335640E-01,0.335640E-01/
23168 DATA (DL(K),K= 1446, 1530) /
23169 &0.335640E-01,0.573540E+00,0.173472E-16,0.397516E+00,0.719825E+00,
23170 &0.324649E-01,0.324735E-01,0.324698E-01,0.324649E-01,0.540770E+00,
23171 &0.147177E-02,0.387197E+00,0.692869E+00,0.312911E-01,0.313075E-01,
23172 &0.313000E-01,0.312911E-01,0.505972E+00,0.269995E-02,0.376365E+00,
23173 &0.665689E+00,0.300576E-01,0.300811E-01,0.300699E-01,0.300576E-01,
23174 &0.470389E+00,0.371147E-02,0.365085E+00,0.638387E+00,0.287770E-01,
23175 &0.288070E-01,0.287922E-01,0.287770E-01,0.434885E+00,0.452768E-02,
23176 &0.353423E+00,0.611066E+00,0.274623E-01,0.274980E-01,0.274797E-01,
23177 &0.274623E-01,0.400103E+00,0.516996E-02,0.341442E+00,0.583823E+00,
23178 &0.261256E-01,0.261663E-01,0.261448E-01,0.261256E-01,0.366541E+00,
23179 &0.565807E-02,0.329207E+00,0.556753E+00,0.247782E-01,0.248234E-01,
23180 &0.247989E-01,0.247782E-01,0.334555E+00,0.601048E-02,0.316777E+00,
23181 &0.529946E+00,0.234308E-01,0.234798E-01,0.234525E-01,0.234308E-01,
23182 &0.304384E+00,0.624451E-02,0.304214E+00,0.503489E+00,0.220932E-01,
23183 &0.221452E-01,0.221155E-01,0.220932E-01,0.276170E+00,0.637618E-02,
23184 &0.291575E+00,0.477462E+00,0.207739E-01,0.208286E-01,0.207966E-01,
23185 &0.207739E-01,0.249976E+00,0.642028E-02,0.278917E+00,0.451941E+00/
23186 DATA (DL(K),K= 1531, 1615) /
23187 &0.194809E-01,0.195376E-01,0.195037E-01,0.194809E-01,0.225809E+00,
23188 &0.639038E-02,0.266293E+00,0.426995E+00,0.182209E-01,0.182791E-01,
23189 &0.182436E-01,0.182209E-01,0.203629E+00,0.629880E-02,0.253754E+00,
23190 &0.402686E+00,0.169996E-01,0.170587E-01,0.170219E-01,0.169996E-01,
23191 &0.183361E+00,0.615665E-02,0.241347E+00,0.379071E+00,0.158217E-01,
23192 &0.158814E-01,0.158436E-01,0.158217E-01,0.164907E+00,0.597385E-02,
23193 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23194 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23195 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23196 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23197 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23198 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23199 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23200 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23201 &0.395106E+00,0.689399E+00,0.218554E-01,0.218554E-01,0.218554E-01,
23202 &0.218554E-01,0.398362E+00,-.173472E-17,0.381441E+00,0.656777E+00,
23203 &0.207816E-01,0.207886E-01,0.207844E-01,0.207816E-01,0.366703E+00/
23204 DATA (DL(K),K= 1616, 1700) /
23205 &0.826643E-03,0.367505E+00,0.624578E+00,0.197001E-01,0.197133E-01,
23206 &0.197053E-01,0.197001E-01,0.335573E+00,0.149886E-02,0.353373E+00,
23207 &0.592889E+00,0.186195E-01,0.186383E-01,0.186266E-01,0.186195E-01,
23208 &0.305590E+00,0.203730E-02,0.339106E+00,0.561783E+00,0.175468E-01,
23209 &0.175705E-01,0.175555E-01,0.175468E-01,0.277136E+00,0.245817E-02,
23210 &0.324766E+00,0.531331E+00,0.164887E-01,0.165166E-01,0.164986E-01,
23211 &0.164887E-01,0.250424E+00,0.277666E-02,0.310411E+00,0.501599E+00,
23212 &0.154510E-01,0.154825E-01,0.154618E-01,0.154510E-01,0.225588E+00,
23213 &0.300658E-02,0.296100E+00,0.472648E+00,0.144390E-01,0.144735E-01,
23214 &0.144504E-01,0.144390E-01,0.202681E+00,0.316040E-02,0.281885E+00,
23215 &0.444535E+00,0.134570E-01,0.134940E-01,0.134689E-01,0.134570E-01,
23216 &0.181693E+00,0.324944E-02,0.267820E+00,0.417309E+00,0.125091E-01,
23217 &0.125481E-01,0.125212E-01,0.125091E-01,0.162572E+00,0.328396E-02,
23218 &0.253953E+00,0.391017E+00,0.115984E-01,0.116389E-01,0.116106E-01,
23219 &0.115984E-01,0.145235E+00,0.327313E-02,0.240328E+00,0.365695E+00,
23220 &0.107275E-01,0.107690E-01,0.107396E-01,0.107275E-01,0.129575E+00,
23221 &0.322510E-02,0.226989E+00,0.341375E+00,0.989805E-02,0.994030E-02/
23222 DATA (DL(K),K= 1701, 1785) /
23223 &0.990998E-02,0.989805E-02,0.115477E+00,0.314713E-02,0.213972E+00,
23224 &0.318081E+00,0.911149E-02,0.915408E-02,0.912316E-02,0.911149E-02,
23225 &0.102820E+00,0.304556E-02,0.201311E+00,0.295830E+00,0.836852E-02,
23226 &0.841111E-02,0.837984E-02,0.836852E-02,0.914804E-01,0.292596E-02,
23227 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23228 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23229 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23230 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23231 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23232 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23233 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23234 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23235 &0.374678E+00,0.616087E+00,0.139531E-01,0.139531E-01,0.139531E-01,
23236 &0.139531E-01,0.272491E+00,-.693889E-17,0.358052E+00,0.580345E+00,
23237 &0.130624E-01,0.130680E-01,0.130641E-01,0.130624E-01,0.245861E+00,
23238 &0.460255E-03,0.341487E+00,0.545719E+00,0.121971E-01,0.122076E-01,
23239 &0.122002E-01,0.121971E-01,0.220877E+00,0.826785E-03,0.325046E+00/
23240 DATA (DL(K),K= 1786, 1870) /
23241 &0.512244E+00,0.113599E-01,0.113748E-01,0.113641E-01,0.113599E-01,
23242 &0.197730E+00,0.111366E-02,0.308783E+00,0.479952E+00,0.105534E-01,
23243 &0.105720E-01,0.105585E-01,0.105534E-01,0.176497E+00,0.133192E-02,
23244 &0.292747E+00,0.448868E+00,0.977938E-02,0.980112E-02,0.978518E-02,
23245 &0.977938E-02,0.157150E+00,0.149139E-02,0.276986E+00,0.419015E+00,
23246 &0.903955E-02,0.906394E-02,0.904584E-02,0.903955E-02,0.139631E+00,
23247 &0.160093E-02,0.261546E+00,0.390412E+00,0.833509E-02,0.836165E-02,
23248 &0.834171E-02,0.833509E-02,0.123850E+00,0.166838E-02,0.246467E+00,
23249 &0.363074E+00,0.766687E-02,0.769516E-02,0.767369E-02,0.766687E-02,
23250 &0.109695E+00,0.170073E-02,0.231787E+00,0.337008E+00,0.703540E-02,
23251 &0.706500E-02,0.704230E-02,0.703540E-02,0.970428E-01,0.170416E-02,
23252 &0.217542E+00,0.312218E+00,0.644083E-02,0.647137E-02,0.644772E-02,
23253 &0.644083E-02,0.857658E-01,0.168409E-02,0.203759E+00,0.288701E+00,
23254 &0.588300E-02,0.591415E-02,0.588981E-02,0.588300E-02,0.757385E-01,
23255 &0.164528E-02,0.190467E+00,0.266449E+00,0.536147E-02,0.539292E-02,
23256 &0.536812E-02,0.536147E-02,0.668383E-01,0.159185E-02,0.177686E+00,
23257 &0.245447E+00,0.487551E-02,0.490698E-02,0.488195E-02,0.487551E-02/
23258 DATA (DL(K),K= 1871, 1955) /
23259 &0.589492E-01,0.152735E-02,0.165434E+00,0.225677E+00,0.442416E-02,
23260 &0.445543E-02,0.443037E-02,0.442416E-02,0.519652E-01,0.145483E-02,
23261 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23262 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23263 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23264 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23265 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23266 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23267 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23268 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23269 &0.348042E+00,0.534691E+00,0.867977E-02,0.867977E-02,0.867977E-02,
23270 &0.867977E-02,0.182547E+00,-.693889E-17,0.329349E+00,0.498248E+00,
23271 &0.800724E-02,0.801198E-02,0.800836E-02,0.800724E-02,0.161948E+00,
23272 &0.250949E-03,0.311047E+00,0.463485E+00,0.737155E-02,0.738040E-02,
23273 &0.737356E-02,0.737155E-02,0.143267E+00,0.447662E-03,0.293181E+00,
23274 &0.430377E+00,0.677169E-02,0.678409E-02,0.677441E-02,0.677169E-02,
23275 &0.126447E+00,0.598803E-03,0.275787E+00,0.398907E+00,0.620726E-02/
23276 DATA (DL(K),K= 1956, 2040) /
23277 &0.622265E-02,0.621051E-02,0.620726E-02,0.111401E+00,0.711280E-03,
23278 &0.258900E+00,0.369051E+00,0.567741E-02,0.569532E-02,0.568106E-02,
23279 &0.567741E-02,0.979944E-01,0.790986E-03,0.242550E+00,0.340785E+00,
23280 &0.518138E-02,0.520134E-02,0.518531E-02,0.518138E-02,0.860936E-01,
23281 &0.843227E-03,0.226765E+00,0.314083E+00,0.471828E-02,0.473987E-02,
23282 &0.472238E-02,0.471828E-02,0.755615E-01,0.872644E-03,0.211568E+00,
23283 &0.288916E+00,0.428714E-02,0.430998E-02,0.429133E-02,0.428714E-02,
23284 &0.662627E-01,0.883319E-03,0.196981E+00,0.265252E+00,0.388691E-02,
23285 &0.391065E-02,0.389112E-02,0.388691E-02,0.580684E-01,0.878818E-03,
23286 &0.183020E+00,0.243053E+00,0.351645E-02,0.354077E-02,0.352060E-02,
23287 &0.351645E-02,0.508578E-01,0.862228E-03,0.169696E+00,0.222280E+00,
23288 &0.317451E-02,0.319914E-02,0.317858E-02,0.317451E-02,0.445190E-01,
23289 &0.836224E-03,0.157017E+00,0.202888E+00,0.285982E-02,0.288450E-02,
23290 &0.286376E-02,0.285982E-02,0.389523E-01,0.803096E-03,0.144987E+00,
23291 &0.184832E+00,0.257101E-02,0.259553E-02,0.257480E-02,0.257101E-02,
23292 &0.340677E-01,0.764787E-03,0.133605E+00,0.168060E+00,0.230670E-02,
23293 &0.233087E-02,0.231031E-02,0.230670E-02,0.297820E-01,0.722929E-03/
23294 DATA (DL(K),K= 2041, 2125) /
23295 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23296 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23297 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23298 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23299 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23300 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23301 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23302 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23303 &0.316867E+00,0.451111E+00,0.522815E-02,0.522815E-02,0.522815E-02,
23304 &0.522815E-02,0.119118E+00,0.889046E-17,0.296950E+00,0.415915E+00,
23305 &0.475497E-02,0.475914E-02,0.475574E-02,0.475497E-02,0.104204E+00,
23306 &0.132513E-03,0.277735E+00,0.382805E+00,0.431809E-02,0.432582E-02,
23307 &0.431944E-02,0.431809E-02,0.910279E-01,0.235347E-03,0.259241E+00,
23308 &0.351694E+00,0.391455E-02,0.392531E-02,0.391637E-02,0.391455E-02,
23309 &0.794222E-01,0.313322E-03,0.241485E+00,0.322517E+00,0.354249E-02,
23310 &0.355575E-02,0.354464E-02,0.354249E-02,0.692354E-01,0.370408E-03,
23311 &0.224480E+00,0.295202E+00,0.319987E-02,0.321518E-02,0.320226E-02/
23312 DATA (DL(K),K= 2126, 2210) /
23313 &0.319987E-02,0.603106E-01,0.409866E-03,0.208235E+00,0.269681E+00,
23314 &0.288490E-02,0.290184E-02,0.288744E-02,0.288490E-02,0.525034E-01,
23315 &0.434663E-03,0.192759E+00,0.245887E+00,0.259589E-02,0.261407E-02,
23316 &0.259852E-02,0.259589E-02,0.456838E-01,0.447393E-03,0.178054E+00,
23317 &0.223752E+00,0.233123E-02,0.235033E-02,0.233390E-02,0.233123E-02,
23318 &0.397318E-01,0.450314E-03,0.164120E+00,0.203207E+00,0.208941E-02,
23319 &0.210910E-02,0.209206E-02,0.208941E-02,0.345396E-01,0.445394E-03,
23320 &0.150954E+00,0.184182E+00,0.186896E-02,0.188897E-02,0.187155E-02,
23321 &0.186896E-02,0.300131E-01,0.434333E-03,0.138548E+00,0.166608E+00,
23322 &0.166844E-02,0.168854E-02,0.167096E-02,0.166844E-02,0.260692E-01,
23323 &0.418584E-03,0.126892E+00,0.150412E+00,0.148650E-02,0.150648E-02,
23324 &0.148891E-02,0.148650E-02,0.226325E-01,0.399380E-03,0.115971E+00,
23325 &0.135523E+00,0.132180E-02,0.134148E-02,0.132409E-02,0.132180E-02,
23326 &0.196374E-01,0.377764E-03,0.105767E+00,0.121870E+00,0.117308E-02,
23327 &0.119231E-02,0.117524E-02,0.117308E-02,0.170312E-01,0.354610E-03,
23328 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23329 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23330 DATA (DL(K),K= 2211, 2295) /
23331 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23332 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23333 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23334 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23335 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23336 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23337 &0.282579E+00,0.369670E+00,0.302765E-02,0.302765E-02,0.302765E-02,
23338 &0.302765E-02,0.752529E-01,-.455365E-17,0.262229E+00,0.337209E+00,
23339 &0.271512E-02,0.271883E-02,0.271564E-02,0.271512E-02,0.651086E-01,
23340 &0.669321E-04,0.242857E+00,0.307069E+00,0.243269E-02,0.243953E-02,
23341 &0.243360E-02,0.243269E-02,0.563252E-01,0.118744E-03,0.224455E+00,
23342 &0.279111E+00,0.217687E-02,0.218631E-02,0.217808E-02,0.217687E-02,
23343 &0.487143E-01,0.157767E-03,0.207014E+00,0.253223E+00,0.194534E-02,
23344 &0.195689E-02,0.194675E-02,0.194534E-02,0.421227E-01,0.186063E-03,
23345 &0.190523E+00,0.229293E+00,0.173585E-02,0.174909E-02,0.173741E-02,
23346 &0.173585E-02,0.364156E-01,0.205286E-03,0.174969E+00,0.207218E+00,
23347 &0.154647E-02,0.156100E-02,0.154811E-02,0.154647E-02,0.314732E-01/
23348 DATA (DL(K),K= 2296, 2380) /
23349 &0.216964E-03,0.160335E+00,0.186895E+00,0.137545E-02,0.139092E-02,
23350 &0.137713E-02,0.137545E-02,0.271927E-01,0.222455E-03,0.146604E+00,
23351 &0.168227E+00,0.122121E-02,0.123733E-02,0.122290E-02,0.122121E-02,
23352 &0.234852E-01,0.222947E-03,0.133756E+00,0.151116E+00,0.108234E-02,
23353 &0.109881E-02,0.108400E-02,0.108234E-02,0.202747E-01,0.219474E-03,
23354 &0.121765E+00,0.135471E+00,0.957502E-03,0.974107E-03,0.959112E-03,
23355 &0.957502E-03,0.174932E-01,0.212928E-03,0.110606E+00,0.121198E+00,
23356 &0.845493E-03,0.862024E-03,0.847037E-03,0.845493E-03,0.150824E-01,
23357 &0.204075E-03,0.100250E+00,0.108210E+00,0.745196E-03,0.761482E-03,
23358 &0.746662E-03,0.745196E-03,0.129965E-01,0.193573E-03,0.906661E-01,
23359 &0.964191E-01,0.655569E-03,0.671466E-03,0.656948E-03,0.655569E-03,
23360 &0.111930E-01,0.181962E-03,0.818218E-01,0.857412E-01,0.575637E-03,
23361 &0.591030E-03,0.576925E-03,0.575637E-03,0.962922E-02,0.169687E-03,
23362 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23363 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23364 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23365 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23366 DATA (DL(K),K= 2381, 2465) /
23367 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23368 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23369 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23370 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23371 &0.246444E+00,0.293515E+00,0.167124E-02,0.167124E-02,0.167124E-02,
23372 &0.167124E-02,0.456929E-01,-.260209E-17,0.226393E+00,0.264836E+00,
23373 &0.147748E-02,0.148085E-02,0.147783E-02,0.147748E-02,0.392393E-01,
23374 &0.318190E-04,0.207552E+00,0.238550E+00,0.130596E-02,0.131212E-02,
23375 &0.130656E-02,0.130596E-02,0.337276E-01,0.566426E-04,0.189877E+00,
23376 &0.214470E+00,0.115347E-02,0.116190E-02,0.115427E-02,0.115347E-02,
23377 &0.290012E-01,0.753776E-04,0.173336E+00,0.192452E+00,0.101789E-02,
23378 &0.102811E-02,0.101881E-02,0.101789E-02,0.249381E-01,0.889466E-04,
23379 &0.157889E+00,0.172355E+00,0.897268E-03,0.908872E-03,0.898270E-03,
23380 &0.897268E-03,0.214419E-01,0.980950E-04,0.143501E+00,0.154046E+00,
23381 &0.789951E-03,0.802565E-03,0.790996E-03,0.789951E-03,0.184296E-01,
23382 &0.103536E-03,0.130132E+00,0.137402E+00,0.694510E-03,0.707811E-03,
23383 &0.695568E-03,0.694510E-03,0.158331E-01,0.105929E-03,0.117743E+00/
23384 DATA (DL(K),K= 2466, 2550) /
23385 &0.122303E+00,0.609684E-03,0.623394E-03,0.610733E-03,0.609684E-03,
23386 &0.135929E-01,0.105853E-03,0.106293E+00,0.108637E+00,0.534365E-03,
23387 &0.548244E-03,0.535386E-03,0.534365E-03,0.116583E-01,0.103825E-03,
23388 &0.957386E-01,0.962976E-01,0.467572E-03,0.481416E-03,0.468551E-03,
23389 &0.467572E-03,0.999103E-02,0.100301E-03,0.860376E-01,0.851820E-01,
23390 &0.408422E-03,0.422062E-03,0.409350E-03,0.408422E-03,0.855563E-02,
23391 &0.956675E-04,0.771455E-01,0.751930E-01,0.356117E-03,0.369416E-03,
23392 &0.356989E-03,0.356117E-03,0.731542E-02,0.902499E-04,0.690178E-01,
23393 &0.662386E-01,0.309950E-03,0.322797E-03,0.310761E-03,0.309950E-03,
23394 &0.624633E-02,0.843305E-04,0.616096E-01,0.582312E-01,0.269281E-03,
23395 &0.281590E-03,0.270030E-03,0.269281E-03,0.533230E-02,0.781441E-04,
23396 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23397 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23398 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23399 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23400 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23401 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23402 DATA (DL(K),K= 2551, 2635) /
23403 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23404 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23405 &0.209608E+00,0.224862E+00,0.869706E-03,0.869706E-03,0.869706E-03,
23406 &0.869706E-03,0.264204E-01,-.138236E-17,0.190523E+00,0.200603E+00,
23407 &0.757542E-03,0.760626E-03,0.757768E-03,0.757542E-03,0.226261E-01,
23408 &0.138827E-04,0.172819E+00,0.178656E+00,0.660281E-03,0.665837E-03,
23409 &0.660670E-03,0.660281E-03,0.194018E-01,0.249832E-04,0.156420E+00,
23410 &0.158805E+00,0.575414E-03,0.582918E-03,0.575917E-03,0.575414E-03,
23411 &0.166434E-01,0.334851E-04,0.141265E+00,0.140883E+00,0.501258E-03,
23412 &0.510252E-03,0.501836E-03,0.501258E-03,0.142710E-01,0.397017E-04,
23413 &0.127291E+00,0.124732E+00,0.436386E-03,0.446473E-03,0.437008E-03,
23414 &0.436386E-03,0.122297E-01,0.439154E-04,0.114437E+00,0.110205E+00,
23415 &0.379575E-03,0.390415E-03,0.380217E-03,0.379575E-03,0.104701E-01,
23416 &0.464110E-04,0.102644E+00,0.971655E-01,0.329805E-03,0.341109E-03,
23417 &0.330448E-03,0.329805E-03,0.895086E-02,0.474758E-04,0.918521E-01,
23418 &0.854876E-01,0.286206E-03,0.297729E-03,0.286836E-03,0.286206E-03,
23419 &0.764249E-02,0.473771E-04,0.820032E-01,0.750529E-01,0.248027E-03/
23420 DATA (DL(K),K= 2636, 2720) /
23421 &0.259564E-03,0.248633E-03,0.248027E-03,0.651744E-02,0.463561E-04,
23422 &0.730394E-01,0.657510E-01,0.214611E-03,0.225995E-03,0.215186E-03,
23423 &0.214611E-03,0.554573E-02,0.446239E-04,0.649040E-01,0.574789E-01,
23424 &0.185396E-03,0.196491E-03,0.185935E-03,0.185396E-03,0.470938E-02,
23425 &0.423722E-04,0.575411E-01,0.501405E-01,0.159891E-03,0.170590E-03,
23426 &0.160391E-03,0.159891E-03,0.399752E-02,0.397689E-04,0.508960E-01,
23427 &0.436466E-01,0.137650E-03,0.147874E-03,0.138111E-03,0.137650E-03,
23428 &0.338807E-02,0.369434E-04,0.449157E-01,0.379141E-01,0.118285E-03,
23429 &0.127973E-03,0.118705E-03,0.118285E-03,0.286125E-02,0.340035E-04,
23430 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23431 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23432 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23433 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23434 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23435 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23436 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23437 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23438 DATA (DL(K),K= 2721, 2805) /
23439 &0.173133E+00,0.165162E+00,0.420483E-03,0.420483E-03,0.420483E-03,
23440 &0.420483E-03,0.143704E-01,0.418773E-17,0.155600E+00,0.145586E+00,
23441 &0.360490E-03,0.363140E-03,0.360629E-03,0.360490E-03,0.123560E-01,
23442 &0.533279E-05,0.139551E+00,0.128113E+00,0.309555E-03,0.314310E-03,
23443 &0.309792E-03,0.309555E-03,0.106262E-01,0.982612E-05,0.124876E+00,
23444 &0.112516E+00,0.265952E-03,0.272344E-03,0.266256E-03,0.265952E-03,
23445 &0.913151E-02,0.133834E-04,0.111490E+00,0.986188E-01,0.228522E-03,
23446 &0.236138E-03,0.228869E-03,0.228522E-03,0.783135E-02,0.160429E-04,
23447 &0.993081E-01,0.862590E-01,0.196336E-03,0.204821E-03,0.196706E-03,
23448 &0.196336E-03,0.670031E-02,0.178799E-04,0.882484E-01,0.752883E-01,
23449 &0.168604E-03,0.177655E-03,0.168981E-03,0.168604E-03,0.572016E-02,
23450 &0.189837E-04,0.782334E-01,0.655714E-01,0.144684E-03,0.154047E-03,
23451 &0.145058E-03,0.144684E-03,0.487276E-02,0.194655E-04,0.691885E-01,
23452 &0.569841E-01,0.124035E-03,0.133497E-03,0.124397E-03,0.124035E-03,
23453 &0.413648E-02,0.194296E-04,0.610420E-01,0.494128E-01,0.106203E-03,
23454 &0.115592E-03,0.106548E-03,0.106203E-03,0.350042E-02,0.189800E-04,
23455 &0.537249E-01,0.427533E-01,0.908141E-04,0.999895E-04,0.911377E-04/
23456 DATA (DL(K),K= 2806, 2890) /
23457 &0.908141E-04,0.295961E-02,0.182192E-04,0.471713E-01,0.369100E-01,
23458 &0.775359E-04,0.863895E-04,0.778360E-04,0.775359E-04,0.249629E-02,
23459 &0.172287E-04,0.413182E-01,0.317957E-01,0.660857E-04,0.745356E-04,
23460 &0.663611E-04,0.660857E-04,0.209482E-02,0.160791E-04,0.361056E-01,
23461 &0.273306E-01,0.562298E-04,0.642173E-04,0.564804E-04,0.562298E-04,
23462 &0.175588E-02,0.148407E-04,0.314766E-01,0.234421E-01,0.477598E-04,
23463 &0.552457E-04,0.479859E-04,0.477598E-04,0.147398E-02,0.135653E-04,
23464 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23465 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23466 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23467 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23468 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23469 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23470 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23471 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23472 &0.138007E+00,0.115214E+00,0.185072E-03,0.185072E-03,0.185072E-03,
23473 &0.185072E-03,0.722856E-02,-.380826E-17,0.122517E+00,0.100251E+00/
23474 DATA (DL(K),K= 2891, 2975) /
23475 &0.155814E-03,0.158287E-03,0.155901E-03,0.155814E-03,0.630580E-02,
23476 &0.155371E-05,0.108535E+00,0.870870E-01,0.131535E-03,0.135909E-03,
23477 &0.131680E-03,0.131535E-03,0.547867E-02,0.304952E-05,0.959260E-01,
23478 &0.754985E-01,0.111183E-03,0.116980E-03,0.111366E-03,0.111183E-03,
23479 &0.473794E-02,0.433106E-05,0.845828E-01,0.653163E-01,0.940433E-04,
23480 &0.100851E-03,0.942493E-04,0.940433E-04,0.407647E-02,0.533613E-05,
23481 &0.744017E-01,0.563870E-01,0.795843E-04,0.870596E-04,0.798007E-04,
23482 &0.795843E-04,0.349165E-02,0.606691E-05,0.652864E-01,0.485720E-01,
23483 &0.673476E-04,0.752069E-04,0.675656E-04,0.673476E-04,0.297273E-02,
23484 &0.652898E-05,0.571466E-01,0.417472E-01,0.569700E-04,0.649812E-04,
23485 &0.571831E-04,0.569700E-04,0.251732E-02,0.675028E-05,0.498975E-01,
23486 &0.358008E-01,0.481618E-04,0.561391E-04,0.483654E-04,0.481618E-04,
23487 &0.212754E-02,0.677236E-05,0.434594E-01,0.306320E-01,0.406746E-04,
23488 &0.484724E-04,0.408657E-04,0.406746E-04,0.179059E-02,0.662814E-05,
23489 &0.377578E-01,0.261500E-01,0.343050E-04,0.418123E-04,0.344818E-04,
23490 &0.343050E-04,0.149563E-02,0.635273E-05,0.327229E-01,0.222734E-01,
23491 &0.288923E-04,0.360279E-04,0.290540E-04,0.288923E-04,0.124695E-02/
23492 DATA (DL(K),K= 2976, 3060) /
23493 &0.598767E-05,0.282894E-01,0.189287E-01,0.242960E-04,0.310036E-04,
23494 &0.244423E-04,0.242960E-04,0.104112E-02,0.556344E-05,0.243968E-01,
23495 &0.160504E-01,0.203920E-04,0.266363E-04,0.205232E-04,0.203920E-04,
23496 &0.863677E-03,0.510070E-05,0.209890E-01,0.135797E-01,0.170822E-04,
23497 &0.228449E-04,0.171989E-04,0.170822E-04,0.711641E-03,0.462338E-05,
23498 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23499 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23500 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23501 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23502 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23503 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23504 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23505 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23506 &0.105155E+00,0.752467E-01,0.719932E-04,0.719932E-04,0.719932E-04,
23507 &0.719932E-04,0.328057E-02,-.758942E-18,0.920856E-01,0.645455E-01,
23508 &0.592305E-04,0.615087E-04,0.592802E-04,0.592305E-04,0.295327E-02,
23509 &0.945234E-07,0.804695E-01,0.552770E-01,0.489125E-04,0.528632E-04/
23510 DATA (DL(K),K= 3061, 3145) /
23511 &0.489946E-04,0.489125E-04,0.261804E-02,0.365139E-06,0.701499E-01,
23512 &0.472409E-01,0.404786E-04,0.456186E-04,0.405807E-04,0.404786E-04,
23513 &0.229460E-02,0.686912E-06,0.610049E-01,0.402864E-01,0.335367E-04,
23514 &0.394631E-04,0.336495E-04,0.335367E-04,0.198445E-02,0.981070E-06,
23515 &0.529201E-01,0.342803E-01,0.278134E-04,0.342044E-04,0.279301E-04,
23516 &0.278134E-04,0.169772E-02,0.122521E-05,0.457907E-01,0.291037E-01,
23517 &0.230821E-04,0.296833E-04,0.231978E-04,0.230821E-04,0.144575E-02,
23518 &0.140819E-05,0.395205E-01,0.246522E-01,0.191553E-04,0.257661E-04,
23519 &0.192666E-04,0.191553E-04,0.122125E-02,0.152152E-05,0.340212E-01,
23520 &0.208330E-01,0.158874E-04,0.223546E-04,0.159921E-04,0.158874E-04,
23521 &0.101912E-02,0.156880E-05,0.292116E-01,0.175644E-01,0.131678E-04,
23522 &0.193783E-04,0.132645E-04,0.131678E-04,0.847586E-03,0.156432E-05,
23523 &0.250173E-01,0.147740E-01,0.109029E-04,0.167762E-04,0.109910E-04,
23524 &0.109029E-04,0.705515E-03,0.151845E-05,0.213702E-01,0.123979E-01,
23525 &0.901273E-05,0.144953E-04,0.909200E-05,0.901273E-05,0.581767E-03,
23526 &0.143817E-05,0.182083E-01,0.103797E-01,0.743733E-05,0.124978E-04,
23527 &0.750792E-05,0.743733E-05,0.475483E-03,0.133574E-05,0.154751E-01/
23528 DATA (DL(K),K= 3146, 3230) /
23529 &0.867011E-02,0.612722E-05,0.107517E-04,0.618950E-05,0.612722E-05,
23530 &0.390116E-03,0.122183E-05,0.131193E-01,0.722560E-02,0.503734E-05,
23531 &0.922584E-05,0.509185E-05,0.503734E-05,0.319980E-03,0.110130E-05,
23532 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23533 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23534 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23535 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23536 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23537 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23538 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23539 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23540 &0.754424E-01,0.449848E-01,0.236444E-04,0.236444E-04,0.236444E-04,
23541 &0.236444E-04,0.129291E-02,0.113079E-17,0.650429E-01,0.379660E-01,
23542 &0.187739E-04,0.207130E-04,0.187990E-04,0.187739E-04,0.124038E-02,
23543 &-.327995E-06,0.559588E-01,0.319936E-01,0.149625E-04,0.182671E-04,
23544 &0.150033E-04,0.149625E-04,0.113497E-02,-.464337E-06,0.480234E-01,
23545 &0.269030E-01,0.119484E-04,0.161746E-04,0.119982E-04,0.119484E-04/
23546 DATA (DL(K),K= 3231, 3315) /
23547 &0.100877E-02,-.490618E-06,0.411091E-01,0.225716E-01,0.954833E-05,
23548 &0.143391E-04,0.960250E-05,0.954833E-05,0.883852E-03,-.461770E-06,
23549 &0.350995E-01,0.188947E-01,0.763738E-05,0.127129E-04,0.769248E-05,
23550 &0.763738E-05,0.760077E-03,-.403363E-06,0.298897E-01,0.157798E-01,
23551 &0.611070E-05,0.112548E-04,0.616439E-05,0.611070E-05,0.639505E-03,
23552 &-.335607E-06,0.253856E-01,0.131470E-01,0.488993E-05,0.994021E-05,
23553 &0.494070E-05,0.488993E-05,0.534131E-03,-.267652E-06,0.215026E-01,
23554 &0.109271E-01,0.391276E-05,0.875190E-05,0.395967E-05,0.391276E-05,
23555 &0.445478E-03,-.205292E-06,0.181648E-01,0.906007E-02,0.312720E-05,
23556 &0.767418E-05,0.316978E-05,0.312720E-05,0.366232E-03,-.154024E-06,
23557 &0.153041E-01,0.749382E-02,0.249633E-05,0.670002E-05,0.253440E-05,
23558 &0.249633E-05,0.297435E-03,-.112673E-06,0.128596E-01,0.618334E-02,
23559 &0.199074E-05,0.582360E-05,0.202435E-05,0.199074E-05,0.242305E-03,
23560 &-.794410E-07,0.107770E-01,0.508977E-02,0.158457E-05,0.503733E-05,
23561 &0.161393E-05,0.158457E-05,0.196927E-03,-.546702E-07,0.900806E-02,
23562 &0.417964E-02,0.125888E-05,0.433619E-05,0.128428E-05,0.125888E-05,
23563 &0.158171E-03,-.364714E-07,0.751006E-02,0.342418E-02,0.998674E-06/
23564 DATA (DL(K),K= 3316, 3400) /
23565 &0.371518E-05,0.102046E-05,0.998674E-06,0.126865E-03,-.228706E-07,
23566 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23567 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23568 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23569 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23570 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23571 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23572 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23573 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23574 &0.496787E-01,0.236961E-01,0.607312E-05,0.607312E-05,0.607312E-05,
23575 &0.607312E-05,0.415108E-03,-.140523E-17,0.420445E-01,0.196196E-01,
23576 &0.443589E-05,0.603481E-05,0.444683E-05,0.443589E-05,0.444425E-03,
23577 &-.375397E-06,0.355108E-01,0.162223E-01,0.321766E-05,0.587645E-05,
23578 &0.323504E-05,0.321766E-05,0.432635E-03,-.593989E-06,0.299148E-01,
23579 &0.133836E-01,0.231504E-05,0.562250E-05,0.233581E-05,0.231504E-05,
23580 &0.395801E-03,-.699904E-06,0.251339E-01,0.110157E-01,0.164651E-05,
23581 &0.526880E-05,0.166853E-05,0.164651E-05,0.344925E-03,-.733095E-06/
23582 DATA (DL(K),K= 3401, 3485) /
23583 &0.210605E-01,0.904539E-02,0.115940E-05,0.485739E-05,0.118122E-05,
23584 &0.115940E-05,0.294439E-03,-.715193E-06,0.175989E-01,0.740944E-02,
23585 &0.808365E-06,0.441709E-05,0.829075E-06,0.808365E-06,0.249093E-03,
23586 &-.665420E-06,0.146656E-01,0.605433E-02,0.555563E-06,0.396078E-05,
23587 &0.574607E-06,0.555563E-06,0.205675E-03,-.600648E-06,0.121872E-01,
23588 &0.493466E-02,0.375914E-06,0.350822E-05,0.393011E-06,0.375914E-06,
23589 &0.166757E-03,-.529210E-06,0.100993E-01,0.401191E-02,0.250032E-06,
23590 &0.307359E-05,0.265094E-06,0.250032E-06,0.135196E-03,-.456996E-06,
23591 &0.834582E-02,0.325348E-02,0.162261E-06,0.266488E-05,0.175325E-06,
23592 &0.162261E-06,0.108862E-03,-.388821E-06,0.687767E-02,0.263179E-02,
23593 &0.102273E-06,0.228913E-05,0.113453E-06,0.102273E-06,0.865539E-04,
23594 &-.326325E-06,0.565221E-02,0.212357E-02,0.620694E-07,0.194975E-05,
23595 &0.715290E-07,0.620694E-07,0.687156E-04,-.270547E-06,0.463248E-02,
23596 &0.170926E-02,0.351992E-07,0.164711E-05,0.431226E-07,0.351992E-07,
23597 &0.543744E-04,-.222379E-06,0.378655E-02,0.137242E-02,0.178902E-07,
23598 &0.138124E-05,0.244675E-07,0.178902E-07,0.426626E-04,-.181158E-06,
23599 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23600 DATA (DL(K),K= 3486, 3570) /
23601 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23602 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23603 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23604 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23605 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23606 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23607 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23608 &0.286141E-01,0.102357E-01,0.105702E-05,0.105702E-05,0.105702E-05,
23609 &0.105702E-05,0.963318E-04,0.591070E-18,0.236608E-01,0.827483E-02,
23610 &0.548552E-06,0.163293E-05,0.551993E-06,0.548552E-06,0.133058E-03,
23611 &-.268677E-06,0.195282E-01,0.668247E-02,0.238780E-06,0.183459E-05,
23612 &0.243802E-06,0.238780E-06,0.135119E-03,-.393414E-06,0.160742E-01,
23613 &0.538444E-02,0.599864E-07,0.183277E-05,0.655085E-07,0.599864E-07,
23614 &0.124554E-03,-.428349E-06,0.131940E-01,0.432750E-02,-.392825E-07,
23615 &0.172071E-05,-.338391E-07,-.392825E-07,0.111121E-03,-.415550E-06,
23616 &0.107996E-01,0.346954E-02,-.875089E-07,0.154604E-05,-.824926E-07,
23617 &-.875089E-07,0.941854E-04,-.376855E-06,0.881435E-02,0.277463E-02/
23618 DATA (DL(K),K= 3571, 3655) /
23619 &-.103962E-06,0.135013E-05,-.995446E-07,-.103962E-06,0.772195E-04,
23620 &-.326008E-06,0.717317E-02,0.221313E-02,-.102844E-06,0.115335E-05,
23621 &-.990733E-07,-.102844E-06,0.626565E-04,-.272858E-06,0.582050E-02,
23622 &0.176061E-02,-.929503E-07,0.967229E-06,-.898064E-07,-.929503E-07,
23623 &0.499930E-04,-.222828E-06,0.470908E-02,0.139692E-02,-.791495E-07,
23624 &0.800414E-06,-.765797E-07,-.791495E-07,0.394181E-04,-.178141E-06,
23625 &0.379875E-02,0.110542E-02,-.647230E-07,0.655119E-06,-.626567E-07,
23626 &-.647230E-07,0.309999E-04,-.140000E-06,0.305549E-02,0.872447E-03,
23627 &-.515215E-07,0.530834E-06,-.498829E-07,-.515215E-07,0.240354E-04,
23628 &-.108633E-06,0.245058E-02,0.686769E-03,-.400234E-07,0.426835E-06,
23629 &-.387401E-07,-.400234E-07,0.184613E-04,-.832544E-07,0.195984E-02,
23630 &0.539209E-03,-.304312E-07,0.341169E-06,-.294373E-07,-.304312E-07,
23631 &0.143512E-04,-.630818E-07,0.156297E-02,0.422273E-03,-.228633E-07,
23632 &0.271199E-06,-.221014E-07,-.228633E-07,0.110898E-04,-.474683E-07,
23633 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23634 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23635 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23636 DATA (DL(K),K= 3656, 3740) /
23637 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23638 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23639 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23640 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23641 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23642 &0.129345E-01,0.308444E-02,0.903693E-07,0.903693E-07,0.903693E-07,
23643 &0.903693E-07,0.123538E-04,-.166230E-18,0.103598E-01,0.241354E-02,
23644 &0.155648E-06,-.205296E-06,0.154889E-06,0.155648E-06,0.267249E-04,
23645 &0.880707E-07,0.828507E-02,0.188764E-02,0.176333E-06,-.341498E-06,
23646 &0.175220E-06,0.176333E-06,0.306432E-04,0.125718E-06,0.660736E-02,
23647 &0.147304E-02,0.173444E-06,-.383695E-06,0.172215E-06,0.173444E-06,
23648 &0.280787E-04,0.135578E-06,0.525320E-02,0.114618E-02,0.158651E-06,
23649 &-.373371E-06,0.157437E-06,0.158651E-06,0.243526E-04,0.130412E-06,
23650 &0.416429E-02,0.889584E-03,0.137131E-06,-.333468E-06,0.136012E-06,
23651 &0.137131E-06,0.203463E-04,0.116115E-06,0.329102E-02,0.688580E-03,
23652 &0.113839E-06,-.280874E-06,0.112853E-06,0.113839E-06,0.161038E-04,
23653 &0.982305E-07,0.259282E-02,0.531508E-03,0.914374E-07,-.225427E-06/
23654 DATA (DL(K),K= 3741, 3825) /
23655 &0.905971E-07,0.914374E-07,0.125639E-04,0.798741E-07,0.203641E-02,
23656 &0.409120E-03,0.709595E-07,-.173123E-06,0.702607E-07,0.709595E-07,
23657 &0.979247E-05,0.624138E-07,0.159441E-02,0.314027E-03,0.532256E-07,
23658 &-.127272E-06,0.526566E-07,0.532256E-07,0.741899E-05,0.469253E-07,
23659 &0.124447E-02,0.240357E-03,0.385509E-07,-.888851E-07,0.380956E-07,
23660 &0.385509E-07,0.554070E-05,0.339174E-07,0.968328E-03,0.183454E-03,
23661 &0.267272E-07,-.580277E-07,0.263687E-07,0.267272E-07,0.420032E-05,
23662 &0.233280E-07,0.751159E-03,0.139632E-03,0.174605E-07,-.342016E-07,
23663 &0.171822E-07,0.174605E-07,0.315522E-05,0.149727E-07,0.580936E-03,
23664 &0.105986E-03,0.104515E-07,-.164567E-07,0.102383E-07,0.104515E-07,
23665 &0.230829E-05,0.863527E-08,0.447955E-03,0.802293E-04,0.531954E-08,
23666 &-.376312E-08,0.515829E-08,0.531954E-08,0.170771E-05,0.399662E-08,
23667 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23668 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23669 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23670 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23671 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23672 DATA (DL(K),K= 3826, 3910) /
23673 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23674 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23675 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23676 &0.324478E-02,0.386879E-03,0.135983E-08,0.135983E-08,0.135983E-08,
23677 &0.135983E-08,0.371787E-06,-.274599E-19,0.246219E-02,0.286505E-03,
23678 &-.106852E-06,0.327611E-06,-.106589E-06,-.106852E-06,0.231631E-05,
23679 &-.107814E-06,0.186777E-02,0.212413E-03,-.161566E-06,0.492001E-06,
23680 &-.161179E-06,-.161566E-06,0.311589E-05,-.162249E-06,0.141322E-02,
23681 &0.157212E-03,-.183398E-06,0.557106E-06,-.182972E-06,-.183398E-06,
23682 &0.267943E-05,-.183884E-06,0.106518E-02,0.115892E-03,-.185231E-06,
23683 &0.562185E-06,-.184809E-06,-.185231E-06,0.203027E-05,-.185573E-06,
23684 &0.800350E-03,0.851995E-04,-.174680E-06,0.530096E-06,-.174290E-06,
23685 &-.174680E-06,0.165870E-05,-.174922E-06,0.599444E-03,0.624676E-04,
23686 &-.157644E-06,0.478420E-06,-.157300E-06,-.157644E-06,0.130112E-05,
23687 &-.157815E-06,0.447433E-03,0.456556E-04,-.137838E-06,0.418429E-06,
23688 &-.137543E-06,-.137838E-06,0.903220E-06,-.137958E-06,0.332836E-03,
23689 &0.332643E-04,-.117616E-06,0.357179E-06,-.117368E-06,-.117616E-06/
23690 DATA (DL(K),K= 3911, 3995) /
23691 &0.636187E-06,-.117699E-06,0.246754E-03,0.241622E-04,-.984560E-07,
23692 &0.299077E-06,-.982529E-07,-.984560E-07,0.481221E-06,-.985144E-07,
23693 &0.182315E-03,0.174961E-04,-.811089E-07,0.246465E-06,-.809446E-07,
23694 &-.811089E-07,0.342859E-06,-.811495E-07,0.134250E-03,0.126299E-04,
23695 &-.659052E-07,0.200354E-06,-.657742E-07,-.659052E-07,0.227840E-06,
23696 &-.659334E-07,0.985288E-04,0.908931E-05,-.529252E-07,0.160947E-06,
23697 &-.528218E-07,-.529252E-07,0.161641E-06,-.529447E-07,0.720750E-04,
23698 &0.652153E-05,-.420621E-07,0.127943E-06,-.419814E-07,-.420621E-07,
23699 &0.119540E-06,-.420756E-07,0.525538E-04,0.466527E-05,-.331141E-07,
23700 &0.100758E-06,-.330516E-07,-.331141E-07,0.808991E-07,-.331233E-07,
23701 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23702 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23703 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23704 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23705 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23706 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23707 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23708 DATA (DL(K),K= 3996, 4000) /
23709 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23710C
23711 ANS = 0.
23712 IF (X.GT.0.9985) RETURN
23713 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
23714C
23715 IS = S/DELTA+1
23716 IS1 = IS+1
23717 DO 1 L=1,25
23718 KL = L+NDRV*25
23719 F1(L) = GF(I,IS,KL)
23720 F2(L) = GF(I,IS1,KL)
23721 1 CONTINUE
23722 A1 = DT_CKMTFF(X,F1)
23723 A2 = DT_CKMTFF(X,F2)
23724C A1=ALOG(A1)
23725C A2=ALOG(A2)
23726 S1 = (IS-1)*DELTA
23727 S2 = S1+DELTA
23728 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
23729C ANS=EXP(ANS)
23730 RETURN
23731 END
23732C
23733C
23734
23735*$ CREATE DT_CKMTPR.FOR
23736*COPY DT_CKMTPR
23737 SUBROUTINE DT_CKMTPR(I,NDRV,X,S,ANS)
23738C
23739C**********************************************************************
23740C Proton - PDFs
23741C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
23742C ANS = PDF(I)
23743C This version by S. Roesler, 31.01.96
23744C**********************************************************************
23745
23746 SAVE
23747 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
23748 EQUIVALENCE (GF(1,1,1),DL(1))
23749 DATA DELTA/.10/
23750C
23751 DATA (DL(K),K= 1, 85) /
23752 &0.367759E+00,0.350609E+00,0.325356E+00,0.325356E+00,0.325356E+00,
23753 &0.325356E+00,0.533117E+01,0.138778E-16,0.427988E+00,0.409718E+00,
23754 &0.382948E+00,0.382920E+00,0.382933E+00,0.382948E+00,0.686279E+01,
23755 &0.611113E-01,0.494752E+00,0.475328E+00,0.447011E+00,0.446959E+00,
23756 &0.446984E+00,0.447011E+00,0.855688E+01,0.128659E+00,0.568248E+00,
23757 &0.547637E+00,0.517743E+00,0.517671E+00,0.517705E+00,0.517743E+00,
23758 &0.104074E+02,0.202846E+00,0.648622E+00,0.626792E+00,0.595289E+00,
23759 &0.595201E+00,0.595244E+00,0.595289E+00,0.124065E+02,0.283819E+00,
23760 &0.735974E+00,0.712890E+00,0.679748E+00,0.679648E+00,0.679696E+00,
23761 &0.679748E+00,0.145441E+02,0.371679E+00,0.830359E+00,0.805987E+00,
23762 &0.771173E+00,0.771066E+00,0.771119E+00,0.771173E+00,0.168081E+02,
23763 &0.466485E+00,0.931778E+00,0.906084E+00,0.869566E+00,0.869456E+00,
23764 &0.869511E+00,0.869566E+00,0.191850E+02,0.568240E+00,0.104018E+01,
23765 &0.101313E+01,0.974873E+00,0.974763E+00,0.974819E+00,0.974873E+00,
23766 &0.216593E+02,0.676890E+00,0.115544E+01,0.112700E+01,0.108698E+01,
23767 &0.108687E+01,0.108693E+01,0.108698E+01,0.242146E+02,0.792321E+00,
23768 &0.127738E+01,0.124751E+01,0.120570E+01,0.120560E+01,0.120565E+01/
23769 DATA (DL(K),K= 86, 170) /
23770 &0.120570E+01,0.268333E+02,0.914356E+00,0.140577E+01,0.137444E+01,
23771 &0.133079E+01,0.133070E+01,0.133075E+01,0.133079E+01,0.294970E+02,
23772 &0.104275E+01,0.154028E+01,0.150745E+01,0.146194E+01,0.146187E+01,
23773 &0.146192E+01,0.146194E+01,0.321867E+02,0.117720E+01,0.168054E+01,
23774 &0.164619E+01,0.159879E+01,0.159874E+01,0.159877E+01,0.159879E+01,
23775 &0.348836E+02,0.131732E+01,0.182613E+01,0.179020E+01,0.174088E+01,
23776 &0.174086E+01,0.174088E+01,0.174088E+01,0.375685E+02,0.146269E+01,
23777 &0.197653E+01,0.193901E+01,0.188774E+01,0.188774E+01,0.188775E+01,
23778 &0.188774E+01,0.402228E+02,0.161282E+01,0.213121E+01,0.209205E+01,
23779 &0.203880E+01,0.203884E+01,0.203884E+01,0.203880E+01,0.428285E+02,
23780 &0.176714E+01,0.228955E+01,0.224873E+01,0.219348E+01,0.219355E+01,
23781 &0.219353E+01,0.219348E+01,0.453682E+02,0.192507E+01,0.245093E+01,
23782 &0.240840E+01,0.235113E+01,0.235123E+01,0.235120E+01,0.235113E+01,
23783 &0.478258E+02,0.208597E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23784 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23785 &0.349839E+00,0.324128E+00,0.286363E+00,0.286363E+00,0.286363E+00,
23786 &0.286363E+00,0.469694E+01,0.000000E+00,0.398361E+00,0.371065E+00/
23787 DATA (DL(K),K= 171, 255) /
23788 &0.331239E+00,0.331213E+00,0.331227E+00,0.331239E+00,0.586152E+01,
23789 &0.481683E-01,0.451010E+00,0.422096E+00,0.380182E+00,0.380137E+00,
23790 &0.380161E+00,0.380182E+00,0.711349E+01,0.100378E+00,0.507782E+00,
23791 &0.477215E+00,0.433187E+00,0.433128E+00,0.433160E+00,0.433187E+00,
23792 &0.844371E+01,0.156627E+00,0.568644E+00,0.536390E+00,0.490220E+00,
23793 &0.490152E+00,0.490190E+00,0.490220E+00,0.984291E+01,0.216886E+00,
23794 &0.633517E+00,0.599543E+00,0.551204E+00,0.551133E+00,0.551174E+00,
23795 &0.551204E+00,0.113005E+02,0.281079E+00,0.702295E+00,0.666565E+00,
23796 &0.616031E+00,0.615963E+00,0.616004E+00,0.616031E+00,0.128050E+02,
23797 &0.349101E+00,0.774832E+00,0.737311E+00,0.684556E+00,0.684495E+00,
23798 &0.684535E+00,0.684556E+00,0.143447E+02,0.420809E+00,0.850945E+00,
23799 &0.811598E+00,0.756596E+00,0.756547E+00,0.756583E+00,0.756596E+00,
23800 &0.159073E+02,0.496022E+00,0.930413E+00,0.889207E+00,0.831933E+00,
23801 &0.831901E+00,0.831931E+00,0.831933E+00,0.174801E+02,0.574524E+00,
23802 &0.101298E+01,0.969882E+00,0.910312E+00,0.910301E+00,0.910324E+00,
23803 &0.910312E+00,0.190508E+02,0.656061E+00,0.109836E+01,0.105333E+01,
23804 &0.991445E+00,0.991459E+00,0.991471E+00,0.991445E+00,0.206070E+02/
23805 DATA (DL(K),K= 256, 340) /
23806 &0.740345E+00,0.118622E+01,0.113923E+01,0.107501E+01,0.107505E+01,
23807 &0.107505E+01,0.107501E+01,0.221368E+02,0.827056E+00,0.127622E+01,
23808 &0.122724E+01,0.116065E+01,0.116073E+01,0.116072E+01,0.116065E+01,
23809 &0.236287E+02,0.915845E+00,0.136797E+01,0.131696E+01,0.124800E+01,
23810 &0.124812E+01,0.124809E+01,0.124800E+01,0.250721E+02,0.100634E+01,
23811 &0.146107E+01,0.140801E+01,0.133666E+01,0.133681E+01,0.133677E+01,
23812 &0.133666E+01,0.264571E+02,0.109813E+01,0.155511E+01,0.149996E+01,
23813 &0.142621E+01,0.142641E+01,0.142634E+01,0.142621E+01,0.277747E+02,
23814 &0.119081E+01,0.164964E+01,0.159239E+01,0.151622E+01,0.151646E+01,
23815 &0.151638E+01,0.151622E+01,0.290168E+02,0.128396E+01,0.174424E+01,
23816 &0.168485E+01,0.160626E+01,0.160655E+01,0.160645E+01,0.160626E+01,
23817 &0.301765E+02,0.137713E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23818 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23819 &0.345345E+00,0.306823E+00,0.250518E+00,0.250518E+00,0.250518E+00,
23820 &0.250518E+00,0.411726E+01,-.138778E-16,0.384210E+00,0.343514E+00,
23821 &0.284500E+00,0.284487E+00,0.284496E+00,0.284500E+00,0.496835E+01,
23822 &0.371582E-01,0.425419E+00,0.382518E+00,0.320782E+00,0.320762E+00/
23823 DATA (DL(K),K= 341, 425) /
23824 &0.320777E+00,0.320782E+00,0.585504E+01,0.765988E-01,0.468853E+00,
23825 &0.423717E+00,0.359246E+00,0.359226E+00,0.359243E+00,0.359246E+00,
23826 &0.676824E+01,0.118207E+00,0.514392E+00,0.466990E+00,0.399771E+00,
23827 &0.399758E+00,0.399775E+00,0.399771E+00,0.769967E+01,0.161865E+00,
23828 &0.561883E+00,0.512186E+00,0.442209E+00,0.442208E+00,0.442222E+00,
23829 &0.442209E+00,0.864071E+01,0.207426E+00,0.611162E+00,0.559140E+00,
23830 &0.486395E+00,0.486411E+00,0.486420E+00,0.486395E+00,0.958280E+01,
23831 &0.254727E+00,0.662044E+00,0.607667E+00,0.532145E+00,0.532185E+00,
23832 &0.532185E+00,0.532145E+00,0.105176E+02,0.303587E+00,0.714325E+00,
23833 &0.657566E+00,0.579261E+00,0.579328E+00,0.579318E+00,0.579261E+00,
23834 &0.114370E+02,0.353808E+00,0.767786E+00,0.708618E+00,0.627526E+00,
23835 &0.627625E+00,0.627603E+00,0.627526E+00,0.123333E+02,0.405174E+00,
23836 &0.822195E+00,0.760591E+00,0.676711E+00,0.676846E+00,0.676810E+00,
23837 &0.676711E+00,0.131994E+02,0.457458E+00,0.877307E+00,0.813242E+00,
23838 &0.726575E+00,0.726750E+00,0.726697E+00,0.726575E+00,0.140286E+02,
23839 &0.510420E+00,0.932865E+00,0.866317E+00,0.776867E+00,0.777085E+00,
23840 &0.777015E+00,0.776867E+00,0.148150E+02,0.563809E+00,0.988608E+00/
23841 DATA (DL(K),K= 426, 510) /
23842 &0.919556E+00,0.827330E+00,0.827594E+00,0.827505E+00,0.827330E+00,
23843 &0.155533E+02,0.617368E+00,0.104427E+01,0.972694E+00,0.877703E+00,
23844 &0.878016E+00,0.877907E+00,0.877703E+00,0.162391E+02,0.670837E+00,
23845 &0.109958E+01,0.102547E+01,0.927723E+00,0.928088E+00,0.927957E+00,
23846 &0.927723E+00,0.168687E+02,0.723954E+00,0.115428E+01,0.107761E+01,
23847 &0.977132E+00,0.977550E+00,0.977397E+00,0.977132E+00,0.174391E+02,
23848 &0.776458E+00,0.120809E+01,0.112886E+01,0.102567E+01,0.102615E+01,
23849 &0.102597E+01,0.102567E+01,0.179481E+02,0.828097E+00,0.126078E+01,
23850 &0.117898E+01,0.107310E+01,0.107363E+01,0.107343E+01,0.107310E+01,
23851 &0.183942E+02,0.878621E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23852 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23853 &0.357586E+00,0.299938E+00,0.216504E+00,0.216504E+00,0.216504E+00,
23854 &0.216504E+00,0.357260E+01,-.277556E-16,0.388529E+00,0.327984E+00,
23855 &0.241161E+00,0.241168E+00,0.241168E+00,0.241161E+00,0.415893E+01,
23856 &0.278429E-01,0.420472E+00,0.357015E+00,0.266823E+00,0.266844E+00,
23857 &0.266842E+00,0.266823E+00,0.474689E+01,0.566783E-01,0.453271E+00,
23858 &0.386886E+00,0.293349E+00,0.293389E+00,0.293381E+00,0.293349E+00/
23859 DATA (DL(K),K= 511, 595) /
23860 &0.532982E+01,0.863668E-01,0.486793E+00,0.417464E+00,0.320608E+00,
23861 &0.320673E+00,0.320657E+00,0.320608E+00,0.590219E+01,0.116779E+00,
23862 &0.520887E+00,0.448601E+00,0.348454E+00,0.348549E+00,0.348523E+00,
23863 &0.348454E+00,0.645868E+01,0.147773E+00,0.555403E+00,0.480149E+00,
23864 &0.376740E+00,0.376870E+00,0.376831E+00,0.376740E+00,0.699440E+01,
23865 &0.179201E+00,0.590183E+00,0.511950E+00,0.405314E+00,0.405482E+00,
23866 &0.405429E+00,0.405314E+00,0.750493E+01,0.210912E+00,0.625064E+00,
23867 &0.543845E+00,0.434019E+00,0.434229E+00,0.434159E+00,0.434019E+00,
23868 &0.798636E+01,0.242750E+00,0.659882E+00,0.575673E+00,0.462696E+00,
23869 &0.462952E+00,0.462864E+00,0.462696E+00,0.843528E+01,0.274558E+00,
23870 &0.694472E+00,0.607271E+00,0.491188E+00,0.491492E+00,0.491385E+00,
23871 &0.491188E+00,0.884885E+01,0.306178E+00,0.728669E+00,0.638478E+00,
23872 &0.519337E+00,0.519690E+00,0.519563E+00,0.519337E+00,0.922480E+01,
23873 &0.337451E+00,0.762311E+00,0.669133E+00,0.546987E+00,0.547392E+00,
23874 &0.547244E+00,0.546987E+00,0.956139E+01,0.368224E+00,0.795240E+00,
23875 &0.699084E+00,0.573988E+00,0.574447E+00,0.574277E+00,0.573988E+00,
23876 &0.985744E+01,0.398346E+00,0.827302E+00,0.728181E+00,0.600196E+00/
23877 DATA (DL(K),K= 596, 680) /
23878 &0.600710E+00,0.600518E+00,0.600196E+00,0.101123E+02,0.427671E+00,
23879 &0.858354E+00,0.756282E+00,0.625475E+00,0.626044E+00,0.625829E+00,
23880 &0.625475E+00,0.103258E+02,0.456064E+00,0.888257E+00,0.783256E+00,
23881 &0.649696E+00,0.650321E+00,0.650083E+00,0.649696E+00,0.104982E+02,
23882 &0.483395E+00,0.916887E+00,0.808981E+00,0.672742E+00,0.673422E+00,
23883 &0.673161E+00,0.672742E+00,0.106303E+02,0.509546E+00,0.944126E+00,
23884 &0.833345E+00,0.694506E+00,0.695243E+00,0.694958E+00,0.694506E+00,
23885 &0.107231E+02,0.534410E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23886 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23887 &0.390721E+00,0.304671E+00,0.182562E+00,0.182562E+00,0.182562E+00,
23888 &0.182562E+00,0.303699E+01,0.693889E-17,0.414806E+00,0.325059E+00,
23889 &0.199103E+00,0.199133E+00,0.199124E+00,0.199103E+00,0.339971E+01,
23890 &0.198528E-01,0.438929E+00,0.345508E+00,0.215797E+00,0.215862E+00,
23891 &0.215842E+00,0.215797E+00,0.374624E+01,0.398420E-01,0.462973E+00,
23892 &0.365903E+00,0.232531E+00,0.232635E+00,0.232601E+00,0.232531E+00,
23893 &0.407322E+01,0.598565E-01,0.486835E+00,0.386142E+00,0.249208E+00,
23894 &0.249352E+00,0.249304E+00,0.249208E+00,0.437817E+01,0.797987E-01/
23895 DATA (DL(K),K= 681, 765) /
23896 &0.510407E+00,0.406123E+00,0.265725E+00,0.265913E+00,0.265849E+00,
23897 &0.265725E+00,0.465901E+01,0.995694E-01,0.533588E+00,0.425746E+00,
23898 &0.281986E+00,0.282220E+00,0.282139E+00,0.281986E+00,0.491410E+01,
23899 &0.119072E+00,0.556274E+00,0.444912E+00,0.297897E+00,0.298178E+00,
23900 &0.298079E+00,0.297897E+00,0.514220E+01,0.138212E+00,0.578369E+00,
23901 &0.463528E+00,0.313366E+00,0.313696E+00,0.313578E+00,0.313366E+00,
23902 &0.534249E+01,0.156900E+00,0.599777E+00,0.481503E+00,0.328308E+00,
23903 &0.328688E+00,0.328549E+00,0.328308E+00,0.551456E+01,0.175048E+00,
23904 &0.620409E+00,0.498752E+00,0.342642E+00,0.343071E+00,0.342913E+00,
23905 &0.342642E+00,0.565833E+01,0.192575E+00,0.640181E+00,0.515196E+00,
23906 &0.356292E+00,0.356770E+00,0.356592E+00,0.356292E+00,0.577410E+01,
23907 &0.209407E+00,0.659017E+00,0.530764E+00,0.369190E+00,0.369718E+00,
23908 &0.369519E+00,0.369190E+00,0.586243E+01,0.225474E+00,0.676845E+00,
23909 &0.545389E+00,0.381275E+00,0.381852E+00,0.381633E+00,0.381275E+00,
23910 &0.592421E+01,0.240714E+00,0.693604E+00,0.559015E+00,0.392493E+00,
23911 &0.393118E+00,0.392880E+00,0.392493E+00,0.596052E+01,0.255072E+00,
23912 &0.709239E+00,0.571593E+00,0.402799E+00,0.403472E+00,0.403213E+00/
23913 DATA (DL(K),K= 766, 850) /
23914 &0.402799E+00,0.597267E+01,0.268502E+00,0.723703E+00,0.583081E+00,
23915 &0.412157E+00,0.412875E+00,0.412597E+00,0.412157E+00,0.596211E+01,
23916 &0.280966E+00,0.736960E+00,0.593447E+00,0.420536E+00,0.421299E+00,
23917 &0.421002E+00,0.420536E+00,0.593045E+01,0.292434E+00,0.748980E+00,
23918 &0.602669E+00,0.427918E+00,0.428723E+00,0.428408E+00,0.427918E+00,
23919 &0.587934E+01,0.302884E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23920 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23921 &0.448390E+00,0.320678E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23922 &0.146415E+00,0.247594E+01,0.000000E+00,0.465760E+00,0.333734E+00,
23923 &0.155974E+00,0.156013E+00,0.156000E+00,0.155974E+00,0.265633E+01,
23924 &0.130329E-01,0.482525E+00,0.346293E+00,0.165233E+00,0.165311E+00,
23925 &0.165285E+00,0.165233E+00,0.281612E+01,0.257304E-01,0.498626E+00,
23926 &0.358294E+00,0.174131E+00,0.174249E+00,0.174209E+00,0.174131E+00,
23927 &0.295484E+01,0.380345E-01,0.514008E+00,0.369688E+00,0.182622E+00,
23928 &0.182779E+00,0.182724E+00,0.182622E+00,0.307242E+01,0.498976E-01,
23929 &0.528624E+00,0.380432E+00,0.190660E+00,0.190856E+00,0.190786E+00,
23930 &0.190660E+00,0.316911E+01,0.612760E-01,0.542428E+00,0.390485E+00/
23931 DATA (DL(K),K= 851, 935) /
23932 &0.198205E+00,0.198441E+00,0.198356E+00,0.198205E+00,0.324538E+01,
23933 &0.721303E-01,0.555382E+00,0.399810E+00,0.205224E+00,0.205498E+00,
23934 &0.205398E+00,0.205224E+00,0.330192E+01,0.824256E-01,0.567448E+00,
23935 &0.408377E+00,0.211687E+00,0.211997E+00,0.211882E+00,0.211687E+00,
23936 &0.333960E+01,0.921319E-01,0.578597E+00,0.416159E+00,0.217568E+00,
23937 &0.217915E+00,0.217784E+00,0.217568E+00,0.335945E+01,0.101224E+00,
23938 &0.588802E+00,0.423136E+00,0.222847E+00,0.223229E+00,0.223084E+00,
23939 &0.222847E+00,0.336262E+01,0.109681E+00,0.598043E+00,0.429293E+00,
23940 &0.227512E+00,0.227928E+00,0.227768E+00,0.227512E+00,0.335036E+01,
23941 &0.117489E+00,0.606305E+00,0.434619E+00,0.231551E+00,0.232000E+00,
23942 &0.231826E+00,0.231551E+00,0.332398E+01,0.124636E+00,0.613579E+00,
23943 &0.439110E+00,0.234962E+00,0.235442E+00,0.235254E+00,0.234962E+00,
23944 &0.328483E+01,0.131119E+00,0.619860E+00,0.442766E+00,0.237745E+00,
23945 &0.238254E+00,0.238053E+00,0.237745E+00,0.323429E+01,0.136936E+00,
23946 &0.625150E+00,0.445594E+00,0.239905E+00,0.240441E+00,0.240228E+00,
23947 &0.239905E+00,0.317371E+01,0.142091E+00,0.629453E+00,0.447603E+00,
23948 &0.241452E+00,0.242014E+00,0.241788E+00,0.241452E+00,0.310443E+01/
23949 DATA (DL(K),K= 936, 1020) /
23950 &0.146594E+00,0.632782E+00,0.448808E+00,0.242400E+00,0.242987E+00,
23951 &0.242749E+00,0.242400E+00,0.302775E+01,0.150456E+00,0.635151E+00,
23952 &0.449228E+00,0.242767E+00,0.243376E+00,0.243127E+00,0.242767E+00,
23953 &0.294491E+01,0.153694E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23954 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23955 &0.528765E+00,0.341825E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23956 &0.105823E+00,0.185069E+01,-.138778E-16,0.538124E+00,0.347118E+00,
23957 &0.109762E+00,0.109780E+00,0.109774E+00,0.109762E+00,0.189644E+01,
23958 &0.738880E-02,0.546541E+00,0.351712E+00,0.113300E+00,0.113336E+00,
23959 &0.113324E+00,0.113300E+00,0.192700E+01,0.143076E-01,0.554014E+00,
23960 &0.355607E+00,0.116431E+00,0.116485E+00,0.116466E+00,0.116431E+00,
23961 &0.194356E+01,0.207515E-01,0.560546E+00,0.358805E+00,0.119150E+00,
23962 &0.119222E+00,0.119196E+00,0.119150E+00,0.194722E+01,0.267179E-01,
23963 &0.566139E+00,0.361311E+00,0.121459E+00,0.121549E+00,0.121515E+00,
23964 &0.121459E+00,0.193921E+01,0.322084E-01,0.570802E+00,0.363134E+00,
23965 &0.123359E+00,0.123467E+00,0.123426E+00,0.123359E+00,0.192071E+01,
23966 &0.372262E-01,0.574542E+00,0.364286E+00,0.124858E+00,0.124983E+00/
23967 DATA (DL(K),K= 1021, 1105) /
23968 &0.124933E+00,0.124858E+00,0.189295E+01,0.417774E-01,0.577372E+00,
23969 &0.364779E+00,0.125961E+00,0.126103E+00,0.126046E+00,0.125961E+00,
23970 &0.185710E+01,0.458703E-01,0.579307E+00,0.364629E+00,0.126681E+00,
23971 &0.126839E+00,0.126774E+00,0.126681E+00,0.181432E+01,0.495154E-01,
23972 &0.580363E+00,0.363857E+00,0.127029E+00,0.127202E+00,0.127130E+00,
23973 &0.127029E+00,0.176571E+01,0.527252E-01,0.580561E+00,0.362483E+00,
23974 &0.127020E+00,0.127208E+00,0.127128E+00,0.127020E+00,0.171231E+01,
23975 &0.555142E-01,0.579923E+00,0.360529E+00,0.126670E+00,0.126872E+00,
23976 &0.126785E+00,0.126670E+00,0.165511E+01,0.578985E-01,0.578474E+00,
23977 &0.358021E+00,0.125998E+00,0.126213E+00,0.126119E+00,0.125998E+00,
23978 &0.159501E+01,0.598958E-01,0.576241E+00,0.354987E+00,0.125022E+00,
23979 &0.125249E+00,0.125148E+00,0.125022E+00,0.153284E+01,0.615248E-01,
23980 &0.573252E+00,0.351453E+00,0.123762E+00,0.124000E+00,0.123893E+00,
23981 &0.123762E+00,0.146934E+01,0.628056E-01,0.569539E+00,0.347450E+00,
23982 &0.122240E+00,0.122488E+00,0.122375E+00,0.122240E+00,0.140517E+01,
23983 &0.637587E-01,0.565134E+00,0.343008E+00,0.120476E+00,0.120733E+00,
23984 &0.120615E+00,0.120476E+00,0.134093E+01,0.644054E-01,0.560071E+00/
23985 DATA (DL(K),K= 1106, 1190) /
23986 &0.338158E+00,0.118493E+00,0.118758E+00,0.118635E+00,0.118493E+00,
23987 &0.127712E+01,0.647671E-01,0.000000E+00,0.000000E+00,0.000000E+00,
23988 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23989 &0.584093E+00,0.349173E+00,0.772117E-01,0.772117E-01,0.772117E-01,
23990 &0.772117E-01,0.140433E+01,0.346945E-17,0.586736E+00,0.349017E+00,
23991 &0.785355E-01,0.785519E-01,0.785448E-01,0.785355E-01,0.139434E+01,
23992 &0.447504E-02,0.588402E+00,0.348237E+00,0.795437E-01,0.795759E-01,
23993 &0.795617E-01,0.795437E-01,0.137550E+01,0.854114E-02,0.589124E+00,
23994 &0.346861E+00,0.802498E-01,0.802970E-01,0.802758E-01,0.802498E-01,
23995 &0.134918E+01,0.122148E-01,0.588930E+00,0.344912E+00,0.806656E-01,
23996 &0.807271E-01,0.806990E-01,0.806656E-01,0.131652E+01,0.155101E-01,
23997 &0.587849E+00,0.342417E+00,0.808055E-01,0.808805E-01,0.808457E-01,
23998 &0.808055E-01,0.127862E+01,0.184435E-01,0.585912E+00,0.339402E+00,
23999 &0.806843E-01,0.807718E-01,0.807306E-01,0.806843E-01,0.123648E+01,
24000 &0.210315E-01,0.583151E+00,0.335894E+00,0.803173E-01,0.804166E-01,
24001 &0.803692E-01,0.803173E-01,0.119104E+01,0.232909E-01,0.579599E+00,
24002 &0.331923E+00,0.797205E-01,0.798308E-01,0.797775E-01,0.797205E-01/
24003 DATA (DL(K),K= 1191, 1275) /
24004 &0.114317E+01,0.252394E-01,0.575288E+00,0.327516E+00,0.789107E-01,
24005 &0.790310E-01,0.789721E-01,0.789107E-01,0.109362E+01,0.268946E-01,
24006 &0.570253E+00,0.322704E+00,0.779045E-01,0.780341E-01,0.779698E-01,
24007 &0.779045E-01,0.104307E+01,0.282745E-01,0.564530E+00,0.317515E+00,
24008 &0.767190E-01,0.768570E-01,0.767878E-01,0.767190E-01,0.992143E+00,
24009 &0.293974E-01,0.558155E+00,0.311981E+00,0.753713E-01,0.755169E-01,
24010 &0.754432E-01,0.753713E-01,0.941341E+00,0.302812E-01,0.551166E+00,
24011 &0.306131E+00,0.738784E-01,0.740308E-01,0.739528E-01,0.738784E-01,
24012 &0.891113E+00,0.309441E-01,0.543599E+00,0.299995E+00,0.722571E-01,
24013 &0.724154E-01,0.723336E-01,0.722571E-01,0.841829E+00,0.314037E-01,
24014 &0.535494E+00,0.293603E+00,0.705237E-01,0.706871E-01,0.706019E-01,
24015 &0.705237E-01,0.793794E+00,0.316774E-01,0.526888E+00,0.286986E+00,
24016 &0.686941E-01,0.688619E-01,0.687736E-01,0.686941E-01,0.747249E+00,
24017 &0.317823E-01,0.517822E+00,0.280172E+00,0.667836E-01,0.669551E-01,
24018 &0.668640E-01,0.667836E-01,0.702381E+00,0.317346E-01,0.508333E+00,
24019 &0.273189E+00,0.648068E-01,0.649814E-01,0.648879E-01,0.648068E-01,
24020 &0.659330E+00,0.315501E-01,0.000000E+00,0.000000E+00,0.000000E+00/
24021 DATA (DL(K),K= 1276, 1360) /
24022 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24023 &0.622739E+00,0.340676E+00,0.509141E-01,0.509141E-01,0.509141E-01,
24024 &0.509141E-01,0.980502E+00,-.173472E-17,0.617764E+00,0.335457E+00,
24025 &0.507607E-01,0.507701E-01,0.507651E-01,0.507607E-01,0.944375E+00,
24026 &0.242386E-02,0.611957E+00,0.329837E+00,0.504236E-01,0.504417E-01,
24027 &0.504321E-01,0.504236E-01,0.905225E+00,0.455851E-02,0.605372E+00,
24028 &0.323853E+00,0.499207E-01,0.499471E-01,0.499328E-01,0.499207E-01,
24029 &0.864035E+00,0.642656E-02,0.598052E+00,0.317537E+00,0.492668E-01,
24030 &0.493008E-01,0.492822E-01,0.492668E-01,0.821557E+00,0.804638E-02,
24031 &0.590044E+00,0.310919E+00,0.484772E-01,0.485183E-01,0.484955E-01,
24032 &0.484772E-01,0.778444E+00,0.943663E-02,0.581391E+00,0.304033E+00,
24033 &0.475665E-01,0.476142E-01,0.475874E-01,0.475665E-01,0.735263E+00,
24034 &0.106150E-01,0.572137E+00,0.296908E+00,0.465487E-01,0.466024E-01,
24035 &0.465720E-01,0.465487E-01,0.692487E+00,0.115984E-01,0.562326E+00,
24036 &0.289573E+00,0.454376E-01,0.454968E-01,0.454629E-01,0.454376E-01,
24037 &0.650510E+00,0.124032E-01,0.552003E+00,0.282060E+00,0.442463E-01,
24038 &0.443103E-01,0.442733E-01,0.442463E-01,0.609652E+00,0.130451E-01/
24039 DATA (DL(K),K= 1361, 1445) /
24040 &0.541210E+00,0.274395E+00,0.429871E-01,0.430555E-01,0.430156E-01,
24041 &0.429871E-01,0.570164E+00,0.135389E-01,0.529991E+00,0.266608E+00,
24042 &0.416720E-01,0.417443E-01,0.417018E-01,0.416720E-01,0.532237E+00,
24043 &0.138989E-01,0.518389E+00,0.258725E+00,0.403123E-01,0.403879E-01,
24044 &0.403431E-01,0.403123E-01,0.496010E+00,0.141386E-01,0.506446E+00,
24045 &0.250772E+00,0.389186E-01,0.389971E-01,0.389501E-01,0.389186E-01,
24046 &0.461573E+00,0.142708E-01,0.494204E+00,0.242775E+00,0.375006E-01,
24047 &0.375815E-01,0.375327E-01,0.375006E-01,0.428979E+00,0.143074E-01,
24048 &0.481705E+00,0.234757E+00,0.360674E-01,0.361503E-01,0.361000E-01,
24049 &0.360674E-01,0.398246E+00,0.142598E-01,0.468990E+00,0.226741E+00,
24050 &0.346276E-01,0.347120E-01,0.346605E-01,0.346276E-01,0.369363E+00,
24051 &0.141385E-01,0.456098E+00,0.218750E+00,0.331887E-01,0.332743E-01,
24052 &0.332216E-01,0.331887E-01,0.342300E+00,0.139532E-01,0.443068E+00,
24053 &0.210804E+00,0.317576E-01,0.318440E-01,0.317905E-01,0.317576E-01,
24054 &0.317005E+00,0.137130E-01,0.000000E+00,0.000000E+00,0.000000E+00,
24055 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24056 &0.631458E+00,0.318714E+00,0.335640E-01,0.335640E-01,0.335640E-01/
24057 DATA (DL(K),K= 1446, 1530) /
24058 &0.335640E-01,0.686773E+00,0.346945E-17,0.620274E+00,0.310241E+00,
24059 &0.329311E-01,0.329377E-01,0.329337E-01,0.329311E-01,0.646559E+00,
24060 &0.135960E-02,0.608504E+00,0.301610E+00,0.322083E-01,0.322210E-01,
24061 &0.322133E-01,0.322083E-01,0.606503E+00,0.252820E-02,0.596205E+00,
24062 &0.292854E+00,0.314099E-01,0.314281E-01,0.314169E-01,0.314099E-01,
24063 &0.567134E+00,0.352543E-02,0.583429E+00,0.284002E+00,0.305470E-01,
24064 &0.305704E-01,0.305558E-01,0.305470E-01,0.528824E+00,0.436693E-02,
24065 &0.570223E+00,0.275080E+00,0.296307E-01,0.296586E-01,0.296411E-01,
24066 &0.296307E-01,0.491848E+00,0.506768E-02,0.556637E+00,0.266115E+00,
24067 &0.286709E-01,0.287030E-01,0.286827E-01,0.286709E-01,0.456422E+00,
24068 &0.564157E-02,0.542717E+00,0.257131E+00,0.276770E-01,0.277128E-01,
24069 &0.276900E-01,0.276770E-01,0.422697E+00,0.610148E-02,0.528511E+00,
24070 &0.248154E+00,0.266578E-01,0.266968E-01,0.266718E-01,0.266578E-01,
24071 &0.390771E+00,0.645942E-02,0.514062E+00,0.239205E+00,0.256210E-01,
24072 &0.256629E-01,0.256359E-01,0.256210E-01,0.360700E+00,0.672653E-02,
24073 &0.499417E+00,0.230307E+00,0.245741E-01,0.246185E-01,0.245896E-01,
24074 &0.245741E-01,0.332498E+00,0.691312E-02,0.484617E+00,0.221480E+00/
24075 DATA (DL(K),K= 1531, 1615) /
24076 &0.235237E-01,0.235701E-01,0.235397E-01,0.235237E-01,0.306153E+00,
24077 &0.702875E-02,0.469706E+00,0.212745E+00,0.224757E-01,0.225238E-01,
24078 &0.224921E-01,0.224757E-01,0.281624E+00,0.708222E-02,0.454725E+00,
24079 &0.204118E+00,0.214355E-01,0.214850E-01,0.214522E-01,0.214355E-01,
24080 &0.258855E+00,0.708159E-02,0.439713E+00,0.195618E+00,0.204079E-01,
24081 &0.204586E-01,0.204249E-01,0.204079E-01,0.237774E+00,0.703428E-02,
24082 &0.424709E+00,0.187259E+00,0.193972E-01,0.194486E-01,0.194142E-01,
24083 &0.193972E-01,0.218298E+00,0.694702E-02,0.409750E+00,0.179057E+00,
24084 &0.184069E-01,0.184588E-01,0.184239E-01,0.184069E-01,0.200339E+00,
24085 &0.682594E-02,0.394870E+00,0.171023E+00,0.174402E-01,0.174924E-01,
24086 &0.174571E-01,0.174402E-01,0.183804E+00,0.667657E-02,0.380104E+00,
24087 &0.163171E+00,0.164997E-01,0.165519E-01,0.165164E-01,0.164997E-01,
24088 &0.168600E+00,0.650389E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24089 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24090 &0.619056E+00,0.288873E+00,0.218554E-01,0.218554E-01,0.218554E-01,
24091 &0.218554E-01,0.477010E+00,-.867362E-17,0.602890E+00,0.278444E+00,
24092 &0.211480E-01,0.211530E-01,0.211497E-01,0.211480E-01,0.440877E+00/
24093 DATA (DL(K),K= 1616, 1700) /
24094 &0.767466E-03,0.586431E+00,0.268081E+00,0.204081E-01,0.204175E-01,
24095 &0.204113E-01,0.204081E-01,0.406417E+00,0.141432E-02,0.569736E+00,
24096 &0.257807E+00,0.196446E-01,0.196581E-01,0.196491E-01,0.196446E-01,
24097 &0.373808E+00,0.195508E-02,0.552853E+00,0.247642E+00,0.188646E-01,
24098 &0.188816E-01,0.188701E-01,0.188646E-01,0.343145E+00,0.240123E-02,
24099 &0.535829E+00,0.237603E+00,0.180743E-01,0.180945E-01,0.180808E-01,
24100 &0.180743E-01,0.314460E+00,0.276332E-02,0.518710E+00,0.227710E+00,
24101 &0.172796E-01,0.173025E-01,0.172868E-01,0.172796E-01,0.287750E+00,
24102 &0.305100E-02,0.501539E+00,0.217977E+00,0.164854E-01,0.165108E-01,
24103 &0.164933E-01,0.164854E-01,0.262983E+00,0.327305E-02,0.484360E+00,
24104 &0.208420E+00,0.156964E-01,0.157239E-01,0.157049E-01,0.156964E-01,
24105 &0.240098E+00,0.343744E-02,0.467213E+00,0.199053E+00,0.149165E-01,
24106 &0.149457E-01,0.149254E-01,0.149165E-01,0.219021E+00,0.355144E-02,
24107 &0.450140E+00,0.189889E+00,0.141493E-01,0.141800E-01,0.141586E-01,
24108 &0.141493E-01,0.199660E+00,0.362164E-02,0.433177E+00,0.180939E+00,
24109 &0.133978E-01,0.134297E-01,0.134073E-01,0.133978E-01,0.181918E+00,
24110 &0.365401E-02,0.416362E+00,0.172214E+00,0.126646E-01,0.126974E-01/
24111 DATA (DL(K),K= 1701, 1785) /
24112 &0.126742E-01,0.126646E-01,0.165692E+00,0.365394E-02,0.399729E+00,
24113 &0.163725E+00,0.119518E-01,0.119853E-01,0.119615E-01,0.119518E-01,
24114 &0.150875E+00,0.362628E-02,0.383310E+00,0.155477E+00,0.112613E-01,
24115 &0.112952E-01,0.112711E-01,0.112613E-01,0.137364E+00,0.357539E-02,
24116 &0.367138E+00,0.147479E+00,0.105945E-01,0.106287E-01,0.106042E-01,
24117 &0.105945E-01,0.125056E+00,0.350515E-02,0.351239E+00,0.139737E+00,
24118 &0.995250E-02,0.998673E-02,0.996211E-02,0.995250E-02,0.113852E+00,
24119 &0.341903E-02,0.335641E+00,0.132253E+00,0.933610E-02,0.937024E-02,
24120 &0.934557E-02,0.933610E-02,0.103659E+00,0.332009E-02,0.320367E+00,
24121 &0.125033E+00,0.874584E-02,0.877973E-02,0.875514E-02,0.874584E-02,
24122 &0.943886E-01,0.321106E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24123 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24124 &0.591114E+00,0.254807E+00,0.139531E-01,0.139531E-01,0.139531E-01,
24125 &0.139531E-01,0.326288E+00,0.000000E+00,0.571121E+00,0.243424E+00,
24126 &0.133325E-01,0.133362E-01,0.133336E-01,0.133325E-01,0.296956E+00,
24127 &0.429082E-03,0.551151E+00,0.232297E+00,0.127105E-01,0.127175E-01,
24128 &0.127126E-01,0.127105E-01,0.269811E+00,0.785137E-03,0.531253E+00/
24129 DATA (DL(K),K= 1786, 1870) /
24130 &0.221436E+00,0.120916E-01,0.121015E-01,0.120945E-01,0.120916E-01,
24131 &0.244803E+00,0.107790E-02,0.511467E+00,0.210850E+00,0.114794E-01,
24132 &0.114918E-01,0.114829E-01,0.114794E-01,0.221863E+00,0.131504E-02,
24133 &0.491833E+00,0.200545E+00,0.108767E-01,0.108913E-01,0.108808E-01,
24134 &0.108767E-01,0.200886E+00,0.150337E-02,0.472388E+00,0.190531E+00,
24135 &0.102861E-01,0.103027E-01,0.102907E-01,0.102861E-01,0.181762E+00,
24136 &0.164910E-02,0.453170E+00,0.180812E+00,0.970979E-02,0.972799E-02,
24137 &0.971477E-02,0.970979E-02,0.164371E+00,0.175777E-02,0.434213E+00,
24138 &0.171394E+00,0.914959E-02,0.916916E-02,0.915488E-02,0.914959E-02,
24139 &0.148589E+00,0.183434E-02,0.415548E+00,0.162282E+00,0.860700E-02,
24140 &0.862770E-02,0.861252E-02,0.860700E-02,0.134293E+00,0.188328E-02,
24141 &0.397208E+00,0.153479E+00,0.808323E-02,0.810484E-02,0.808891E-02,
24142 &0.808323E-02,0.121361E+00,0.190856E-02,0.379220E+00,0.144989E+00,
24143 &0.757922E-02,0.760152E-02,0.758501E-02,0.757922E-02,0.109676E+00,
24144 &0.191374E-02,0.361611E+00,0.136811E+00,0.709565E-02,0.711846E-02,
24145 &0.710150E-02,0.709565E-02,0.991261E-01,0.190199E-02,0.344406E+00,
24146 &0.128948E+00,0.663300E-02,0.665614E-02,0.663885E-02,0.663300E-02/
24147 DATA (DL(K),K= 1871, 1955) /
24148 &0.896059E-01,0.187610E-02,0.327627E+00,0.121398E+00,0.619152E-02,
24149 &0.621484E-02,0.619734E-02,0.619152E-02,0.810177E-01,0.183856E-02,
24150 &0.311292E+00,0.114161E+00,0.577130E-02,0.579466E-02,0.577706E-02,
24151 &0.577130E-02,0.732709E-01,0.179155E-02,0.295421E+00,0.107235E+00,
24152 &0.537228E-02,0.539554E-02,0.537794E-02,0.537228E-02,0.662824E-01,
24153 &0.173700E-02,0.280026E+00,0.100616E+00,0.499423E-02,0.501728E-02,
24154 &0.499977E-02,0.499423E-02,0.599766E-01,0.167658E-02,0.265121E+00,
24155 &0.943000E-01,0.463683E-02,0.465958E-02,0.464223E-02,0.463683E-02,
24156 &0.542848E-01,0.161174E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24157 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24158 &0.551659E+00,0.219084E+00,0.867977E-02,0.867977E-02,0.867977E-02,
24159 &0.867977E-02,0.218587E+00,-.173472E-16,0.528947E+00,0.207536E+00,
24160 &0.819621E-02,0.819909E-02,0.819696E-02,0.819621E-02,0.196367E+00,
24161 &0.234843E-03,0.506575E+00,0.196391E+00,0.772540E-02,0.773082E-02,
24162 &0.772680E-02,0.772540E-02,0.176280E+00,0.427503E-03,0.484579E+00,
24163 &0.185646E+00,0.726876E-02,0.727639E-02,0.727069E-02,0.726876E-02,
24164 &0.158158E+00,0.583933E-03,0.462988E+00,0.175298E+00,0.682746E-02/
24165 DATA (DL(K),K= 1956, 2040) /
24166 &0.683702E-02,0.682985E-02,0.682746E-02,0.141851E+00,0.708874E-03,
24167 &0.441830E+00,0.165345E+00,0.640226E-02,0.641347E-02,0.640502E-02,
24168 &0.640226E-02,0.127203E+00,0.806409E-03,0.421129E+00,0.155783E+00,
24169 &0.599380E-02,0.600641E-02,0.599686E-02,0.599380E-02,0.114065E+00,
24170 &0.880249E-03,0.400912E+00,0.146609E+00,0.560252E-02,0.561629E-02,
24171 &0.560581E-02,0.560252E-02,0.102296E+00,0.933676E-03,0.381199E+00,
24172 &0.137819E+00,0.522870E-02,0.524342E-02,0.523217E-02,0.522870E-02,
24173 &0.917608E-01,0.969607E-03,0.362011E+00,0.129407E+00,0.487247E-02,
24174 &0.488796E-02,0.487607E-02,0.487247E-02,0.823356E-01,0.990632E-03,
24175 &0.343367E+00,0.121370E+00,0.453385E-02,0.454992E-02,0.453753E-02,
24176 &0.453385E-02,0.739054E-01,0.999042E-03,0.325282E+00,0.113700E+00,
24177 &0.421272E-02,0.422921E-02,0.421644E-02,0.421272E-02,0.663651E-01,
24178 &0.996863E-03,0.307770E+00,0.106393E+00,0.390887E-02,0.392563E-02,
24179 &0.391260E-02,0.390887E-02,0.596195E-01,0.985881E-03,0.290841E+00,
24180 &0.994399E-01,0.362199E-02,0.363889E-02,0.362570E-02,0.362199E-02,
24181 &0.535826E-01,0.967664E-03,0.274506E+00,0.928343E-01,0.335170E-02,
24182 &0.336862E-02,0.335536E-02,0.335170E-02,0.481769E-01,0.943587E-03/
24183 DATA (DL(K),K= 2041, 2125) /
24184 &0.258771E+00,0.865679E-01,0.309756E-02,0.311439E-02,0.310114E-02,
24185 &0.309756E-02,0.433336E-01,0.914850E-03,0.243639E+00,0.806321E-01,
24186 &0.285905E-02,0.287571E-02,0.286255E-02,0.285905E-02,0.389912E-01,
24187 &0.882497E-03,0.229113E+00,0.750177E-01,0.263565E-02,0.265205E-02,
24188 &0.263905E-02,0.263565E-02,0.350948E-01,0.847432E-03,0.215193E+00,
24189 &0.697152E-01,0.242677E-02,0.244285E-02,0.243005E-02,0.242677E-02,
24190 &0.315960E-01,0.810432E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24191 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24192 &0.503850E+00,0.183581E+00,0.522815E-02,0.522815E-02,0.522815E-02,
24193 &0.522815E-02,0.142635E+00,0.123599E-16,0.479478E+00,0.172477E+00,
24194 &0.488093E-02,0.488328E-02,0.488147E-02,0.488093E-02,0.126767E+00,
24195 &0.124505E-03,0.455750E+00,0.161879E+00,0.455054E-02,0.455493E-02,
24196 &0.455153E-02,0.455054E-02,0.112695E+00,0.225968E-03,0.432681E+00,
24197 &0.151771E+00,0.423664E-02,0.424278E-02,0.423800E-02,0.423664E-02,
24198 &0.100212E+00,0.307702E-03,0.410286E+00,0.142140E+00,0.393907E-02,
24199 &0.394671E-02,0.394073E-02,0.393907E-02,0.891488E-01,0.372395E-03,
24200 &0.388577E+00,0.132974E+00,0.365743E-02,0.366634E-02,0.365934E-02/
24201 DATA (DL(K),K= 2126, 2210) /
24202 &0.365743E-02,0.793490E-01,0.422302E-03,0.367563E+00,0.124259E+00,
24203 &0.339138E-02,0.340133E-02,0.339347E-02,0.339138E-02,0.706688E-01,
24204 &0.459484E-03,0.347256E+00,0.115984E+00,0.314049E-02,0.315129E-02,
24205 &0.314273E-02,0.314049E-02,0.629792E-01,0.485762E-03,0.327660E+00,
24206 &0.108136E+00,0.290433E-02,0.291580E-02,0.290667E-02,0.290433E-02,
24207 &0.561642E-01,0.502744E-03,0.308782E+00,0.100701E+00,0.268243E-02,
24208 &0.269440E-02,0.268483E-02,0.268243E-02,0.501207E-01,0.511853E-03,
24209 &0.290625E+00,0.936693E-01,0.247429E-02,0.248663E-02,0.247672E-02,
24210 &0.247429E-02,0.447569E-01,0.514346E-03,0.273189E+00,0.870261E-01,
24211 &0.227939E-02,0.229197E-02,0.228184E-02,0.227939E-02,0.399920E-01,
24212 &0.511328E-03,0.256475E+00,0.807592E-01,0.209722E-02,0.210991E-02,
24213 &0.209965E-02,0.209722E-02,0.357547E-01,0.503769E-03,0.240478E+00,
24214 &0.748555E-01,0.192721E-02,0.193992E-02,0.192961E-02,0.192721E-02,
24215 &0.319825E-01,0.492518E-03,0.225194E+00,0.693019E-01,0.176883E-02,
24216 &0.178147E-02,0.177117E-02,0.176883E-02,0.286209E-01,0.478318E-03,
24217 &0.210615E+00,0.640851E-01,0.162151E-02,0.163400E-02,0.162379E-02,
24218 &0.162151E-02,0.256219E-01,0.461813E-03,0.196733E+00,0.591917E-01/
24219 DATA (DL(K),K= 2211, 2295) /
24220 &0.148471E-02,0.149698E-02,0.148691E-02,0.148471E-02,0.229436E-01,
24221 &0.443561E-03,0.183536E+00,0.546085E-01,0.135786E-02,0.136986E-02,
24222 &0.135998E-02,0.135786E-02,0.205496E-01,0.424043E-03,0.171011E+00,
24223 &0.503219E-01,0.124042E-02,0.125211E-02,0.124246E-02,0.124042E-02,
24224 &0.184079E-01,0.403672E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24225 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24226 &0.450310E+00,0.149685E+00,0.302765E-02,0.302765E-02,0.302765E-02,
24227 &0.302765E-02,0.901099E-01,-.108420E-17,0.425282E+00,0.139479E+00,
24228 &0.279499E-02,0.279691E-02,0.279537E-02,0.279499E-02,0.794239E-01,
24229 &0.632140E-04,0.401169E+00,0.129837E+00,0.257801E-02,0.258157E-02,
24230 &0.257870E-02,0.257801E-02,0.700941E-01,0.114711E-03,0.377966E+00,
24231 &0.120733E+00,0.237556E-02,0.238052E-02,0.237650E-02,0.237556E-02,
24232 &0.619270E-01,0.156107E-03,0.355668E+00,0.112145E+00,0.218688E-02,
24233 &0.219301E-02,0.218802E-02,0.218688E-02,0.547717E-01,0.188777E-03,
24234 &0.334269E+00,0.104052E+00,0.201113E-02,0.201823E-02,0.201243E-02,
24235 &0.201113E-02,0.484974E-01,0.213848E-03,0.313762E+00,0.964335E-01,
24236 &0.184758E-02,0.185546E-02,0.184900E-02,0.184758E-02,0.429879E-01/
24237 DATA (DL(K),K= 2296, 2380) /
24238 &0.232367E-03,0.294139E+00,0.892696E-01,0.169553E-02,0.170402E-02,
24239 &0.169703E-02,0.169553E-02,0.381432E-01,0.245270E-03,0.275389E+00,
24240 &0.825414E-01,0.155431E-02,0.156326E-02,0.155586E-02,0.155431E-02,
24241 &0.338762E-01,0.253383E-03,0.257502E+00,0.762303E-01,0.142329E-02,
24242 &0.143258E-02,0.142487E-02,0.142329E-02,0.301119E-01,0.257441E-03,
24243 &0.240464E+00,0.703180E-01,0.130188E-02,0.131138E-02,0.130347E-02,
24244 &0.130188E-02,0.267853E-01,0.258098E-03,0.224262E+00,0.647867E-01,
24245 &0.118950E-02,0.119912E-02,0.119108E-02,0.118950E-02,0.238409E-01,
24246 &0.255929E-03,0.208879E+00,0.596190E-01,0.108562E-02,0.109526E-02,
24247 &0.108717E-02,0.108562E-02,0.212308E-01,0.251442E-03,0.194298E+00,
24248 &0.547975E-01,0.989698E-03,0.999283E-03,0.991221E-03,0.989698E-03,
24249 &0.189136E-01,0.245082E-03,0.180499E+00,0.503054E-01,0.901248E-03,
24250 &0.910711E-03,0.902726E-03,0.901248E-03,0.168537E-01,0.237238E-03,
24251 &0.167463E+00,0.461263E-01,0.819789E-03,0.829074E-03,0.821215E-03,
24252 &0.819789E-03,0.150206E-01,0.228250E-03,0.155167E+00,0.422438E-01,
24253 &0.744866E-03,0.753925E-03,0.746234E-03,0.744866E-03,0.133878E-01,
24254 &0.218412E-03,0.143590E+00,0.386421E-01,0.676043E-03,0.684836E-03/
24255 DATA (DL(K),K= 2381, 2465) /
24256 &0.677349E-03,0.676043E-03,0.119320E-01,0.207976E-03,0.132706E+00,
24257 &0.353058E-01,0.612907E-03,0.621403E-03,0.614147E-03,0.612907E-03,
24258 &0.106334E-01,0.197159E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24259 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24260 &0.393307E+00,0.118409E+00,0.167124E-02,0.167124E-02,0.167124E-02,
24261 &0.167124E-02,0.547140E-01,0.433681E-17,0.368555E+00,0.109414E+00,
24262 &0.152547E-02,0.152705E-02,0.152573E-02,0.152547E-02,0.479708E-01,
24263 &0.303147E-04,0.344946E+00,0.101001E+00,0.139202E-02,0.139494E-02,
24264 &0.139249E-02,0.139202E-02,0.421517E-01,0.552185E-04,0.322450E+00,
24265 &0.931345E-01,0.126960E-02,0.127363E-02,0.127024E-02,0.126960E-02,
24266 &0.371043E-01,0.753524E-04,0.301043E+00,0.857854E-01,0.115731E-02,
24267 &0.116225E-02,0.115808E-02,0.115731E-02,0.327131E-01,0.913172E-04,
24268 &0.280698E+00,0.789267E-01,0.105427E-02,0.105995E-02,0.105514E-02,
24269 &0.105427E-02,0.288844E-01,0.103605E-03,0.261390E+00,0.725323E-01,
24270 &0.959726E-03,0.965979E-03,0.960659E-03,0.959726E-03,0.255366E-01,
24271 &0.112688E-03,0.243091E+00,0.665774E-01,0.872987E-03,0.879676E-03,
24272 &0.873966E-03,0.872987E-03,0.226017E-01,0.119000E-03,0.225775E+00/
24273 DATA (DL(K),K= 2466, 2550) /
24274 &0.610385E-01,0.793435E-03,0.800438E-03,0.794441E-03,0.793435E-03,
24275 &0.200219E-01,0.122931E-03,0.209414E+00,0.558928E-01,0.720508E-03,
24276 &0.727716E-03,0.721524E-03,0.720508E-03,0.177490E-01,0.124835E-03,
24277 &0.193979E+00,0.511187E-01,0.653691E-03,0.661011E-03,0.654703E-03,
24278 &0.653691E-03,0.157425E-01,0.125031E-03,0.179441E+00,0.466950E-01,
24279 &0.592513E-03,0.599863E-03,0.593511E-03,0.592513E-03,0.139674E-01,
24280 &0.123805E-03,0.165770E+00,0.426018E-01,0.536539E-03,0.543850E-03,
24281 &0.537513E-03,0.536539E-03,0.123945E-01,0.121411E-03,0.152935E+00,
24282 &0.388195E-01,0.485370E-03,0.492584E-03,0.486314E-03,0.485370E-03,
24283 &0.109993E-01,0.118076E-03,0.140905E+00,0.353295E-01,0.438636E-03,
24284 &0.445702E-03,0.439543E-03,0.438636E-03,0.976027E-02,0.113999E-03,
24285 &0.129648E+00,0.321137E-01,0.395992E-03,0.402871E-03,0.396859E-03,
24286 &0.395992E-03,0.865895E-02,0.109353E-03,0.119131E+00,0.291550E-01,
24287 &0.357120E-03,0.363779E-03,0.357945E-03,0.357120E-03,0.767960E-02,
24288 &0.104292E-03,0.109323E+00,0.264366E-01,0.321725E-03,0.328139E-03,
24289 &0.322505E-03,0.321725E-03,0.680866E-02,0.989468E-04,0.100191E+00,
24290 &0.239428E-01,0.289531E-03,0.295679E-03,0.290266E-03,0.289531E-03/
24291 DATA (DL(K),K= 2551, 2635) /
24292 &0.603390E-02,0.934295E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24293 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24294 &0.334851E+00,0.904666E-01,0.869706E-03,0.869706E-03,0.869706E-03,
24295 &0.869706E-03,0.316365E-01,-.311708E-17,0.311223E+00,0.828706E-01,
24296 &0.784673E-03,0.785968E-03,0.784847E-03,0.784673E-03,0.277037E-01,
24297 &0.134749E-04,0.288910E+00,0.758361E-01,0.708234E-03,0.710597E-03,
24298 &0.708543E-03,0.708234E-03,0.243298E-01,0.247881E-04,0.267855E+00,
24299 &0.693222E-01,0.639256E-03,0.642491E-03,0.639671E-03,0.639256E-03,
24300 &0.214125E-01,0.340882E-04,0.248015E+00,0.632964E-01,0.576953E-03,
24301 &0.580887E-03,0.577448E-03,0.576953E-03,0.188764E-01,0.415701E-04,
24302 &0.229343E+00,0.577274E-01,0.520615E-03,0.525096E-03,0.521167E-03,
24303 &0.520615E-03,0.166642E-01,0.474027E-04,0.211794E+00,0.525860E-01,
24304 &0.469624E-03,0.474520E-03,0.470215E-03,0.469624E-03,0.147265E-01,
24305 &0.517615E-04,0.195325E+00,0.478447E-01,0.423445E-03,0.428640E-03,
24306 &0.424060E-03,0.423445E-03,0.130234E-01,0.548213E-04,0.179891E+00,
24307 &0.434776E-01,0.381606E-03,0.387001E-03,0.382232E-03,0.381606E-03,
24308 &0.115226E-01,0.567474E-04,0.165449E+00,0.394601E-01,0.343691E-03/
24309 DATA (DL(K),K= 2636, 2720) /
24310 &0.349200E-03,0.344317E-03,0.343691E-03,0.101965E-01,0.576952E-04,
24311 &0.151958E+00,0.357691E-01,0.309329E-03,0.314879E-03,0.309948E-03,
24312 &0.309329E-03,0.902217E-02,0.578101E-04,0.139374E+00,0.323826E-01,
24313 &0.278192E-03,0.283721E-03,0.278796E-03,0.278192E-03,0.798131E-02,
24314 &0.572266E-04,0.127655E+00,0.292797E-01,0.249984E-03,0.255440E-03,
24315 &0.250569E-03,0.249984E-03,0.705796E-02,0.560672E-04,0.116760E+00,
24316 &0.264406E-01,0.224440E-03,0.229782E-03,0.225002E-03,0.224440E-03,
24317 &0.623793E-02,0.544420E-04,0.106647E+00,0.238467E-01,0.201321E-03,
24318 &0.206513E-03,0.201856E-03,0.201321E-03,0.550962E-02,0.524504E-04,
24319 &0.972762E-01,0.214802E-01,0.180411E-03,0.185425E-03,0.180918E-03,
24320 &0.180411E-03,0.486321E-02,0.501804E-04,0.886073E-01,0.193242E-01,
24321 &0.161512E-03,0.166328E-03,0.161990E-03,0.161512E-03,0.428946E-02,
24322 &0.477087E-04,0.806013E-01,0.173629E-01,0.144446E-03,0.149048E-03,
24323 &0.144894E-03,0.144446E-03,0.378030E-02,0.451020E-04,0.732197E-01,
24324 &0.155814E-01,0.129049E-03,0.133425E-03,0.129467E-03,0.129049E-03,
24325 &0.332897E-02,0.424179E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24326 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24327 DATA (DL(K),K= 2721, 2805) /
24328 &0.276761E+00,0.663170E-01,0.420483E-03,0.420483E-03,0.420483E-03,
24329 &0.420483E-03,0.172075E-01,0.418773E-17,0.255003E+00,0.601925E-01,
24330 &0.374768E-03,0.375776E-03,0.374876E-03,0.374768E-03,0.151410E-01,
24331 &0.540038E-05,0.234664E+00,0.545789E-01,0.334420E-03,0.336252E-03,
24332 &0.334612E-03,0.334420E-03,0.133594E-01,0.101360E-04,0.215665E+00,
24333 &0.494328E-01,0.298611E-03,0.301108E-03,0.298867E-03,0.298611E-03,
24334 &0.118079E-01,0.141555E-04,0.197941E+00,0.447203E-01,0.266766E-03,
24335 &0.269787E-03,0.267068E-03,0.266766E-03,0.104461E-01,0.174750E-04,
24336 &0.181428E+00,0.404089E-01,0.238391E-03,0.241815E-03,0.238726E-03,
24337 &0.238391E-03,0.924609E-02,0.201244E-04,0.166064E+00,0.364687E-01,
24338 &0.213061E-03,0.216782E-03,0.213417E-03,0.213061E-03,0.818507E-02,
24339 &0.221467E-04,0.151790E+00,0.328719E-01,0.190418E-03,0.194343E-03,
24340 &0.190785E-03,0.190418E-03,0.724366E-02,0.235974E-04,0.138548E+00,
24341 &0.295925E-01,0.170150E-03,0.174202E-03,0.170521E-03,0.170150E-03,
24342 &0.640614E-02,0.245354E-04,0.126282E+00,0.266063E-01,0.151991E-03,
24343 &0.156104E-03,0.152359E-03,0.151991E-03,0.566089E-02,0.250221E-04,
24344 &0.114939E+00,0.238907E-01,0.135710E-03,0.139827E-03,0.136071E-03/
24345 DATA (DL(K),K= 2806, 2890) /
24346 &0.135710E-03,0.499773E-02,0.251191E-04,0.104465E+00,0.214245E-01,
24347 &0.121106E-03,0.125180E-03,0.121455E-03,0.121106E-03,0.440691E-02,
24348 &0.248850E-04,0.948101E-01,0.191879E-01,0.108002E-03,0.111994E-03,
24349 &0.108337E-03,0.108002E-03,0.388094E-02,0.243760E-04,0.859247E-01,
24350 &0.171625E-01,0.962435E-04,0.100124E-03,0.965624E-04,0.962435E-04,
24351 &0.341379E-02,0.236445E-04,0.777613E-01,0.153309E-01,0.856948E-04,
24352 &0.894394E-04,0.859960E-04,0.856948E-04,0.299910E-02,0.227378E-04,
24353 &0.702736E-01,0.136770E-01,0.762337E-04,0.798235E-04,0.765166E-04,
24354 &0.762337E-04,0.263116E-02,0.216984E-04,0.634174E-01,0.121859E-01,
24355 &0.677528E-04,0.711742E-04,0.680169E-04,0.677528E-04,0.230551E-02,
24356 &0.205642E-04,0.571500E-01,0.108434E-01,0.601554E-04,0.633990E-04,
24357 &0.604008E-04,0.601554E-04,0.201791E-02,0.193681E-04,0.514305E-01,
24358 &0.963651E-02,0.533545E-04,0.564148E-04,0.535814E-04,0.533545E-04,
24359 &0.176404E-02,0.181381E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24360 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24361 &0.220700E+00,0.461964E-01,0.185072E-03,0.185072E-03,0.185072E-03,
24362 &0.185072E-03,0.865568E-02,-.294090E-17,0.201438E+00,0.415162E-01/
24363 DATA (DL(K),K= 2891, 2975) /
24364 &0.162774E-03,0.163610E-03,0.162842E-03,0.162774E-03,0.772611E-02,
24365 &0.184134E-05,0.183625E+00,0.372730E-01,0.143469E-03,0.144974E-03,
24366 &0.143588E-03,0.143469E-03,0.690038E-02,0.359959E-05,0.167162E+00,
24367 &0.334245E-01,0.126634E-03,0.128666E-03,0.126791E-03,0.126634E-03,
24368 &0.616000E-02,0.518075E-05,0.151966E+00,0.299378E-01,0.111904E-03,
24369 &0.114340E-03,0.112088E-03,0.111904E-03,0.549219E-02,0.654232E-05,
24370 &0.137959E+00,0.267821E-01,0.989836E-04,0.101716E-03,0.991845E-04,
24371 &0.989836E-04,0.488896E-02,0.767008E-05,0.125065E+00,0.239289E-01,
24372 &0.876157E-04,0.905559E-04,0.878269E-04,0.876157E-04,0.434253E-02,
24373 &0.855860E-05,0.113213E+00,0.213524E-01,0.775899E-04,0.806611E-04,
24374 &0.778055E-04,0.775899E-04,0.384886E-02,0.921640E-05,0.102335E+00,
24375 &0.190285E-01,0.687292E-04,0.718676E-04,0.689446E-04,0.687292E-04,
24376 &0.340422E-02,0.965961E-05,0.923671E-01,0.169353E-01,0.608829E-04,
24377 &0.640353E-04,0.610944E-04,0.608829E-04,0.300332E-02,0.990752E-05,
24378 &0.832476E-01,0.150523E-01,0.539242E-04,0.570473E-04,0.541291E-04,
24379 &0.539242E-04,0.264288E-02,0.998320E-05,0.749179E-01,0.133608E-01,
24380 &0.477459E-04,0.508046E-04,0.479422E-04,0.477459E-04,0.232088E-02/
24381 DATA (DL(K),K= 2976, 3060) /
24382 &0.991147E-05,0.673221E-01,0.118435E-01,0.422554E-04,0.452220E-04,
24383 &0.424417E-04,0.422554E-04,0.203376E-02,0.971603E-05,0.604073E-01,
24384 &0.104845E-01,0.373730E-04,0.402263E-04,0.375483E-04,0.373730E-04,
24385 &0.177791E-02,0.941959E-05,0.541231E-01,0.926900E-02,0.330304E-04,
24386 &0.357544E-04,0.331943E-04,0.330304E-04,0.155117E-02,0.904408E-05,
24387 &0.484216E-01,0.818347E-02,0.291681E-04,0.317517E-04,0.293202E-04,
24388 &0.291681E-04,0.135108E-02,0.860921E-05,0.432578E-01,0.721549E-02,
24389 &0.257333E-04,0.281694E-04,0.258738E-04,0.257333E-04,0.117463E-02,
24390 &0.813214E-05,0.385889E-01,0.635362E-02,0.226802E-04,0.249648E-04,
24391 &0.228093E-04,0.226802E-04,0.101941E-02,0.762814E-05,0.343746E-01,
24392 &0.558739E-02,0.199682E-04,0.221003E-04,0.200863E-04,0.199682E-04,
24393 &0.883469E-03,0.711035E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24394 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24395 &0.168205E+00,0.301419E-01,0.719932E-04,0.719932E-04,0.719932E-04,
24396 &0.719932E-04,0.392825E-02,-.205998E-17,0.151922E+00,0.267932E-01,
24397 &0.623634E-04,0.630456E-04,0.624028E-04,0.623634E-04,0.361412E-02,
24398 &0.457084E-06,0.137042E+00,0.237932E-01,0.541981E-04,0.554098E-04/
24399 DATA (DL(K),K= 3061, 3145) /
24400 &0.542663E-04,0.541981E-04,0.330342E-02,0.989813E-06,0.123446E+00,
24401 &0.211038E-01,0.472163E-04,0.488314E-04,0.473050E-04,0.472163E-04,
24402 &0.300140E-02,0.152631E-05,0.111042E+00,0.186954E-01,0.412159E-04,
24403 &0.431273E-04,0.413184E-04,0.412159E-04,0.270826E-02,0.202092E-05,
24404 &0.997395E-01,0.165410E-01,0.360433E-04,0.381615E-04,0.361542E-04,
24405 &0.360433E-04,0.242968E-02,0.245400E-05,0.894558E-01,0.146159E-01,
24406 &0.315670E-04,0.338178E-04,0.316822E-04,0.315670E-04,0.216928E-02,
24407 &0.281218E-05,0.801130E-01,0.128978E-01,0.276779E-04,0.300002E-04,
24408 &0.277940E-04,0.276779E-04,0.192603E-02,0.308878E-05,0.716379E-01,
24409 &0.113663E-01,0.242878E-04,0.266317E-04,0.244024E-04,0.242878E-04,
24410 &0.170100E-02,0.328451E-05,0.639623E-01,0.100031E-01,0.213246E-04,
24411 &0.236502E-04,0.214357E-04,0.213246E-04,0.149649E-02,0.340483E-05,
24412 &0.570222E-01,0.879131E-02,0.187277E-04,0.210033E-04,0.188341E-04,
24413 &0.187277E-04,0.131163E-02,0.345656E-05,0.507574E-01,0.771565E-02,
24414 &0.164465E-04,0.186476E-04,0.165471E-04,0.164465E-04,0.114469E-02,
24415 &0.344782E-05,0.451118E-01,0.676223E-02,0.144396E-04,0.165480E-04,
24416 &0.145339E-04,0.144396E-04,0.995649E-03,0.338831E-05,0.400330E-01/
24417 DATA (DL(K),K= 3146, 3230) /
24418 &0.591841E-02,0.126720E-04,0.146744E-04,0.127597E-04,0.126720E-04,
24419 &0.863829E-03,0.328754E-05,0.354720E-01,0.517273E-02,0.111137E-04,
24420 &0.130013E-04,0.111946E-04,0.111137E-04,0.747293E-03,0.315403E-05,
24421 &0.313830E-01,0.451477E-02,0.973915E-05,0.115067E-04,0.981339E-05,
24422 &0.973915E-05,0.644664E-03,0.299600E-05,0.277237E-01,0.393511E-02,
24423 &0.852687E-05,0.101721E-04,0.859457E-05,0.852687E-05,0.555034E-03,
24424 &0.282099E-05,0.244545E-01,0.342521E-02,0.745784E-05,0.898076E-05,
24425 &0.751926E-05,0.745784E-05,0.476998E-03,0.263530E-05,0.215390E-01,
24426 &0.297737E-02,0.651555E-05,0.791817E-05,0.657100E-05,0.651555E-05,
24427 &0.409096E-03,0.244427E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24428 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24429 &0.120694E+00,0.180081E-01,0.236444E-04,0.236444E-04,0.236444E-04,
24430 &0.236444E-04,0.154817E-02,0.416656E-17,0.107713E+00,0.158098E-01,
24431 &0.200945E-04,0.206098E-04,0.201146E-04,0.200945E-04,0.151249E-02,
24432 &0.192118E-07,0.960063E-01,0.138667E-01,0.171552E-04,0.180593E-04,
24433 &0.171894E-04,0.171552E-04,0.143574E-02,0.116516E-06,0.854477E-01,
24434 &0.121473E-01,0.146986E-04,0.158894E-04,0.147425E-04,0.146986E-04/
24435 DATA (DL(K),K= 3231, 3315) /
24436 &0.133744E-02,0.251060E-06,0.759386E-01,0.106275E-01,0.126329E-04,
24437 &0.140252E-04,0.126830E-04,0.126329E-04,0.122900E-02,0.395272E-06,
24438 &0.673865E-01,0.928577E-02,0.108901E-04,0.124142E-04,0.109436E-04,
24439 &0.108901E-04,0.111367E-02,0.535145E-06,0.597062E-01,0.810254E-02,
24440 &0.941160E-05,0.110108E-04,0.946648E-05,0.941160E-05,0.996785E-03,
24441 &0.659421E-06,0.528194E-01,0.706039E-02,0.815165E-05,0.978016E-05,
24442 &0.820627E-05,0.815165E-05,0.885152E-03,0.762600E-06,0.466540E-01,
24443 &0.614371E-02,0.707299E-05,0.869464E-05,0.712616E-05,0.707299E-05,
24444 &0.780484E-03,0.842072E-06,0.411433E-01,0.533850E-02,0.614470E-05,
24445 &0.773135E-05,0.619559E-05,0.614470E-05,0.682563E-03,0.896683E-06,
24446 &0.362261E-01,0.463223E-02,0.534297E-05,0.687330E-05,0.539102E-05,
24447 &0.534297E-05,0.593317E-03,0.928176E-06,0.318459E-01,0.401364E-02,
24448 &0.464848E-05,0.610690E-05,0.469333E-05,0.464848E-05,0.513720E-03,
24449 &0.939174E-06,0.279510E-01,0.347266E-02,0.404483E-05,0.542054E-05,
24450 &0.408628E-05,0.404483E-05,0.442713E-03,0.932117E-06,0.244935E-01,
24451 &0.300029E-02,0.351893E-05,0.480507E-05,0.355692E-05,0.351893E-05,
24452 &0.379744E-03,0.910085E-06,0.214299E-01,0.258845E-02,0.306021E-05/
24453 DATA (DL(K),K= 3316, 3400) /
24454 &0.425313E-05,0.309476E-05,0.306021E-05,0.324785E-03,0.876365E-06,
24455 &0.187200E-01,0.222996E-02,0.265958E-05,0.375823E-05,0.269081E-05,
24456 &0.265958E-05,0.277080E-03,0.833755E-06,0.163273E-01,0.191840E-02,
24457 &0.230942E-05,0.331477E-05,0.233747E-05,0.230942E-05,0.235661E-03,
24458 &0.784780E-06,0.142185E-01,0.164805E-02,0.200337E-05,0.291797E-05,
24459 &0.202844E-05,0.200337E-05,0.199949E-03,0.731774E-06,0.123631E-01,
24460 &0.141382E-02,0.173596E-05,0.256351E-05,0.175824E-05,0.173596E-05,
24461 &0.169376E-03,0.676674E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24462 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24463 &0.794823E-01,0.948208E-02,0.607312E-05,0.607312E-05,0.607312E-05,
24464 &0.607312E-05,0.497062E-03,-.140523E-17,0.699344E-01,0.820355E-02,
24465 &0.500852E-05,0.538347E-05,0.501731E-05,0.500852E-05,0.542262E-03,
24466 &-.714686E-07,0.614560E-01,0.709106E-02,0.415227E-05,0.479898E-05,
24467 &0.416702E-05,0.415227E-05,0.549985E-03,-.960102E-07,0.539240E-01,
24468 &0.612155E-02,0.345977E-05,0.429563E-05,0.347839E-05,0.345977E-05,
24469 &0.531288E-03,-.894946E-07,0.472426E-01,0.527757E-02,0.289508E-05,
24470 &0.385164E-05,0.291595E-05,0.289508E-05,0.495120E-03,-.668594E-07/
24471 DATA (DL(K),K= 3401, 3485) /
24472 &0.413245E-01,0.454380E-02,0.243524E-05,0.345851E-05,0.245713E-05,
24473 &0.243524E-05,0.452156E-03,-.338861E-07,0.360903E-01,0.390658E-02,
24474 &0.205923E-05,0.310726E-05,0.208123E-05,0.205923E-05,0.406686E-03,
24475 &0.329349E-08,0.314681E-01,0.335393E-02,0.174861E-05,0.278918E-05,
24476 &0.177007E-05,0.174861E-05,0.359402E-03,0.387747E-07,0.273932E-01,
24477 &0.287528E-02,0.149082E-05,0.250013E-05,0.151127E-05,0.149082E-05,
24478 &0.313779E-03,0.705560E-07,0.238068E-01,0.246132E-02,0.127582E-05,
24479 &0.223699E-05,0.129498E-05,0.127582E-05,0.272195E-03,0.975744E-07,
24480 &0.206558E-01,0.210383E-02,0.109488E-05,0.199657E-05,0.111257E-05,
24481 &0.109488E-05,0.234227E-03,0.118651E-06,0.178921E-01,0.179558E-02,
24482 &0.941584E-06,0.177694E-05,0.957733E-06,0.941584E-06,0.199907E-03,
24483 &0.133780E-06,0.154726E-01,0.153020E-02,0.811157E-06,0.157680E-05,
24484 &0.825743E-06,0.811157E-06,0.169849E-03,0.143581E-06,0.133582E-01,
24485 &0.130209E-02,0.699567E-06,0.139481E-05,0.712624E-06,0.699567E-06,
24486 &0.143794E-03,0.148591E-06,0.115137E-01,0.110634E-02,0.603631E-06,
24487 &0.122977E-05,0.615228E-06,0.603631E-06,0.121163E-03,0.149477E-06,
24488 &0.990774E-02,0.938615E-03,0.520920E-06,0.108072E-05,0.531148E-06/
24489 DATA (DL(K),K= 3486, 3570) /
24490 &0.520920E-06,0.101725E-03,0.147055E-06,0.851194E-02,0.795146E-03,
24491 &0.449441E-06,0.946634E-06,0.458405E-06,0.449441E-06,0.852238E-04,
24492 &0.142064E-06,0.730103E-02,0.672622E-03,0.387542E-06,0.826497E-06,
24493 &0.395353E-06,0.387542E-06,0.712290E-04,0.135149E-06,0.625244E-02,
24494 &0.568155E-03,0.333888E-06,0.719316E-06,0.340658E-06,0.333888E-06,
24495 &0.593824E-04,0.126902E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24496 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24497 &0.457819E-01,0.409492E-02,0.105702E-05,0.105702E-05,0.105702E-05,
24498 &0.105702E-05,0.115350E-03,0.265810E-18,0.395724E-01,0.347873E-02,
24499 &0.812397E-06,0.103880E-05,0.815187E-06,0.812397E-06,0.160406E-03,
24500 &-.555147E-07,0.341639E-01,0.295295E-02,0.627904E-06,0.987449E-06,
24501 &0.632305E-06,0.627904E-06,0.174490E-03,-.847266E-07,0.294481E-01,
24502 &0.250329E-02,0.490075E-06,0.920197E-06,0.495305E-06,0.490075E-06,
24503 &0.174490E-03,-.944763E-07,0.253423E-01,0.211912E-02,0.387225E-06,
24504 &0.845257E-06,0.392760E-06,0.387225E-06,0.167111E-03,-.916775E-07,
24505 &0.217735E-01,0.179138E-02,0.309989E-06,0.766697E-06,0.315473E-06,
24506 &0.309989E-06,0.152540E-03,-.819158E-07,0.186760E-01,0.151211E-02/
24507 DATA (DL(K),K= 3571, 3655) /
24508 &0.252109E-06,0.688927E-06,0.257316E-06,0.252109E-06,0.135295E-03,
24509 &-.682145E-07,0.159921E-01,0.127447E-02,0.208612E-06,0.614302E-06,
24510 &0.213410E-06,0.208612E-06,0.118648E-03,-.528734E-07,0.136704E-01,
24511 &0.107254E-02,0.175203E-06,0.543807E-06,0.179526E-06,0.175203E-06,
24512 &0.102484E-03,-.379748E-07,0.116656E-01,0.901214E-03,0.149064E-06,
24513 &0.478363E-06,0.152890E-06,0.149064E-06,0.871530E-04,-.245007E-07,
24514 &0.993760E-02,0.756074E-03,0.128274E-06,0.418496E-06,0.131610E-06,
24515 &0.128274E-06,0.735682E-04,-.128491E-07,0.845081E-02,0.633315E-03,
24516 &0.111313E-06,0.364260E-06,0.114187E-06,0.111313E-06,0.617706E-04,
24517 &-.327698E-08,0.717398E-02,0.529654E-03,0.971373E-07,0.315568E-06,
24518 &0.995871E-07,0.971373E-07,0.514764E-04,0.421954E-08,0.607950E-02,
24519 &0.442265E-03,0.850687E-07,0.272228E-06,0.871375E-07,0.850687E-07,
24520 &0.426580E-04,0.982709E-08,0.514311E-02,0.368716E-03,0.746164E-07,
24521 &0.233927E-06,0.763489E-07,0.746164E-07,0.352463E-04,0.137715E-07,
24522 &0.434349E-02,0.306920E-03,0.654439E-07,0.200291E-06,0.668838E-07,
24523 &0.654439E-07,0.290260E-04,0.163078E-07,0.366196E-02,0.255085E-03,
24524 &0.573307E-07,0.170932E-06,0.585192E-07,0.573307E-07,0.238196E-04/
24525 DATA (DL(K),K= 3656, 3740) /
24526 &0.177037E-07,0.308217E-02,0.211681E-03,0.501185E-07,0.145441E-06,
24527 &0.510931E-07,0.501185E-07,0.195033E-04,0.182028E-07,0.258987E-02,
24528 &0.175396E-03,0.436915E-07,0.123415E-06,0.444860E-07,0.436915E-07,
24529 &0.159423E-04,0.180204E-07,0.000000E+00,0.000000E+00,0.000000E+00,
24530 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24531 &0.206951E-01,0.123383E-02,0.903693E-07,0.903693E-07,0.903693E-07,
24532 &0.903693E-07,0.147928E-04,0.131925E-18,0.174566E-01,0.102241E-02,
24533 &0.892028E-07,0.129792E-07,0.885875E-07,0.892028E-07,0.328931E-04,
24534 &0.168541E-07,0.147092E-01,0.846741E-03,0.841992E-07,-.346085E-07,
24535 &0.832249E-07,0.841992E-07,0.410825E-04,0.262547E-07,0.123736E-01,
24536 &0.700287E-03,0.769173E-07,-.620958E-07,0.757563E-07,0.769173E-07,
24537 &0.418512E-04,0.305542E-07,0.103910E-01,0.578275E-03,0.688622E-07,
24538 &-.753692E-07,0.676306E-07,0.688622E-07,0.392599E-04,0.318183E-07,
24539 &0.871109E-02,0.476815E-03,0.611778E-07,-.782788E-07,0.599557E-07,
24540 &0.611778E-07,0.356221E-04,0.316149E-07,0.728984E-02,0.392546E-03,
24541 &0.537256E-07,-.749101E-07,0.525642E-07,0.537256E-07,0.312295E-04,
24542 &0.301630E-07,0.608951E-02,0.322656E-03,0.466227E-07,-.678673E-07/
24543 DATA (DL(K),K= 3741, 3825) /
24544 &0.455521E-07,0.466227E-07,0.265816E-04,0.278681E-07,0.507758E-02,
24545 &0.264779E-03,0.400790E-07,-.588670E-07,0.391148E-07,0.400790E-07,
24546 &0.223044E-04,0.251720E-07,0.422604E-02,0.216927E-03,0.341205E-07,
24547 &-.492124E-07,0.332680E-07,0.341205E-07,0.185283E-04,0.222885E-07,
24548 &0.351082E-02,0.177427E-03,0.287480E-07,-.397442E-07,0.280058E-07,
24549 &0.287480E-07,0.152122E-04,0.193702E-07,0.291126E-02,0.144878E-03,
24550 &0.239699E-07,-.309608E-07,0.233320E-07,0.239699E-07,0.123840E-04,
24551 &0.165481E-07,0.240962E-02,0.118102E-03,0.197695E-07,-.231453E-07,
24552 &0.192276E-07,0.197695E-07,0.100316E-04,0.139043E-07,0.199075E-02,
24553 &0.961132E-04,0.161186E-07,-.164194E-07,0.156628E-07,0.161186E-07,
24554 &0.808648E-05,0.114903E-07,0.164168E-02,0.780880E-04,0.129826E-07,
24555 &-.107955E-07,0.126029E-07,0.129826E-07,0.648861E-05,0.933575E-08,
24556 &0.135135E-02,0.633381E-04,0.103192E-07,-.622051E-08,0.100055E-07,
24557 &0.103192E-07,0.519042E-05,0.744979E-08,0.111036E-02,0.512898E-04,
24558 &0.808255E-08,-.260101E-08,0.782557E-08,0.808255E-08,0.414192E-05,
24559 &0.582811E-08,0.910718E-03,0.414657E-04,0.622640E-08,0.177583E-09,
24560 &0.601750E-08,0.622640E-08,0.329729E-05,0.445766E-08,0.745657E-03/
24561 DATA (DL(K),K= 3826, 3910) /
24562 &0.334694E-04,0.470431E-08,0.223586E-08,0.453577E-08,0.470431E-08,
24563 &0.261981E-05,0.331859E-08,0.000000E+00,0.000000E+00,0.000000E+00,
24564 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24565 &0.519165E-02,0.154752E-03,0.135983E-08,0.135983E-08,0.135983E-08,
24566 &0.135983E-08,0.445189E-06,0.165858E-19,0.420352E-02,0.123002E-03,
24567 &-.202651E-07,0.730203E-07,-.200511E-07,-.202651E-07,0.358557E-05,
24568 &-.213089E-07,0.340143E-02,0.977718E-04,-.356451E-07,0.114908E-06,
24569 &-.353066E-07,-.356451E-07,0.384652E-05,-.364475E-07,0.274771E-02,
24570 &0.776124E-04,-.435588E-07,0.139200E-06,-.431556E-07,-.435588E-07,
24571 &0.404834E-05,-.441752E-07,0.221524E-02,0.614950E-04,-.471629E-07,
24572 &0.150069E-06,-.467352E-07,-.471629E-07,0.391615E-05,-.476355E-07,
24573 &0.178268E-02,0.486476E-04,-.477545E-07,0.151420E-06,-.473296E-07,
24574 &-.477545E-07,0.334100E-05,-.481163E-07,0.143185E-02,0.384202E-04,
24575 &-.462359E-07,0.146515E-06,-.458316E-07,-.462359E-07,0.275426E-05,
24576 &-.465126E-07,0.114781E-02,0.302894E-04,-.434031E-07,0.137587E-06,
24577 &-.430295E-07,-.434031E-07,0.226010E-05,-.436143E-07,0.918288E-03,
24578 &0.238367E-04,-.398089E-07,0.126321E-06,-.394715E-07,-.398089E-07/
24579 DATA (DL(K),K= 3911, 3995) /
24580 &0.180947E-05,-.399700E-07,0.733193E-03,0.187249E-04,-.358525E-07,
24581 &0.113940E-06,-.355529E-07,-.358525E-07,0.142045E-05,-.359751E-07,
24582 &0.584227E-03,0.146823E-04,-.318183E-07,0.101291E-06,-.315563E-07,
24583 &-.318183E-07,0.110919E-05,-.319115E-07,0.464586E-03,0.114914E-04,
24584 &-.278936E-07,0.889550E-07,-.276671E-07,-.278936E-07,0.860964E-06,
24585 &-.279643E-07,0.368700E-03,0.897731E-05,-.241972E-07,0.773096E-07,
24586 &-.240033E-07,-.241972E-07,0.662825E-06,-.242508E-07,0.292013E-03,
24587 &0.700034E-05,-.208001E-07,0.665779E-07,-.206356E-07,-.208001E-07,
24588 &0.508061E-06,-.208406E-07,0.230814E-03,0.544870E-05,-.177366E-07,
24589 &0.568734E-07,-.175982E-07,-.177366E-07,0.388493E-06,-.177672E-07,
24590 &0.182078E-03,0.423324E-05,-.150157E-07,0.482316E-07,-.149000E-07,
24591 &-.150157E-07,0.296111E-06,-.150387E-07,0.143349E-03,0.328297E-05,
24592 &-.126295E-07,0.406343E-07,-.125335E-07,-.126295E-07,0.225104E-06,
24593 &-.126468E-07,0.112639E-03,0.254145E-05,-.105595E-07,0.340280E-07,
24594 &-.104803E-07,-.105595E-07,0.170871E-06,-.105726E-07,0.883377E-04,
24595 &0.196395E-05,-.878062E-08,0.283380E-07,-.871555E-08,-.878062E-08,
24596 &0.129517E-06,-.879039E-08,0.000000E+00,0.000000E+00,0.000000E+00/
24597 DATA (DL(K),K= 3996, 4000) /
24598 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24599C
24600 ANS = 0.
24601 IF (X.GT.0.9985) RETURN
24602 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
24603C
24604 IS = S/DELTA+1
24605 IS1 = IS+1
24606 DO 1 L=1,25
24607 KL = L+NDRV*25
24608 F1(L) = GF(I,IS,KL)
24609 F2(L) = GF(I,IS1,KL)
24610 1 CONTINUE
24611 A1 = DT_CKMTFF(X,F1)
24612 A2 = DT_CKMTFF(X,F2)
24613C A1=ALOG(A1)
24614C A2=ALOG(A2)
24615 S1 = (IS-1)*DELTA
24616 S2 = S1+DELTA
24617 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
24618C ANS=EXP(ANS)
24619 RETURN
24620 END
24621C
24622
24623*$ CREATE DT_CKMTFF.FOR
24624*COPY DT_CKMTFF
24625 FUNCTION DT_CKMTFF(X,FVL)
24626C**********************************************************************
24627C
24628C LOGARITHMIC INTERPOLATOR - WATCH OUT FOR NEGATIVE
24629C FUNCTIONS AND/OR X VALUES OUTSIDE THE RANGE 0 TO 1.
24630C NOTE: DIMENSION OF FVL IS OVERWRITTEN BY VALUE USED
24631C IN MAIN ROUTINE.
24632C
24633C**********************************************************************
24634
24635 SAVE
24636 DIMENSION FVL(25),XGRID(25)
24637 DATA NX,XGRID/25,.001,.002,.004,.008,.016,.032,.064,.1,.15,
24638 *.2,.25,.3,.35,.4,.45,.5,.55,.6,.65,.7,.75,.8,.85,.9,.95/
24639C
24640 DT_CKMTFF=0.
24641 DO 1 I=1,NX
24642 IF(X.LT.XGRID(I)) GO TO 2
24643 1 CONTINUE
24644 2 I=I-1
24645 IF(I.EQ.0) THEN
24646 I=I+1
24647 ELSE IF(I.GT.23) THEN
24648 I=23
24649 ENDIF
24650 J=I+1
24651 K=J+1
24652 AXI=LOG(XGRID(I))
24653 BXI=LOG(1.-XGRID(I))
24654 AXJ=LOG(XGRID(J))
24655 BXJ=LOG(1.-XGRID(J))
24656 AXK=LOG(XGRID(K))
24657 BXK=LOG(1.-XGRID(K))
24658 FI=LOG(ABS(FVL(I)) +1.E-15)
24659 FJ=LOG(ABS(FVL(J)) +1.E-16)
24660 FK=LOG(ABS(FVL(K)) +1.E-17)
24661 DET=AXI*(BXJ-BXK)+AXJ*(BXK-BXI)+AXK*(BXI-BXJ)
24662 ALOGA=(FI*(AXJ*BXK-AXK*BXJ)+FJ*(AXK*BXI-AXI*BXK)+FK*(AXI*BXJ-AXJ*
24663 $ BXI))/DET
24664 ALPHA=(FI*(BXJ-BXK)+FJ*(BXK-BXI)+FK*(BXI-BXJ))/DET
24665 BETA=(FI*(AXK-AXJ)+FJ*(AXI-AXK)+FK*(AXJ-AXI))/DET
24666 IF(ABS(ALPHA).GT.99..OR.ABS(BETA).GT.99..OR.ABS(ALOGA).GT.99.)
24667 1RETURN
24668C IF(ALPHA.GT.50..OR.BETA.GT.50.) THEN
24669C WRITE(6,2001) X,FVL
24670C 2001 FORMAT(8E12.4)
24671C WRITE(6,2001) ALPHA,BETA,ALOGA,DET
24672C ENDIF
24673 DT_CKMTFF=EXP(ALOGA)*X**ALPHA*(1.-X)**BETA
24674 RETURN
24675 END
24676
24677*$ CREATE DT_FLUINI.FOR
24678*COPY DT_FLUINI
24679*
24680*===fluini=============================================================*
24681*
24682 SUBROUTINE DT_FLUINI
24683
24684************************************************************************
24685* Initialisation of the nucleon-nucleon cross section fluctuation *
24686* treatment. The original version by J. Ranft. *
24687* This version dated 21.04.95 is revised by S. Roesler. *
24688************************************************************************
24689
24690 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24691 SAVE
24692 PARAMETER ( LINP = 10 ,
24693 & LOUT = 6 ,
24694 & LDAT = 9 )
24695 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
24696
24697 PARAMETER ( A = 0.1D0,
24698 & B = 0.893D0,
24699 & OM = 1.1D0,
24700 & N = 6,
24701 & DX = 0.003D0)
24702
24703* n-n cross section fluctuations
24704 PARAMETER (NBINS = 1000)
24705 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
24706 DIMENSION FLUSI(NBINS),FLUIX(NBINS)
24707
24708 WRITE(LOUT,1000)
24709 1000 FORMAT(/,1X,'FLUINI: hadronic cross section fluctuations ',
24710 & 'treated')
24711
24712 FLUSU = ZERO
24713 FLUSUU = ZERO
24714
24715 DO 1 I=1,NBINS
24716 X = DBLE(I)*DX
24717 FLUIX(I) = X
24718 FLUS = ((X-B)/(OM*B))**N
24719 IF (FLUS.LE.20.0D0) THEN
24720 FLUSI(I) = (X/B)*EXP(-FLUS)/(X/B+A)
24721 ELSE
24722 FLUSI(I) = ZERO
24723 ENDIF
24724 FLUSU = FLUSU+FLUSI(I)
24725 1 CONTINUE
24726 DO 2 I=1,NBINS
24727 FLUSUU = FLUSUU+FLUSI(I)/FLUSU
24728 FLUSI(I) = FLUSUU
24729 2 CONTINUE
24730
24731C WRITE(LOUT,1001)
24732C1001 FORMAT(1X,'FLUCTUATIONS')
24733C CALL PLOT(FLUIX,FLUSI,1000,1,1000,0.0D0,0.06D0,0.0D0,0.01D0)
24734
24735 DO 3 I=1,NBINS
24736 AF = DBLE(I)*0.001D0
24737 DO 4 J=1,NBINS
24738 IF (AF.LE.FLUSI(J)) THEN
24739 FLUIXX(I) = FLUIX(J)
24740 GOTO 5
24741 ENDIF
24742 4 CONTINUE
24743 5 CONTINUE
24744 3 CONTINUE
24745 FLUIXX(1) = FLUIX(1)
24746 FLUIXX(NBINS) = FLUIX(NBINS)
24747
24748 RETURN
24749 END
24750
24751*$ CREATE DT_SIGTBL.FOR
24752*COPY DT_SIGTBL
24753*
24754*===sigtab=============================================================*
24755*
24756 SUBROUTINE DT_SIGTBL(JP,JT,PTOT,SIGE,MODE)
24757
24758************************************************************************
24759* This version dated 18.11.95 is written by S. Roesler *
24760************************************************************************
24761
24762 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24763 SAVE
24764 PARAMETER ( LINP = 10 ,
24765 & LOUT = 6 ,
24766 & LDAT = 9 )
24767
24768 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24769 & OHALF=0.5D0,ONE=1.0D0)
24770 PARAMETER (PLO=0.01D0,PHI=20.0D0,NBINS=150)
24771
24772 LOGICAL LINIT
24773
24774* particle properties (BAMJET index convention)
24775 CHARACTER*8 ANAME
24776 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24777 & IICH(210),IIBAR(210),K1(210),K2(210)
24778
24779 DIMENSION SIGEP(5,NBINS+1),SIGEN(5,NBINS+1),IDSIG(23)
24780 DATA IDSIG / 1, 0, 0, 0, 0, 0, 0, 2, 0, 0,
24781 & 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
24782 & 0, 0, 5/
24783 DATA LINIT /.FALSE./
24784
24785* precalculation and tabulation of elastic cross sections
24786 IF (ABS(MODE).EQ.1) THEN
24787 IF (MODE.EQ.1)
24788 & OPEN(LDAT,FILE='outdata0/sigtab.out',STATUS='UNKNOWN')
24789 PLABLX = LOG10(PLO)
24790 PLABHX = LOG10(PHI)
24791 DPLAB = (PLABHX-PLABLX)/DBLE(NBINS)
24792 DO 1 I=1,NBINS+1
24793 PLAB = PLABLX+DBLE(I-1)*DPLAB
24794 PLAB = 10**PLAB
24795 DO 2 IPROJ=1,23
24796 IDX = IDSIG(IPROJ)
24797 IF (IDX.GT.0) THEN
24798C CALL DT_SIHNEL(IPROJ,1,PLAB,SIGEP(IDX,I))
24799C CALL DT_SIHNEL(IPROJ,8,PLAB,SIGEN(IDX,I))
24800 DUMZER = ZERO
24801 CALL DT_XSHN(IPROJ,1,PLAB,DUMZER,SIGTOT,SIGEP(IDX,I))
24802 CALL DT_XSHN(IPROJ,8,PLAB,DUMZER,SIGTOT,SIGEN(IDX,I))
24803 ENDIF
24804 2 CONTINUE
24805 IF (MODE.EQ.1) THEN
24806 WRITE(LDAT,1000) PLAB,(SIGEP(IDX,I),IDX=1,5),
24807 & (SIGEN(IDX,I),IDX=1,5)
24808 1000 FORMAT(F5.1,10F7.2)
24809 ENDIF
24810 1 CONTINUE
24811 IF (MODE.EQ.1) CLOSE(LDAT)
24812 LINIT = .TRUE.
24813 ELSE
24814 SIGE = -ONE
24815 IF (LINIT.AND.(JP.LE.23).AND.(PTOT.GE.PLO)
24816 & .AND.(PTOT.LE.PHI) ) THEN
24817 IDX = IDSIG(JP)
24818 IF ( (IDX.GT.0).AND.((JT.EQ.1).OR.(JT.EQ.8)) ) THEN
24819 PLABX = LOG10(PTOT)
24820 IF (PLABX.LE.PLABLX) THEN
24821 I1 = 1
24822 I2 = 1
24823 ELSEIF (PLABX.GE.PLABHX) THEN
24824 I1 = NBINS+1
24825 I2 = NBINS+1
24826 ELSE
24827 I1 = INT((PLABX-PLABLX)/DPLAB)+1
24828 I2 = I1+1
24829 ENDIF
24830 PLAB1X = PLABLX+DBLE(I1-1)*DPLAB
24831 PLAB2X = PLABLX+DBLE(I2-1)*DPLAB
24832 PBIN = PLAB2X-PLAB1X
24833 IF (PBIN.GT.TINY10) THEN
24834 RATX = (PLABX-PLAB1X)/(PLAB2X-PLAB1X)
24835 ELSE
24836 RATX = ZERO
24837 ENDIF
24838 IF (JT.EQ.1) THEN
24839 SIG1 = SIGEP(IDX,I1)
24840 SIG2 = SIGEP(IDX,I2)
24841 ELSE
24842 SIG1 = SIGEN(IDX,I1)
24843 SIG2 = SIGEN(IDX,I2)
24844 ENDIF
24845 SIGE = SIG1+RATX*(SIG2-SIG1)
24846 ENDIF
24847 ENDIF
24848 ENDIF
24849
24850 RETURN
24851 END
24852
24853*$ CREATE DT_XSTABL.FOR
24854*COPY DT_XSTABL
24855*
24856*===xstabl=============================================================*
24857*
24858 SUBROUTINE DT_XSTABL(WHAT,IXSQEL,IRATIO)
24859
24860 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24861 SAVE
24862 PARAMETER ( LINP = 10 ,
24863 & LOUT = 6 ,
24864 & LDAT = 9 )
24865 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24866 & OHALF=0.5D0,ONE=1.0D0,TWO=2.0D0)
24867 LOGICAL LLAB,LELOG,LQLOG
24868
24869* particle properties (BAMJET index convention)
24870 CHARACTER*8 ANAME
24871 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24872 & IICH(210),IIBAR(210),K1(210),K2(210)
24873* properties of interacting particles
24874 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
24875 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
24876* Glauber formalism: cross sections
24877 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
24878 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
24879 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
24880 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
24881 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
24882 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
24883 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
24884 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
24885 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
24886 & BSLOPE,NEBINI,NQBINI
24887* emulsion treatment
24888 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
24889 & NCOMPO,IEMUL
24890
24891 DIMENSION WHAT(6)
24892
24893 LLAB = (WHAT(1).GT.ZERO).OR.(WHAT(2).GT.ZERO)
24894 ELO = ABS(WHAT(1))
24895 EHI = ABS(WHAT(2))
24896 IF (ELO.GT.EHI) ELO = EHI
24897 LELOG = WHAT(3).LT.ZERO
24898 NEBINS = MAX(INT(ABS(WHAT(3))),1)
24899 DEBINS = (EHI-ELO)/DBLE(NEBINS)
24900 IF (LELOG) THEN
24901 AELO = LOG10(ELO)
24902 AEHI = LOG10(EHI)
24903 ADEBIN = (AEHI-AELO)/DBLE(NEBINS)
24904 ENDIF
24905 Q2LO = WHAT(4)
24906 Q2HI = WHAT(5)
24907 IF (Q2LO.GT.Q2HI) Q2LO = Q2HI
24908 LQLOG = WHAT(6).LT.ZERO
24909 NQBINS = MAX(INT(ABS(WHAT(6))),1)
24910 DQBINS = (Q2HI-Q2LO)/DBLE(NQBINS)
24911 IF (LQLOG) THEN
24912 AQ2LO = LOG10(Q2LO)
24913 AQ2HI = LOG10(Q2HI)
24914 ADQBIN = (AQ2HI-AQ2LO)/DBLE(NQBINS)
24915 ENDIF
24916
24917 IF ( ELO.EQ. EHI) NEBINS = 0
24918 IF (Q2LO.EQ.Q2HI) NQBINS = 0
24919
24920 WRITE(LOUT,1000) ELO,EHI,LLAB,IXSQEL,Q2LO,Q2HI,IJPROJ,IP,IT
24921 1000 FORMAT(/,1X,'XSTABL: E_lo =',E10.3,' GeV E_hi =',E10.3,
24922 & ' GeV Lab = ',L1,' qel: ',I2,/,10X,'Q2_lo =',F10.5,
24923 & ' GeV^2 Q2_hi =',F10.5,' GeV^2',/,10X,'id_p = ',I2,
24924 & ' A_p = ',I3,' A_t = ',I3,/)
24925
24926C IF (IJPROJ.NE.7) THEN
24927 WRITE(LOUT,'(1X,A,/)')'(E,STOT,SELA,SQEP,SQET,SQE2,SINE,SPROD)'
24928* normalize fractions of emulsion components
24929 IF (NCOMPO.GT.0) THEN
24930 SUMFRA = ZERO
24931 DO 10 I=1,NCOMPO
24932 SUMFRA = SUMFRA+EMUFRA(I)
24933 10 CONTINUE
24934 IF (SUMFRA.GT.ZERO) THEN
24935 DO 11 I=1,NCOMPO
24936 EMUFRA(I) = EMUFRA(I)/SUMFRA
24937 11 CONTINUE
24938 ENDIF
24939 ENDIF
24940C ELSE
24941C WRITE(LOUT,'(1X,A,/)') '(Q2,E,STOT,ETOT,SIN,EIN,STOT0)'
24942C ENDIF
24943 DO 1 I=1,NEBINS+1
24944 IF (LELOG) THEN
24945 E = 10**(AELO+DBLE(I-1)*ADEBIN)
24946 ELSE
24947 E = ELO+DBLE(I-1)*DEBINS
24948 ENDIF
24949 DO 2 J=1,NQBINS+1
24950 IF (LQLOG) THEN
24951 Q2 = 10**(AQ2LO+DBLE(J-1)*ADQBIN)
24952 ELSE
24953 Q2 = Q2LO+DBLE(J-1)*DQBINS
24954 ENDIF
24955c IF (IJPROJ.NE.7) THEN
24956 IF (LLAB) THEN
24957 PLAB = ZERO
24958 ECM = ZERO
24959 CALL DT_LTINI(IJPROJ,1,E,PPN0,ECM,0)
24960 ELSE
24961 ECM = E
24962 ENDIF
24963 XI = ZERO
24964 Q2I = ZERO
24965 IF (IJPROJ.EQ.7) Q2I = Q2
24966 IF (NCOMPO.GT.0) THEN
24967 DO 20 IC=1,NCOMPO
24968 IIT = IEMUMA(IC)
24969 CALL DT_XSGLAU(IP,IIT,IJPROJ,XI,Q2I,ECM,1,1,-IC)
24970 20 CONTINUE
24971 ELSE
24972 CALL DT_XSGLAU(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,-1)
24973C CALL AMPLIT(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,1)
24974 ENDIF
24975 IF (NCOMPO.GT.0) THEN
24976 XTOT = ZERO
24977 ETOT = ZERO
24978 XELA = ZERO
24979 EELA = ZERO
24980 XQEP = ZERO
24981 EQEP = ZERO
24982 XQET = ZERO
24983 EQET = ZERO
24984 XQE2 = ZERO
24985 EQE2 = ZERO
24986 XPRO = ZERO
24987 EPRO = ZERO
24988 XPRO1= ZERO
24989 XDEL = ZERO
24990 EDEL = ZERO
24991 XDQE = ZERO
24992 EDQE = ZERO
24993 DO 21 IC=1,NCOMPO
24994 XTOT = XTOT+EMUFRA(IC)*XSTOT(1,1,IC)
24995 ETOT = ETOT+EMUFRA(IC)*XETOT(1,1,IC)**2
24996 XELA = XELA+EMUFRA(IC)*XSELA(1,1,IC)
24997 EELA = EELA+EMUFRA(IC)*XEELA(1,1,IC)**2
24998 XQEP = XQEP+EMUFRA(IC)*XSQEP(1,1,IC)
24999 EQEP = EQEP+EMUFRA(IC)*XEQEP(1,1,IC)**2
25000 XQET = XQET+EMUFRA(IC)*XSQET(1,1,IC)
25001 EQET = EQET+EMUFRA(IC)*XEQET(1,1,IC)**2
25002 XQE2 = XQE2+EMUFRA(IC)*XSQE2(1,1,IC)
25003 EQE2 = EQE2+EMUFRA(IC)*XEQE2(1,1,IC)**2
25004 XPRO = XPRO+EMUFRA(IC)*XSPRO(1,1,IC)
25005 EPRO = EPRO+EMUFRA(IC)*XEPRO(1,1,IC)**2
25006 XDEL = XDEL+EMUFRA(IC)*XSDEL(1,1,IC)
25007 EDEL = EDEL+EMUFRA(IC)*XEDEL(1,1,IC)**2
25008 XDQE = XDQE+EMUFRA(IC)*XSDQE(1,1,IC)
25009 EDQE = EDQE+EMUFRA(IC)*XEDQE(1,1,IC)**2
25010 YPRO = XSTOT(1,1,IC)-XSELA(1,1,IC)
25011 & -XSQEP(1,1,IC)-XSQET(1,1,IC)
25012 & -XSQE2(1,1,IC)
25013 XPRO1= XPRO1+EMUFRA(IC)*YPRO
25014 21 CONTINUE
25015 ETOT = SQRT(ETOT)
25016 EELA = SQRT(EELA)
25017 EQEP = SQRT(EQEP)
25018 EQET = SQRT(EQET)
25019 EQE2 = SQRT(EQE2)
25020 EPRO = SQRT(EPRO)
25021 EDEL = SQRT(EDEL)
25022 EDQE = SQRT(EDQE)
25023 WRITE(LOUT,'(8E9.3)')
25024 & E,XTOT,XELA,XQEP,XQET,XQE2,XPRO,XPRO1
25025C WRITE(LOUT,'(4E9.3)')
25026C & E,XDEL,XDQE,XDEL+XDQE
25027 ELSE
25028 WRITE(LOUT,'(11E10.3)')
25029 & E,
25030 & XSTOT(1,1,1),XSELA(1,1,1),XSQEP(1,1,1),XSQET(1,1,1),
25031 & XSQE2(1,1,1),XSPRO(1,1,1),
25032 & XSTOT(1,1,1)-XSELA(1,1,1)-XSQEP(1,1,1)-XSQET(1,1,1)
25033 & -XSQE2(1,1,1),XSDEL(1,1,1),XSDQE(1,1,1),
25034 & XSDEL(1,1,1)+XSDQE(1,1,1)
25035C WRITE(LOUT,'(4E9.3)') E,XSDEL(1,1,1),XSDQE(1,1,1),
25036C & XSDEL(1,1,1)+XSDQE(1,1,1)
25037 ENDIF
25038c ELSE
25039c IF (LLAB) THEN
25040c IF (IT.GT.1) THEN
25041c IF (IXSQEL.EQ.0) THEN
25042cC CALL DT_SIGGA(IT, Q2, E,ZERO,ZERO,
25043cC CALL DT_SIGGA(IT, E,Q2,ZERO,ZERO,
25044c CALL DT_SIGGA(IT,ZERO,Q2,ZERO,E,
25045c & STOT,ETOT,SIN,EIN,STOT0)
25046c IF (IRATIO.EQ.1) THEN
25047c CALL DT_SIGGP( Q2, E,ZERO,ZERO,STGP,SIGP,SDGP)
25048cC CALL DT_SIGGP( E,Q2,ZERO,ZERO,STGP,SIGP,SDGP)
25049cC CALL DT_SIGGP(ZERO,Q2,ZERO,E,STGP,SIGP,SDGP)
25050c*!! save cross sections
25051c STOTA = STOT
25052c ETOTA = ETOT
25053c STOTP = STGP
25054c*!!
25055c STOT = STOT/(DBLE(IT)*STGP)
25056c SIN = SIN/(DBLE(IT)*SIGP)
25057c STOT0 = STGP
25058c ETOT = ZERO
25059c EIN = ZERO
25060c ENDIF
25061c ELSE
25062c WRITE(LOUT,*)
25063c & ' XSTABL: qel. xs. not implemented for nuclei'
25064c STOP
25065c ENDIF
25066c ELSE
25067c ETOT = ZERO
25068c EIN = ZERO
25069c STOT0= ZERO
25070c IF (IXSQEL.EQ.0) THEN
25071c CALL DT_SIGGP(ZERO,Q2,ZERO,E,STOT,SIN,SDIR)
25072c ELSE
25073c SIN = ZERO
25074c CALL DT_SIGVEL(ZERO,Q2,ZERO,E,IXSQEL,STOT,SIN,STOT0)
25075c ENDIF
25076c ENDIF
25077c ELSE
25078c IF (IT.GT.1) THEN
25079c IF (IXSQEL.EQ.0) THEN
25080c CALL DT_SIGGA(IT,ZERO,Q2,E,ZERO,
25081c & STOT,ETOT,SIN,EIN,STOT0)
25082c IF (IRATIO.EQ.1) THEN
25083c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STGP,SIGP,SDGP)
25084c*!! save cross sections
25085c STOTA = STOT
25086c ETOTA = ETOT
25087c STOTP = STGP
25088c*!!
25089c STOT = STOT/(DBLE(IT)*STGP)
25090c SIN = SIN/(DBLE(IT)*SIGP)
25091c STOT0 = STGP
25092c ETOT = ZERO
25093c EIN = ZERO
25094c ENDIF
25095c ELSE
25096c WRITE(LOUT,*)
25097c & ' XSTABL: qel. xs. not implemented for nuclei'
25098c STOP
25099c ENDIF
25100c ELSE
25101c ETOT = ZERO
25102c EIN = ZERO
25103c STOT0= ZERO
25104c IF (IXSQEL.EQ.0) THEN
25105c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STOT,SIN,SDIR)
25106c ELSE
25107c SIN = ZERO
25108c CALL DT_SIGVEL(ZERO,Q2,E,ZERO,IXSQEL,STOT,SIN,STOT0)
25109c ENDIF
25110c ENDIF
25111c ENDIF
25112cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,STOTA,ETOTA,STOTP,ZERO
25113cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,SDIR
25114cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,STOT0
25115c WRITE(LOUT,'(1X,6E10.3)')Q2,E,STOT,ETOT,SIN,EIN
25116c ENDIF
25117 2 CONTINUE
25118 1 CONTINUE
25119
25120 RETURN
25121 END
25122
25123*$ CREATE DT_TESTXS.FOR
25124*COPY DT_TESTXS
25125*
25126*===testxs=============================================================*
25127*
25128 SUBROUTINE DT_TESTXS
25129
25130 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25131 SAVE
25132
25133 DIMENSION XSTOT(26,2),XSELA(26,2)
25134
25135 OPEN(10,FILE='testxs_ptot.out',STATUS='UNKNOWN')
25136 OPEN(11,FILE='testxs_pela.out',STATUS='UNKNOWN')
25137 OPEN(12,FILE='testxs_ntot.out',STATUS='UNKNOWN')
25138 OPEN(13,FILE='testxs_nela.out',STATUS='UNKNOWN')
25139 DUMECM = 0.0D0
25140 PLABL = 0.01D0
25141 PLABH = 10000.0D0
25142 NBINS = 120
25143 APLABL = LOG10(PLABL)
25144 APLABH = LOG10(PLABH)
25145 ADPLAB = (APLABH-APLABL)/DBLE(NBINS)
25146 DO 1 I=1,NBINS+1
25147 ADP = APLABL+DBLE(I-1)*ADPLAB
25148 P = 10.0D0**ADP
25149 DO 2 J=1,26
25150 CALL DT_XSHN(J,1,P,DUMECM,XSTOT(J,1),XSELA(J,1))
25151 CALL DT_XSHN(J,8,P,DUMECM,XSTOT(J,2),XSELA(J,2))
25152 2 CONTINUE
25153 WRITE(10,1000) P,(XSTOT(K,1),K=1,26)
25154 WRITE(11,1000) P,(XSELA(K,1),K=1,26)
25155 WRITE(12,1000) P,(XSTOT(K,2),K=1,26)
25156 WRITE(13,1000) P,(XSELA(K,2),K=1,26)
25157 1 CONTINUE
25158 1000 FORMAT(F8.3,26F9.3)
25159
25160 RETURN
25161 END
25162
25163************************************************************************
25164* *
25165* DTUNUC 2.0: library routines *
25166* processed by S. Roesler, 6.5.95 *
25167* *
25168************************************************************************
25169*
25170* 1) Handling of parton momenta
25171* SUBROUTINE MASHEL
25172* SUBROUTINE DFERMI
25173*
25174* 2) Handling of parton flavors and particle indices
25175* INTEGER FUNCTION IPDG2B
25176* INTEGER FUNCTION IB2PDG
25177* INTEGER FUNCTION IQUARK
25178* INTEGER FUNCTION IBJQUA
25179* INTEGER FUNCTION ICIHAD
25180* INTEGER FUNCTION IPDGHA
25181* INTEGER FUNCTION MCHAD
25182* SUBROUTINE FLAHAD
25183*
25184* 3) Energy-momentum and quantum number conservation check routines
25185* SUBROUTINE EMC1
25186* SUBROUTINE EMC2
25187* SUBROUTINE EVTEMC
25188* SUBROUTINE EVTFLC
25189* SUBROUTINE EVTCHG
25190*
25191* 4) Transformations
25192* SUBROUTINE LTINI
25193* SUBROUTINE LTRANS
25194* SUBROUTINE LTNUC
25195* SUBROUTINE DALTRA
25196* SUBROUTINE DTRAFO
25197* SUBROUTINE STTRAN
25198* SUBROUTINE MYTRAN
25199* SUBROUTINE LT2LAO
25200* SUBROUTINE LT2LAB
25201*
25202* 5) Sampling from distributions
25203* INTEGER FUNCTION NPOISS
25204* DOUBLE PRECISION FUNCTION SAMPXB
25205* DOUBLE PRECISION FUNCTION SAMPEX
25206* DOUBLE PRECISION FUNCTION SAMSQX
25207* DOUBLE PRECISION FUNCTION BETREJ
25208* DOUBLE PRECISION FUNCTION DGAMRN
25209* DOUBLE PRECISION FUNCTION DBETAR
25210* SUBROUTINE RANNOR
25211* SUBROUTINE DPOLI
25212* SUBROUTINE DSFECF
25213* SUBROUTINE RACO
25214*
25215* 6) Special functions, algorithms and service routines
25216* DOUBLE PRECISION FUNCTION YLAMB
25217* SUBROUTINE SORT
25218* SUBROUTINE SORT1
25219* SUBROUTINE DT_XTIME
25220*
25221* 7) Random number generator package
25222* DOUBLE PRECISION FUNCTION DT_RNDM
25223* SUBROUTINE DT_RNDMST
25224* SUBROUTINE DT_RNDMIN
25225* SUBROUTINE DT_RNDMOU
25226* SUBROUTINE DT_RNDMTE
25227*
25228************************************************************************
25229* *
25230* 1) Handling of parton momenta *
25231* *
25232************************************************************************
25233*$ CREATE DT_MASHEL.FOR
25234*COPY DT_MASHEL
25235*
25236*===mashel=============================================================*
25237*
25238 SUBROUTINE DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ)
25239
25240************************************************************************
25241* *
25242* rescaling of momenta of two partons to put both *
25243* on mass shell *
25244* *
25245* input: PA1,PA2 input momentum vectors *
25246* XM1,2 desired masses of particles afterwards *
25247* P1,P2 changed momentum vectors *
25248* *
25249* The original version is written by R. Engel. *
25250* This version dated 12.12.94 is modified by S. Roesler. *
25251************************************************************************
25252
25253 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25254 SAVE
25255 PARAMETER ( LINP = 10 ,
25256 & LOUT = 6 ,
25257 & LDAT = 9 )
25258 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
25259
25260 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
25261
25262 IREJ = 0
25263
25264* Lorentz transformation into system CMS
25265 PX = PA1(1)+PA2(1)
25266 PY = PA1(2)+PA2(2)
25267 PZ = PA1(3)+PA2(3)
25268 EE = PA1(4)+PA2(4)
25269 XPTOT = SQRT(PX**2+PY**2+PZ**2)
25270 XMS = (EE-XPTOT)*(EE+XPTOT)
25271 IF(XMS.LT.(XM1+XM2)**2) THEN
25272C WRITE(LOUT,'(3E12.4)')XMS,XM1,XM2
25273 GOTO 9999
25274 ENDIF
25275 XMS = SQRT(XMS)
25276 BGX = PX/XMS
25277 BGY = PY/XMS
25278 BGZ = PZ/XMS
25279 GAM = EE/XMS
25280 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,PA1(1),PA1(2),PA1(3),
25281 & PA1(4),PTOT1,P1(1),P1(2),P1(3),P1(4))
25282* rotation angles
25283 COD = P1(3)/PTOT1
25284C SID = SQRT((ONE-COD)*(ONE+COD))
25285 PPT = SQRT(P1(1)**2+P1(2)**2)
25286 SID = PPT/PTOT1
25287 COF = ONE
25288 SIF = ZERO
25289 IF(PTOT1*SID.GT.TINY10) THEN
25290 COF = P1(1)/(SID*PTOT1)
25291 SIF = P1(2)/(SID*PTOT1)
25292 ANORF = SQRT(COF*COF+SIF*SIF)
25293 COF = COF/ANORF
25294 SIF = SIF/ANORF
25295 ENDIF
25296* new CM momentum and energies (for masses XM1,XM2)
25297 XM12 = SIGN(XM1**2,XM1)
25298 XM22 = SIGN(XM2**2,XM2)
25299 SS = XMS**2
25300 PCMP = DT_YLAMB(SS,XM12,XM22)/(2.D0*XMS)
25301 EE1 = SQRT(XM12+PCMP**2)
25302 EE2 = XMS-EE1
25303* back rotation
25304 MODE = 1
25305 CALL DT_MYTRAN(MODE,ZERO,ZERO,PCMP,COD,SID,COF,SIF,XX,YY,ZZ)
25306 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE1,
25307 & PTOT1,P1(1),P1(2),P1(3),P1(4))
25308 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,-XX,-YY,-ZZ,EE2,
25309 & PTOT2,P2(1),P2(2),P2(3),P2(4))
25310* check consistency
25311 DEL = XMS*0.0001D0
25312 IF (ABS(PX-P1(1)-P2(1)).GT.DEL) THEN
25313 IDEV = 1
25314 ELSEIF (ABS(PY-P1(2)-P2(2)).GT.DEL) THEN
25315 IDEV = 2
25316 ELSEIF (ABS(PZ-P1(3)-P2(3)).GT.DEL) THEN
25317 IDEV = 3
25318 ELSEIF (ABS(EE-P1(4)-P2(4)).GT.DEL) THEN
25319 IDEV = 4
25320 ELSE
25321 IDEV = 0
25322 ENDIF
25323 IF (IDEV.NE.0) THEN
25324 WRITE(LOUT,'(/1X,A,I3)')
25325 & 'MASHEL: inconsistent transformation',IDEV
25326 WRITE(LOUT,'(1X,A)') 'MASHEL: input momenta/masses:'
25327 WRITE(LOUT,'(1X,5E12.5)') (PA1(K),K=1,4),XM1
25328 WRITE(LOUT,'(1X,5E12.5)') (PA2(K),K=1,4),XM2
25329 WRITE(LOUT,'(1X,A)') 'MASHEL: output momenta:'
25330 WRITE(LOUT,'(5X,4E12.5)') (P1(K),K=1,4)
25331 WRITE(LOUT,'(5X,4E12.5)') (P2(K),K=1,4)
25332 ENDIF
25333 RETURN
25334
25335 9999 CONTINUE
25336 IREJ = 1
25337 RETURN
25338 END
25339
25340*$ CREATE DT_DFERMI.FOR
25341*COPY DT_DFERMI
25342*
25343*===dfermi=============================================================*
25344*
25345 SUBROUTINE DT_DFERMI(GPART)
25346
25347************************************************************************
25348* Find largest of three random numbers. *
25349************************************************************************
25350
25351 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25352 SAVE
25353
25354 DIMENSION G(3)
25355
25356 DO 10 I=1,3
25357 G(I)=DT_RNDM(GPART)
25358 10 CONTINUE
25359 IF (G(3).LT.G(2)) GOTO 40
25360 IF (G(3).LT.G(1)) GOTO 30
25361 GPART = G(3)
25362 20 RETURN
25363 30 GPART = G(1)
25364 GOTO 20
25365 40 IF (G(2).LT.G(1)) GOTO 30
25366 GPART = G(2)
25367 GOTO 20
25368
25369 END
25370
25371************************************************************************
25372* *
25373* 2) Handling of parton flavors and particle indices *
25374* *
25375************************************************************************
25376*$ CREATE IDT_IPDG2B.FOR
25377*COPY IDT_IPDG2B
25378*
25379*===ipdg2b=============================================================*
25380*
25381 INTEGER FUNCTION IDT_IPDG2B(ID,NN,MODE)
25382
25383************************************************************************
25384* *
25385* conversion of quark numbering scheme *
25386* *
25387* input: PDG parton numbering *
25388* for diquarks: NN number of the constituent quark *
25389* (e.g. ID=2301,NN=1 -> ICONV2=1) *
25390* *
25391* output: BAMJET particle codes *
25392* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25393* 2 d 8 a-d -2 a-d *
25394* 3 s 9 a-s -3 a-s *
25395* 4 c 10 a-c -4 a-c *
25396* *
25397* This is a modified version of ICONV2 written by R. Engel. *
25398* This version dated 13.12.94 is written by S. Roesler. *
25399************************************************************************
25400
25401 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25402 SAVE
25403 PARAMETER ( LINP = 10 ,
25404 & LOUT = 6 ,
25405 & LDAT = 9 )
25406
25407 IDA = ABS(ID)
25408* diquarks
25409 IF (IDA.GT.6) THEN
25410 KF = 3
25411 IF (IDA.GE.1000) KF = 4
25412 IDA = IDA/(10**(KF-NN))
25413 IDA = MOD(IDA,10)
25414 ENDIF
25415* exchange up and dn quarks
25416 IF (IDA.EQ.1) THEN
25417 IDA = 2
25418 ELSEIF (IDA.EQ.2) THEN
25419 IDA = 1
25420 ENDIF
25421* antiquarks
25422 IF (ID.LT.0) THEN
25423 IF (MODE.EQ.1) THEN
25424 IDA = IDA+6
25425 ELSE
25426 IDA = -IDA
25427 ENDIF
25428 ENDIF
25429 IDT_IPDG2B = IDA
25430
25431 RETURN
25432 END
25433
25434*$ CREATE IDT_IB2PDG.FOR
25435*COPY IDT_IB2PDG
25436*
25437*===ib2pdg=============================================================*
25438*
25439 INTEGER FUNCTION IDT_IB2PDG(ID1,ID2,MODE)
25440
25441************************************************************************
25442* *
25443* conversion of quark numbering scheme *
25444* *
25445* input: BAMJET particle codes *
25446* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25447* 2 d 8 a-d -2 a-d *
25448* 3 s 9 a-s -3 a-s *
25449* 4 c 10 a-c -4 a-c *
25450* *
25451* output: PDG parton numbering *
25452* *
25453* This version dated 13.12.94 is written by S. Roesler. *
25454************************************************************************
25455
25456 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25457 SAVE
25458 PARAMETER ( LINP = 10 ,
25459 & LOUT = 6 ,
25460 & LDAT = 9 )
25461
25462 DIMENSION IHKKQ(-6:6),IHKKQQ(-3:3,-3:3)
25463 DATA IHKKQ/-6,-5,-4,-3,-1,-2,0,2,1,3,4,5,6/
25464 DATA IHKKQQ/-3303,-3103,-3203,0,0,0,0, -3103,-1103,-2103,0,0,0,0,
25465 &-3203,-2103,-2203,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,2203,2103,3203,
25466 &0,0,0,0,2103,1103,3103, 0,0,0,0,3203,3103,3303/
25467
25468 IDA = ID1
25469 IDB = ID2
25470 IF (MODE.EQ.1) THEN
25471 IF (ID1.GT.6) IDA = -(ID1-6)
25472 IF (ID2.GT.6) IDB = -(ID2-6)
25473 ENDIF
25474 IF (ID2.EQ.0) THEN
25475 IDT_IB2PDG = IHKKQ(IDA)
25476 ELSE
25477 IDT_IB2PDG = IHKKQQ(IDA,IDB)
25478 ENDIF
25479
25480 RETURN
25481 END
25482
25483*$ CREATE IDT_IQUARK.FOR
25484*COPY IDT_IQUARK
25485*
25486*===ipdgqu=============================================================*
25487*
25488 INTEGER FUNCTION IDT_IQUARK(K,IDBAMJ)
25489
25490************************************************************************
25491* *
25492* quark contents according to PDG conventions *
25493* (random selection in case of quark mixing) *
25494* *
25495* input: IDBAMJ BAMJET particle code *
25496* K 1..3 quark number *
25497* *
25498* output: 1 d (anti --> neg.) *
25499* 2 u *
25500* 3 s *
25501* 4 c *
25502* *
25503* This version written by R. Engel. *
25504************************************************************************
25505
25506 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25507 SAVE
25508
25509 IQ = IDT_IBJQUA(K,IDBAMJ)
25510* quark-antiquark
25511 IF (IQ.GT.6) THEN
25512 IQ = 6-IQ
25513 ENDIF
25514* exchange of up and down
25515 IF (ABS(IQ).EQ.1) THEN
25516 IQ = SIGN(2,IQ)
25517 ELSEIF (ABS(IQ).EQ.2) THEN
25518 IQ = SIGN(1,IQ)
25519 ENDIF
25520 IDT_IQUARK = IQ
25521
25522 RETURN
25523 END
25524
25525*$ CREATE IDT_IBJQUA.FOR
25526*COPY IDT_IBJQUA
25527*
25528*===ibamq==============================================================*
25529*
25530 INTEGER FUNCTION IDT_IBJQUA(K,IDBAMJ)
25531
25532************************************************************************
25533* *
25534* quark contents according to BAMJET conventions *
25535* (random selection in case of quark mixing) *
25536* *
25537* input: IDBAMJ BAMJET particle code *
25538* K 1..3 quark number *
25539* *
25540* output: 1 u 7 u bar *
25541* 2 d 8 d bar *
25542* 3 s 9 s bar *
25543* 4 c 10 c bar *
25544* *
25545* This version written by R. Engel. *
25546************************************************************************
25547
25548 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25549 SAVE
25550
25551 DIMENSION ITAB(3,210)
25552 DATA ((ITAB(I,K),I=1,3),K=1,30) /
25553 & 1, 1, 2, 7, 7, 8, 0, 0, 0,
25554 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25555 & 0, 0, 0, 1, 2, 2, 7, 8, 8,
25556*sr 10.1.94
25557C & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25558 & 0, 0, 0, 0, 0, 0, 3, 8, 0,
25559*
25560 & 1, 8, 0, 2, 7, 0, 1, 9, 0,
25561*sr 10.1.94
25562C & 3, 7, 0, 0, 0, 0, 0, 0, 0,
25563 & 3, 7, 0, 3, 1, 2, 9, 7, 8,
25564*sr 10.1.94
25565C & 0, 0, 0, 2, 2, 3, 1, 1, 3,
25566 & 2, 9, 0, 2, 2, 3, 1, 1, 3,
25567*
25568 & 1, 2, 3, 201,202, 0, 2, 9, 0,
25569 & 3, 8, 0, 0, 0, 0, 0, 0, 0,
25570 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25571 DATA ((ITAB(I,K),I=1,3),K=31,60) /
25572 & 3, 9, 0, 1, 8, 0, 203,204, 0,
25573 & 2, 7, 0, 0, 0, 0, 1, 9, 0,
25574 & 2, 9, 0, 3, 7, 0, 3, 8, 0,
25575 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25576 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25577 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25578 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25579 & 0, 0, 0, 1, 1, 1, 1, 1, 2,
25580 & 1, 2, 2, 2, 2, 2, 0, 0, 0,
25581 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25582 DATA ((ITAB(I,K),I=1,3),K=61,90) /
25583 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25584 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25585 & 7, 7, 7, 7, 7, 8, 7, 8, 8,
25586 & 8, 8, 8, 0, 0, 0, 0, 0, 0,
25587 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25588 & 0, 0, 0, 0, 0, 0, 0, 0, 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 DATA ((ITAB(I,K),I=1,3),K=91,120) /
25594 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25595 & 0, 0, 0, 0, 0, 0, 3, 9, 0,
25596 & 1, 3, 3, 2, 3, 3, 7, 7, 9,
25597 & 7, 8, 9, 8, 8, 9, 7, 9, 9,
25598 & 8, 9, 9, 1, 1, 3, 1, 2, 3,
25599 & 2, 2, 3, 1, 3, 3, 2, 3, 3,
25600 & 3, 3, 3, 7, 7, 9, 7, 8, 9,
25601 & 8, 8, 9, 7, 9, 9, 8, 9, 9,
25602 & 9, 9, 9, 4, 7, 0, 4, 8, 0,
25603 & 2, 10, 0, 1, 10, 0, 4, 9, 0 /
25604 DATA ((ITAB(I,K),I=1,3),K=121,150) /
25605 & 3, 10, 0, 4, 10, 0, 4, 7, 0,
25606 & 4, 8, 0, 2, 10, 0, 1, 10, 0,
25607 & 4, 9, 0, 3, 10, 0, 4, 10, 0,
25608 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25609 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25610 & 0, 0, 0, 1, 2, 4, 1, 3, 4,
25611 & 2, 3, 4, 1, 1, 4, 0, 0, 0,
25612 & 2, 2, 4, 0, 0, 0, 0, 0, 0,
25613 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25614 & 3, 4, 4, 7, 8, 10, 7, 9, 10 /
25615 DATA ((ITAB(I,K),I=1,3),K=151,180) /
25616 & 8, 9, 10, 7, 7, 10, 0, 0, 0,
25617 & 8, 8, 10, 0, 0, 0, 0, 0, 0,
25618 & 9, 9, 10, 7, 10, 10, 8, 10, 10,
25619 & 9, 10, 10, 1, 1, 4, 1, 2, 4,
25620 & 2, 2, 4, 1, 3, 4, 2, 3, 4,
25621 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25622 & 3, 4, 4, 4, 4, 4, 7, 7, 10,
25623 & 7, 8, 10, 8, 8, 10, 7, 9, 10,
25624 & 8, 9, 10, 9, 9, 10, 7, 10, 10,
25625 & 8, 10, 10, 9, 10, 10, 10, 10, 10 /
25626 DATA ((ITAB(I,K),I=1,3),K=181,210) /
25627 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25628 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25629 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25630 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25631 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25632 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25633 & 0, 0, 0, 0, 0, 0, 1, 7, 0,
25634 & 2, 8, 0, 1, 7, 0, 2, 8, 0,
25635 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25636 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25637 DATA IDOLD /0/
25638
25639 ONE = 1.0D0
25640 IF (ITAB(1,IDBAMJ).LE.200) THEN
25641 ID = ITAB(K,IDBAMJ)
25642 ELSE
25643 IF(IDOLD.NE.IDBAMJ) THEN
25644 IT = AINT((ITAB(2,IDBAMJ)-ITAB(1,IDBAMJ)+0.999999D0)*
25645 & DT_RNDM(ONE)+ITAB(1,IDBAMJ))
25646 ELSE
25647 IDOLD = 0
25648 ENDIF
25649 ID = ITAB(K,IT)
25650 ENDIF
25651 IDOLD = IDBAMJ
25652 IDT_IBJQUA = ID
25653
25654 RETURN
25655 END
25656
25657*$ CREATE IDT_ICIHAD.FOR
25658*COPY IDT_ICIHAD
25659*
25660*===icihad=============================================================*
25661*
25662 INTEGER FUNCTION IDT_ICIHAD(MCIND)
25663
25664************************************************************************
25665* Conversion of particle index PDG proposal --> BAMJET-index scheme *
25666* This is a completely new version dated 25.10.95. *
25667* Renamed to be not in conflict with the modified PHOJET-version *
25668************************************************************************
25669
25670 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25671 SAVE
25672
25673* hadron index conversion (BAMJET <--> PDG)
25674 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25675 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25676 & IAMCIN(210)
25677
25678 IDT_ICIHAD = 0
25679 KPDG = ABS(MCIND)
25680 IF ((KPDG.EQ.0).OR.(KPDG.GT.70000)) RETURN
25681 IF (MCIND.LT.0) THEN
25682 JSIGN = 1
25683 ELSE
25684 JSIGN = 2
25685 ENDIF
25686 IF (KPDG.GE.10000) THEN
25687 DO 1 I=1,19
25688 IDT_ICIHAD = IBAM5(JSIGN,I)
25689 IF (IPDG5(JSIGN,I).EQ.MCIND) GOTO 5
25690 IDT_ICIHAD = 0
25691 1 CONTINUE
25692 ELSEIF (KPDG.GE.1000) THEN
25693 DO 2 I=1,29
25694 IDT_ICIHAD = IBAM4(JSIGN,I)
25695 IF (IPDG4(JSIGN,I).EQ.MCIND) GOTO 5
25696 IDT_ICIHAD = 0
25697 2 CONTINUE
25698 ELSEIF (KPDG.GE.100) THEN
25699 DO 3 I=1,22
25700 IDT_ICIHAD = IBAM3(JSIGN,I)
25701 IF (IPDG3(JSIGN,I).EQ.MCIND) GOTO 5
25702 IDT_ICIHAD = 0
25703 3 CONTINUE
25704 ELSEIF (KPDG.GE.10) THEN
25705 DO 4 I=1,7
25706 IDT_ICIHAD = IBAM2(JSIGN,I)
25707 IF (IPDG2(JSIGN,I).EQ.MCIND) GOTO 5
25708 IDT_ICIHAD = 0
25709 4 CONTINUE
25710 ENDIF
25711 5 CONTINUE
25712
25713 RETURN
25714 END
25715
25716*$ CREATE IDT_IPDGHA.FOR
25717*COPY IDT_IPDGHA
25718*
25719*===ipdgha=============================================================*
25720*
25721 INTEGER FUNCTION IDT_IPDGHA(MCIND)
25722
25723************************************************************************
25724* Conversion of particle index BAMJET-index scheme --> PDG proposal *
25725* Adopted from the original by S. Roesler. This version dated 12.5.95 *
25726* Renamed to be not in conflict with the modified PHOJET-version *
25727************************************************************************
25728
25729 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25730 SAVE
25731
25732* hadron index conversion (BAMJET <--> PDG)
25733 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25734 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25735 & IAMCIN(210)
25736
25737 IDT_IPDGHA = IAMCIN(MCIND)
25738
25739 RETURN
25740 END
25741
25742*$ CREATE DT_FLAHAD.FOR
25743*COPY DT_FLAHAD
25744*
25745*===flahad=============================================================*
25746*
25747 SUBROUTINE DT_FLAHAD(ID,IF1,IF2,IF3)
25748
25749************************************************************************
25750* sampling of FLAvor composition for HADrons/photons *
25751* ID BAMJET-id of hadron *
25752* IF1,2,3 flavor content *
25753* (u,d,s: 1,2,3; au,ad,as: -1,-1,-3) *
25754* Note: - u,d numbering as in BAMJET *
25755* - ID .le. 30 !! *
25756* This version dated 12.03.96 is written by S. Roesler *
25757************************************************************************
25758
25759 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25760 SAVE
25761
25762* auxiliary common for reggeon exchange (DTUNUC 1.x)
25763 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
25764 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
25765 & IQTCHR(-6:6),MQUARK(3,39)
25766
25767 DIMENSION JSEL(3,6)
25768 DATA JSEL/ 1,2,3, 2,3,1, 3,1,2, 1,3,2, 2,1,3, 3,2,1/
25769
25770 ONE = 1.0D0
25771 IF (ID.EQ.7) THEN
25772* photon (charge dependent flavour sampling)
25773 K = INT(DT_RNDM(ONE)*6.D0+1.D0)
25774 IF (K.LE.4) THEN
25775 IF1 = 2
25776 IF2 = -2
25777 ELSE IF(K.EQ.5) THEN
25778 IF1 = 1
25779 IF2 = -1
25780 ELSE
25781 IF1 = 3
25782 IF2 = -3
25783 ENDIF
25784 IF(DT_RNDM(ONE).LT.0.5D0) THEN
25785 K = IF1
25786 IF1 = IF2
25787 IF2 = K
25788 ENDIF
25789 IF3 = 0
25790 ELSE
25791* hadron
25792 IX = INT(1.0D0+5.99999D0*DT_RNDM(ONE))
25793 IF1 = MQUARK(JSEL(1,IX),ID)
25794 IF2 = MQUARK(JSEL(2,IX),ID)
25795 IF3 = MQUARK(JSEL(3,IX),ID)
25796 IF ((IF1.EQ.0).AND.(IF3.NE.0)) THEN
25797 IF1 = IF3
25798 IF3 = 0
25799 ELSEIF ((IF2.EQ.0).AND.(IF3.NE.0)) THEN
25800 IF2 = IF3
25801 IF3 = 0
25802 ENDIF
25803 ENDIF
25804
25805 RETURN
25806 END
25807
25808*$ CREATE IDT_MCHAD.FOR
25809*COPY IDT_MCHAD
25810*
25811*===mchad==============================================================*
25812*
25813 INTEGER FUNCTION IDT_MCHAD(ITDTU)
25814
25815************************************************************************
25816* Conversion of particle index BAMJET-index scheme --> HADRIN index s. *
25817* Adopted from the original by S. Roesler. This version dated 6.5.95 *
25818* *
25819* Last change 28.12.2006 by S. Roesler. *
25820************************************************************************
25821
25822 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25823 SAVE
25824
25825 DIMENSION ITRANS(210)
25826 DATA ITRANS / 1, 2, -1, -1, -1, -1, -1, 8, 9, -1, -1, 24, 13, 14,
25827 &15, 16, 8, 9, 25, 8, 1, 8, 23, 24, 25, -1, -1, -1, -1, -1, 23, 13,
25828 &23, 14, 23, 15, 24, 16, 25, 15, 24, 16, 25, 15, 24, 16, 25, 1, 8,
25829 &8, 8, 1, 1, 1, 8, 8, 1, 1, 8, 8, 1, 8, 1, 8, 1, 8, 2, 2, 9, 9, 2,
25830 &2, 9, 9, 2, 9, 1, 13, 23, 14, 1, 1, 8, 8, 1, 1, 23, 14, 1, 8, 1,
25831 &8, 1, 8, 23, 23, 8, 8, 2, 9, 9, 9, 9, 1, 8, 8, 8, 8, 8, 2, 9, 9,
25832 &9, 9, 9, 85*- 1,7*-1,1,8,-1/
25833
25834 IF ( ITDTU .GT. 0 ) THEN
25835 IDT_MCHAD = ITRANS(ITDTU)
25836 ELSE
25837 IDT_MCHAD = -1
25838 END IF
25839
25840 RETURN
25841 END
25842
25843************************************************************************
25844* *
25845* 3) Energy-momentum and quantum number conservation check routines *
25846* *
25847************************************************************************
25848*$ CREATE DT_EMC1.FOR
25849*COPY DT_EMC1
25850*
25851*===emc1===============================================================*
25852*
25853 SUBROUTINE DT_EMC1(PP1,PP2,PT1,PT2,MODE,IPOS,IREJ)
25854
25855************************************************************************
25856* This version dated 15.12.94 is written by S. Roesler *
25857************************************************************************
25858
25859 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25860 SAVE
25861 PARAMETER ( LINP = 10 ,
25862 & LOUT = 6 ,
25863 & LDAT = 9 )
25864 PARAMETER (TINY10=1.0D-10)
25865
25866 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
25867
25868 IREJ = 0
25869
25870 IF ((MODE.EQ.0).OR.(ABS(MODE).GT.3))
25871 & WRITE(LOUT,'(1X,A,I6)')'EMC1: not supported MODE ',MODE
25872
25873 IF ((MODE.GT.0).AND.(MODE.LT.3)) THEN
25874 IF (MODE.EQ.1) THEN
25875 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),1,IDUM,IDUM)
25876 ELSEIF (MODE.EQ.2) THEN
25877 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),2,IDUM,IDUM)
25878 ENDIF
25879 CALL DT_EVTEMC(PP2(1),PP2(2),PP2(3),PP2(4),2,IDUM,IDUM)
25880 CALL DT_EVTEMC(PT1(1),PT1(2),PT1(3),PT1(4),2,IDUM,IDUM)
25881 CALL DT_EVTEMC(PT2(1),PT2(2),PT2(3),PT2(4),2,IDUM,IDUM)
25882 ELSEIF (MODE.LT.0) THEN
25883 IF (MODE.EQ.-1) THEN
25884 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),1,IDUM,IDUM)
25885 ELSEIF (MODE.EQ.-2) THEN
25886 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),2,IDUM,IDUM)
25887 ENDIF
25888 CALL DT_EVTEMC(-PP2(1),-PP2(2),-PP2(3),-PP2(4),2,IDUM,IDUM)
25889 CALL DT_EVTEMC(-PT1(1),-PT1(2),-PT1(3),-PT1(4),2,IDUM,IDUM)
25890 CALL DT_EVTEMC(-PT2(1),-PT2(2),-PT2(3),-PT2(4),2,IDUM,IDUM)
25891 ENDIF
25892
25893 IF (ABS(MODE).EQ.3) THEN
25894 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,IPOS,IREJ1)
25895 IF (IREJ1.NE.0) GOTO 9999
25896 ENDIF
25897 RETURN
25898
25899 9999 CONTINUE
25900 IREJ = 1
25901 RETURN
25902 END
25903
25904*$ CREATE DT_EMC2.FOR
25905*COPY DT_EMC2
25906*
25907*===emc2===============================================================*
25908*
25909 SUBROUTINE DT_EMC2(IP1,IP2,IP3,IP4,IP5,MP,IN1,IN2,IN3,IN4,IN5,MN,
25910 & MODE,IPOS,IREJ)
25911
25912************************************************************************
25913* MODE = 1 energy-momentum cons. check *
25914* = 2 flavor-cons. check *
25915* = 3 energy-momentum & flavor cons. check *
25916* = 4 energy-momentum & charge cons. check *
25917* = 5 energy-momentum & flavor & charge cons. check *
25918* This version dated 16.01.95 is written by S. Roesler *
25919************************************************************************
25920
25921 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25922 SAVE
25923 PARAMETER ( LINP = 10 ,
25924 & LOUT = 6 ,
25925 & LDAT = 9 )
25926 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
25927
25928* event history
25929 PARAMETER (NMXHKK=200000)
25930 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
25931 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
25932 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
25933* extended event history
25934 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
25935 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
25936 & IHIST(2,NMXHKK)
25937
25938 IREJ = 0
25939 IREJ1 = 0
25940 IREJ2 = 0
25941 IREJ3 = 0
25942
25943 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25944 & CALL DT_EVTEMC(ZERO,ZERO,ZERO,ZERO,1,IDUM,IDUM)
25945 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25946 & CALL DT_EVTFLC(0,IDUM,1,IDUM,IDUM)
25947 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,1,IDUM,IDUM)
25948 DO 1 I=1,NHKK
25949 IF ((ISTHKK(I).EQ.IP1).OR.(ISTHKK(I).EQ.IP2).OR.
25950 & (ISTHKK(I).EQ.IP3).OR.(ISTHKK(I).EQ.IP4).OR.
25951 & (ISTHKK(I).EQ.IP5)) THEN
25952 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25953 & .OR.(MODE.EQ.5))
25954 & CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
25955 & 2,IDUM,IDUM)
25956 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25957 & CALL DT_EVTFLC(IDHKK(I),MP,2,IDUM,IDUM)
25958 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25959 & CALL DT_EVTCHG(IDHKK(I),2,IDUM,IDUM)
25960 ENDIF
25961 IF ((ISTHKK(I).EQ.IN1).OR.(ISTHKK(I).EQ.IN2).OR.
25962 & (ISTHKK(I).EQ.IN3).OR.(ISTHKK(I).EQ.IN4).OR.
25963 & (ISTHKK(I).EQ.IN5)) THEN
25964 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25965 & .OR.(MODE.EQ.5))
25966 & CALL DT_EVTEMC(-PHKK(1,I),-PHKK(2,I),-PHKK(3,I),-PHKK(4,I),
25967 & 2,IDUM,IDUM)
25968 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25969 & CALL DT_EVTFLC(IDHKK(I),MN,-2,IDUM,IDUM)
25970 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25971 & CALL DT_EVTCHG(IDHKK(I),-2,IDUM,IDUM)
25972 ENDIF
25973 1 CONTINUE
25974 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25975 & CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,IPOS,IREJ1)
25976 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25977 & CALL DT_EVTFLC(0,IDUM,3,IPOS,IREJ2)
25978 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,3,IPOS,IREJ3)
25979 IF ((IREJ1.NE.0).OR.(IREJ2.NE.0).OR.(IREJ3.NE.0)) GOTO 9999
25980
25981 RETURN
25982
25983 9999 CONTINUE
25984 IREJ = 1
25985 RETURN
25986 END
25987
25988*$ CREATE DT_EVTEMC.FOR
25989*COPY DT_EVTEMC
25990*
25991*===evtemc=============================================================*
25992*
25993 SUBROUTINE DT_EVTEMC(PXIO,PYIO,PZIO,EIO,IMODE,IPOS,IREJ)
25994
25995************************************************************************
25996* This version dated 13.12.94 is written by S. Roesler *
25997************************************************************************
25998
25999 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26000 SAVE
26001 PARAMETER ( LINP = 10 ,
26002 & LOUT = 6 ,
26003 & LDAT = 9 )
26004 PARAMETER (TINY1=1.0D-1,TINY2=1.0D-2,TINY4=1.0D-4,TINY10=1.0D-10,
26005 & ZERO=0.0D0)
26006
26007* event history
26008 PARAMETER (NMXHKK=200000)
26009 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26010 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26011 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26012* flags for input different options
26013 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
26014 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
26015 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
26016
26017 IREJ = 0
26018
26019 MODE = IMODE
26020 CHKLEV = TINY10
26021 IF (MODE.EQ.4) THEN
26022 CHKLEV = TINY2
26023 MODE = 3
26024 ELSEIF (MODE.EQ.5) THEN
26025 CHKLEV = TINY1
26026 MODE = 3
26027 ELSEIF (MODE.EQ.-1) THEN
26028 CHKLEV = EIO
26029 MODE = 3
26030 ENDIF
26031
26032 IF (ABS(MODE).EQ.3) THEN
26033 PXDEV = PX
26034 PYDEV = PY
26035 PZDEV = PZ
26036 EDEV = E
26037 IF ((IFRAG(1).EQ.2).AND.(CHKLEV.LT.TINY4)) CHKLEV = TINY4
26038 IF ((ABS(PXDEV).GT.CHKLEV).OR.(ABS(PYDEV).GT.CHKLEV).OR.
26039 & (ABS(PZDEV).GT.CHKLEV).OR.(ABS(EDEV).GT.CHKLEV)) THEN
26040 IF (IOULEV(2).GT.0) WRITE(LOUT,'(1X,A,I4,A,I8,A,/,4G10.3)')
26041 & 'EVTEMC: energy-momentum cons. failure at pos. ',IPOS,
26042 & ' event ',NEVHKK,
26043 & ' ! ',PXDEV,PYDEV,PZDEV,EDEV
26044 PX = 0.0D0
26045 PY = 0.0D0
26046 PZ = 0.0D0
26047 E = 0.0D0
26048 GOTO 9999
26049 ENDIF
26050 PX = 0.0D0
26051 PY = 0.0D0
26052 PZ = 0.0D0
26053 E = 0.0D0
26054 RETURN
26055 ENDIF
26056
26057 IF (MODE.EQ.1) THEN
26058 PX = 0.0D0
26059 PY = 0.0D0
26060 PZ = 0.0D0
26061 E = 0.0D0
26062 ENDIF
26063
26064 PX = PX+PXIO
26065 PY = PY+PYIO
26066 PZ = PZ+PZIO
26067 E = E+EIO
26068
26069 RETURN
26070
26071 9999 CONTINUE
26072 IREJ = 1
26073 RETURN
26074 END
26075
26076*$ CREATE DT_EVTFLC.FOR
26077*COPY DT_EVTFLC
26078*
26079*===evtflc=============================================================*
26080*
26081 SUBROUTINE DT_EVTFLC(ID,ID1,MODE,IPOS,IREJ)
26082
26083************************************************************************
26084* Flavor conservation check. *
26085* ID identity of particle *
26086* ID1 = 1 ID for q,aq,qq,aqaq in PDG-numbering scheme *
26087* = 2 ID for particle/resonance in BAMJET numbering scheme *
26088* = 3 ID for particle/resonance in PDG numbering scheme *
26089* MODE = 1 initialization and add ID *
26090* =-1 initialization and subtract ID *
26091* = 2 add ID *
26092* =-2 subtract ID *
26093* = 3 check flavor cons. *
26094* IPOS flag to give position of call of EVTFLC to output *
26095* unit in case of violation *
26096* This version dated 10.01.95 is written by S. Roesler *
26097************************************************************************
26098
26099 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26100 SAVE
26101 PARAMETER ( LINP = 10 ,
26102 & LOUT = 6 ,
26103 & LDAT = 9 )
26104 PARAMETER (TINY10=1.0D-10)
26105
26106 IREJ = 0
26107
26108 IF (MODE.EQ.3) THEN
26109 IF (IFL.NE.0) THEN
26110 WRITE(LOUT,'(1X,A,I3,A,I3)')
26111 & 'EVTFLC: flavor-conservation failure at pos. ',IPOS,
26112 & ' ! IFL = ',IFL
26113 IFL = 0
26114 GOTO 9999
26115 ENDIF
26116 IFL = 0
26117 RETURN
26118 ENDIF
26119
26120 IF (MODE.EQ.1) IFL = 0
26121 IF (ID.EQ.0) RETURN
26122
26123 IF (ID1.EQ.1) THEN
26124 IDD = ABS(ID)
26125 NQ = 1
26126 IF ((IDD.GE.100).AND.(IDD.LT.1000)) NQ = 2
26127 IF (IDD.GE.1000) NQ = 3
26128 DO 1 I=1,NQ
26129 IFBAM = IDT_IPDG2B(ID,I,2)
26130 IF (ABS(IFBAM).EQ.1) THEN
26131 IFBAM = SIGN(2,IFBAM)
26132 ELSEIF (ABS(IFBAM).EQ.2) THEN
26133 IFBAM = SIGN(1,IFBAM)
26134 ENDIF
26135 IF (MODE.GT.0) THEN
26136 IFL = IFL+IFBAM
26137 ELSE
26138 IFL = IFL-IFBAM
26139 ENDIF
26140 1 CONTINUE
26141 RETURN
26142 ENDIF
26143
26144 IDD = ID
26145 IF (ID1.EQ.3) IDD = IDT_ICIHAD(ID)
26146 IF ((ID1.EQ.2).OR.(ID1.EQ.3)) THEN
26147 DO 2 I=1,3
26148 IF (MODE.GT.0) THEN
26149 IFL = IFL+IDT_IQUARK(I,IDD)
26150 ELSE
26151 IFL = IFL-IDT_IQUARK(I,IDD)
26152 ENDIF
26153 2 CONTINUE
26154 ENDIF
26155 RETURN
26156
26157 9999 CONTINUE
26158 IREJ = 1
26159 RETURN
26160 END
26161
26162*$ CREATE DT_EVTCHG.FOR
26163*COPY DT_EVTCHG
26164*
26165*===evtchg=============================================================*
26166*
26167 SUBROUTINE DT_EVTCHG(ID,MODE,IPOS,IREJ)
26168
26169************************************************************************
26170* Charge conservation check. *
26171* ID identity of particle (PDG-numbering scheme) *
26172* MODE = 1 initialization *
26173* =-2 subtract ID-charge *
26174* = 2 add ID-charge *
26175* = 3 check charge cons. *
26176* IPOS flag to give position of call of EVTCHG to output *
26177* unit in case of violation *
26178* This version dated 10.01.95 is written by S. Roesler *
26179* Last change: s.r. 21.01.01 *
26180************************************************************************
26181
26182 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26183 SAVE
26184 PARAMETER ( LINP = 10 ,
26185 & LOUT = 6 ,
26186 & LDAT = 9 )
26187
26188* event history
26189 PARAMETER (NMXHKK=200000)
26190 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26191 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26192 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26193* particle properties (BAMJET index convention)
26194 CHARACTER*8 ANAME
26195 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26196 & IICH(210),IIBAR(210),K1(210),K2(210)
26197
26198 IREJ = 0
26199
26200 IF (MODE.EQ.1) THEN
26201 ICH = 0
26202 IBAR = 0
26203 RETURN
26204 ENDIF
26205
26206 IF (MODE.EQ.3) THEN
26207 IF ((ICH.NE.0).OR.(IBAR.NE.0)) THEN
26208 WRITE(LOUT,'(1X,A,I3,A,2I3,A,I8)')
26209 & 'EVTCHG: charge/baryo.-cons. failure at pos. ',IPOS,
26210 & '! ICH/IBAR= ',ICH,IBAR,' event ',NEVHKK
26211 ICH = 0
26212 IBAR = 0
26213 GOTO 9999
26214 ENDIF
26215 ICH = 0
26216 IBAR = 0
26217 RETURN
26218 ENDIF
26219
26220 IF (ID.EQ.0) RETURN
26221
26222 IDD = IDT_ICIHAD(ID)
26223* modification 21.1.01: use intrinsic phojet-functions to determine charge
26224* and baryon number
26225C IF (IDD.GT.0) THEN
26226C IF (MODE.EQ.2) THEN
26227C ICH = ICH+IICH(IDD)
26228C IBAR = IBAR+IIBAR(IDD)
26229C ELSEIF (MODE.EQ.-2) THEN
26230C ICH = ICH-IICH(IDD)
26231C IBAR = IBAR-IIBAR(IDD)
26232C ENDIF
26233C ELSE
26234C WRITE(LOUT,'(1X,A,3I6)') 'EVTCHG: (IDD = 0 !), IDD,ID=',IDD,ID
26235C CALL DT_EVTOUT(4)
26236C STOP
26237C ENDIF
26238 IF (MODE.EQ.2) THEN
26239 ICH = ICH+IPHO_CHR3(ID,1)/3
26240 IBAR = IBAR+IPHO_BAR3(ID,1)/3
26241 ELSEIF (MODE.EQ.-2) THEN
26242 ICH = ICH-IPHO_CHR3(ID,1)/3
26243 IBAR = IBAR-IPHO_BAR3(ID,1)/3
26244 ENDIF
26245
26246 RETURN
26247
26248 9999 CONTINUE
26249 IREJ = 1
26250 RETURN
26251 END
26252
26253************************************************************************
26254* *
26255* 4) Transformations *
26256* *
26257************************************************************************
26258*$ CREATE DT_LTINI.FOR
26259*COPY DT_LTINI
26260*
26261*===ltini==============================================================*
26262*
26263 SUBROUTINE DT_LTINI(IDPR,IDTA,EPN0,PPN0,ECM0,MODE)
26264
26265************************************************************************
26266* Initializations of Lorentz-transformations, calculation of Lorentz- *
26267* parameters. *
26268* This version dated 13.11.95 is written by S. Roesler. *
26269************************************************************************
26270
26271 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26272 SAVE
26273 PARAMETER ( LINP = 10 ,
26274 & LOUT = 6 ,
26275 & LDAT = 9 )
26276 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,
26277 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
26278
26279* Lorentz-parameters of the current interaction
26280 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26281 & UMO,PPCM,EPROJ,PPROJ
26282* properties of photon/lepton projectiles
26283 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
26284* particle properties (BAMJET index convention)
26285 CHARACTER*8 ANAME
26286 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26287 & IICH(210),IIBAR(210),K1(210),K2(210)
26288* nucleon-nucleon event-generator
26289 CHARACTER*8 CMODEL
26290 LOGICAL LPHOIN
26291 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
26292
26293 Q2 = VIRT
26294 IDP = IDPR
26295 IF (MCGENE.NE.3) THEN
26296* lepton-projectiles and PHOJET: initialize real photon instead
26297 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26298 & (IDPR.EQ.10).OR.(IDPR.EQ.11).OR.
26299 & (IDPR.EQ. 5).OR.(IDPR.EQ. 6)) THEN
26300 IDP = 7
26301 Q2 = ZERO
26302 ENDIF
26303 ENDIF
26304 IDT = IDTA
26305 EPN = EPN0
26306 PPN = PPN0
26307 ECM = ECM0
26308 AMP = AAM(IDP)-SQRT(ABS(Q2))
26309 AMT = AAM(IDT)
26310 AMP2 = SIGN(AMP**2,AMP)
26311 AMT2 = AMT**2
26312 IF (ECM0.GT.ZERO) THEN
26313 EPN = (ECM**2-AMP2-AMT2)/(TWO*AMT)
26314 IF (AMP2.GT.ZERO) THEN
26315 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26316 ELSE
26317 PPN = SQRT(EPN**2-AMP2)
26318 ENDIF
26319 ELSE
26320 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26321 IF (IDP.EQ.7) EPN = ABS(EPN)
26322 IF (EPN.LT.ZERO) EPN = ABS(EPN)+AMP
26323 IF (AMP2.GT.ZERO) THEN
26324 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26325 ELSE
26326 PPN = SQRT(EPN**2-AMP2)
26327 ENDIF
26328 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26329 IF (AMP2.GT.ZERO) THEN
26330 EPN = PPN*SQRT(ONE+(AMP/PPN)**2)
26331 ELSE
26332 EPN = SQRT(PPN**2+AMP2)
26333 ENDIF
26334 ENDIF
26335 ECM = SQRT(AMP2+AMT2+TWO*AMT*EPN)
26336 ENDIF
26337 UMO = ECM
26338 EPROJ = EPN
26339 PPROJ = PPN
26340 IF (AMP2.GT.ZERO) THEN
26341 ETARG = (ECM**2-AMP2-AMT2)/(TWO*AMP)
26342 PTARG = -SQRT((ETARG+AMT)*(ETARG-AMT))
26343 ELSE
26344 ETARG = TINY10
26345 PTARG = TINY10
26346 ENDIF
26347* photon-projectiles (get momentum in cm-frame for virtuality Q^2)
26348 IF (IDP.EQ.7) THEN
26349 PGAMM(1) = ZERO
26350 PGAMM(2) = ZERO
26351 AMGAM = AMP
26352 AMGAM2 = AMP2
26353 IF (ECM0.GT.ZERO) THEN
26354 S = ECM0**2
26355 ELSE
26356 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26357 S = AMGAM2+AMT2+TWO*AMT*ABS(EPN0)
26358 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26359 S = AMGAM2+AMT2+TWO*AMT*SQRT(PPN0**2+AMGAM2)
26360 ENDIF
26361 ENDIF
26362 PGAMM(3) = SQRT( (S**2-TWO*AMGAM2*S-TWO*AMT2*S-TWO*AMGAM2*AMT2
26363 & +AMGAM2**2+AMT2**2)/(4.0D0*S) )
26364 PGAMM(4) = SQRT(AMGAM2+PGAMM(3)**2)
26365 IF (MODE.EQ.1) THEN
26366 PNUCL(1) = ZERO
26367 PNUCL(2) = ZERO
26368 PNUCL(3) = -PGAMM(3)
26369 PNUCL(4) = SQRT(S)-PGAMM(4)
26370 ENDIF
26371 ENDIF
26372 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26373 & (IDPR.EQ.10).OR.(IDPR.EQ.11)) THEN
26374 PLEPT0(1) = ZERO
26375 PLEPT0(2) = ZERO
26376* neglect lepton masses
26377C AMLPT2 = AAM(IDPR)**2
26378 AMLPT2 = ZERO
26379*
26380 IF (ECM0.GT.ZERO) THEN
26381 S = ECM0**2
26382 ELSE
26383 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26384 S = AMLPT2+AMT2+TWO*AMT*ABS(EPN0)
26385 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26386 S = AMLPT2+AMT2+TWO*AMT*SQRT(PPN0**2+AMLPT2)
26387 ENDIF
26388 ENDIF
26389 PLEPT0(3) = SQRT( (S**2-TWO*AMLPT2*S-TWO*AMT2*S-TWO*AMLPT2*AMT2
26390 & +AMLPT2**2+AMT2**2)/(4.0D0*S) )
26391 PLEPT0(4) = SQRT(AMLPT2+PLEPT0(3)**2)
26392 PNUCL(1) = ZERO
26393 PNUCL(2) = ZERO
26394 PNUCL(3) = -PLEPT0(3)
26395 PNUCL(4) = SQRT(S)-PLEPT0(4)
26396 ENDIF
26397* Lorentz-parameter for transformation Lab. - projectile rest system
26398 IF ((IDP.EQ.7).OR.(AMP.LT.TINY10)) THEN
26399 GALAB = TINY10
26400 BGLAB = TINY10
26401 BLAB = TINY10
26402 ELSE
26403 GALAB = EPROJ/AMP
26404 BGLAB = PPROJ/AMP
26405 BLAB = BGLAB/GALAB
26406 ENDIF
26407* Lorentz-parameter for transf. proj. rest sys. - nucl.-nucl. cms.
26408 IF (IDP.EQ.7) THEN
26409 GACMS(1) = TINY10
26410 BGCMS(1) = TINY10
26411 ELSE
26412 GACMS(1) = (ETARG+AMP)/UMO
26413 BGCMS(1) = PTARG/UMO
26414 ENDIF
26415* Lorentz-parameter for transformation Lab. - nucl.-nucl. cms.
26416 GACMS(2) = (EPROJ+AMT)/UMO
26417 BGCMS(2) = PPROJ/UMO
26418 PPCM = GACMS(2)*PPROJ-BGCMS(2)*EPROJ
26419
26420 EPN0 = EPN
26421 PPN0 = PPN
26422 ECM0 = ECM
26423
26424 RETURN
26425 END
26426
26427*$ CREATE DT_LTRANS.FOR
26428*COPY DT_LTRANS
26429*
26430*===ltrans=============================================================*
26431*
26432 SUBROUTINE DT_LTRANS(PXI,PYI,PZI,PEI,PXO,PYO,PZO,PEO,ID,MODE)
26433
26434************************************************************************
26435* Lorentz-transformations. *
26436* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26437* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26438* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26439* This version dated 01.11.95 is written by S. Roesler. *
26440************************************************************************
26441
26442 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26443 SAVE
26444 PARAMETER ( LINP = 10 ,
26445 & LOUT = 6 ,
26446 & LDAT = 9 )
26447 PARAMETER (TINY3=1.0D-3,ZERO=0.0D0,TWO=2.0D0)
26448
26449 PARAMETER (SQTINF=1.0D+15)
26450
26451* particle properties (BAMJET index convention)
26452 CHARACTER*8 ANAME
26453 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26454 & IICH(210),IIBAR(210),K1(210),K2(210)
26455
26456 PXO = PXI
26457 PYO = PYI
26458 CALL DT_LTNUC(PZI,PEI,PZO,PEO,MODE)
26459
26460* check particle mass for consistency (numerical rounding errors)
26461 PO = SQRT(PXO*PXO+PYO*PYO+PZO*PZO)
26462 AMO2 = (PEO-PO)*(PEO+PO)
26463 AMORQ2 = AAM(ID)**2
26464 AMDIF2 = ABS(AMO2-AMORQ2)
26465 IF ((AMDIF2.GT.TINY3).AND.(PEO.LT.SQTINF).AND.(PO.GT.ZERO)) THEN
26466 DELTA = (AMORQ2-AMO2)/(TWO*(PEO+PO))
26467 PEO = PEO+DELTA
26468 PO1 = PO -DELTA
26469 PXO = PXO*PO1/PO
26470 PYO = PYO*PO1/PO
26471 PZO = PZO*PO1/PO
26472C WRITE(6,*) 'LTRANS corrected', AMDIF2,PZI,PEI,PZO,PEO,MODE,ID
26473 ENDIF
26474
26475 RETURN
26476 END
26477
26478*$ CREATE DT_LTNUC.FOR
26479*COPY DT_LTNUC
26480*
26481*===ltnuc==============================================================*
26482*
26483 SUBROUTINE DT_LTNUC(PIN,EIN,POUT,EOUT,MODE)
26484
26485************************************************************************
26486* Lorentz-transformations. *
26487* PIN longitudnal momentum (input) *
26488* EIN energy (input) *
26489* POUT transformed long. momentum (output) *
26490* EOUT transformed energy (output) *
26491* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26492* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26493* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26494* This version dated 01.11.95 is written by S. Roesler. *
26495************************************************************************
26496
26497 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26498 SAVE
26499 PARAMETER ( LINP = 10 ,
26500 & LOUT = 6 ,
26501 & LDAT = 9 )
26502 PARAMETER (ZERO=0.0D0)
26503
26504* Lorentz-parameters of the current interaction
26505 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26506 & UMO,PPCM,EPROJ,PPROJ
26507
26508 BDUM1 = ZERO
26509 BDUM2 = ZERO
26510 PDUM1 = ZERO
26511 PDUM2 = ZERO
26512 IF (ABS(MODE).EQ.1) THEN
26513 BG = -SIGN(BGLAB,DBLE(MODE))
26514 CALL DT_DALTRA(GALAB,BDUM1,BDUM2,-BG,PDUM1,PDUM2,PIN,EIN,
26515 & DUM1,DUM2,DUM3,POUT,EOUT)
26516 ELSEIF (ABS(MODE).EQ.2) THEN
26517 BG = SIGN(BGCMS(1),DBLE(MODE))
26518 CALL DT_DALTRA(GACMS(1),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26519 & DUM1,DUM2,DUM3,POUT,EOUT)
26520 ELSEIF (ABS(MODE).EQ.3) THEN
26521 BG = -SIGN(BGCMS(2),DBLE(MODE))
26522 CALL DT_DALTRA(GACMS(2),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26523 & DUM1,DUM2,DUM3,POUT,EOUT)
26524 ELSE
26525 WRITE(LOUT,1000) MODE
26526 1000 FORMAT(1X,'LTNUC: not supported mode (MODE = ',I3,')')
26527 EOUT = EIN
26528 POUT = PIN
26529 ENDIF
26530
26531 RETURN
26532 END
26533
26534*$ CREATE DT_DALTRA.FOR
26535*COPY DT_DALTRA
26536*
26537*===daltra=============================================================*
26538*
26539 SUBROUTINE DT_DALTRA(GA,BGX,BGY,BGZ,PCX,PCY,PCZ,EC,P,PX,PY,PZ,E)
26540
26541************************************************************************
26542* Arbitrary Lorentz-transformation. *
26543* Adopted from the original by S. Roesler. This version dated 15.01.95 *
26544************************************************************************
26545
26546 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26547 SAVE
26548 PARAMETER (ONE=1.0D0)
26549
26550 EP = PCX*BGX+PCY*BGY+PCZ*BGZ
26551 PE = EP/(GA+ONE)+EC
26552 PX = PCX+BGX*PE
26553 PY = PCY+BGY*PE
26554 PZ = PCZ+BGZ*PE
26555 P = SQRT(PX*PX+PY*PY+PZ*PZ)
26556 E = GA*EC+EP
26557
26558 RETURN
26559 END
26560
26561*$ CREATE DT_DTRAFO.FOR
26562*COPY DT_DTRAFO
26563*
26564*====dtrafo============================================================*
26565*
26566 SUBROUTINE DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD,COF,SIF,P,ECM,
26567 & PL,CXL,CYL,CZL,EL)
26568
26569C LORENTZ TRANSFORMATION INTO THE LAB - SYSTEM
26570
26571 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26572 SAVE
26573
26574 IF (ABS(COD).GT.1.0D0) COD = SIGN(1.0D0,COD)
26575 SID = SQRT(1.D0-COD*COD)
26576 PLX = P*SID*COF
26577 PLY = P*SID*SIF
26578 PCMZ = P*COD
26579 PLZ = GAM*PCMZ+BGAM*ECM
26580 PL = SQRT(PLX*PLX+PLY*PLY+PLZ*PLZ)
26581 EL = GAM*ECM+BGAM*PCMZ
26582C ROTATION INTO THE ORIGINAL DIRECTION
26583 COZ = PLZ/PL
26584 SIZ = SQRT(1.D0-COZ**2)
26585 CALL DT_STTRAN(CX,CY,CZ,COZ,SIZ,SIF,COF,CXL,CYL,CZL)
26586
26587 RETURN
26588 END
26589
26590*$ CREATE DT_STTRAN.FOR
26591*COPY DT_STTRAN
26592*
26593*====sttran============================================================*
26594*
26595 SUBROUTINE DT_STTRAN(XO,YO,ZO,CDE,SDE,SFE,CFE,X,Y,Z)
26596
26597 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26598 SAVE
26599 DATA ANGLSQ/1.D-30/
26600************************************************************************
26601* VERSION BY J. RANFT *
26602* LEIPZIG *
26603* *
26604* THIS IS A SUBROUTINE OF FLUKA TO GIVE NEW DIRECTION COSINES *
26605* *
26606* INPUT VARIABLES: *
26607* XO,YO,ZO = ORIGINAL DIRECTION COSINES *
26608* CDE,SDE = COSINE AND SINE OF THE POLAR (THETA) *
26609* ANGLE OF "SCATTERING" *
26610* SDE = SINE OF THE POLAR (THETA) ANGLE OF "SCATTERING" *
26611* SFE,CFE = SINE AND COSINE OF THE AZIMUTHAL (PHI) ANGLE *
26612* OF "SCATTERING" *
26613* *
26614* OUTPUT VARIABLES: *
26615* X,Y,Z = NEW DIRECTION COSINES *
26616* *
26617* ROTATION OF COORDINATE SYSTEM (SEE CERN 64-47 ) *
26618************************************************************************
26619*
26620*
26621* Changed by A. Ferrari
26622*
26623* IF (ABS(XO)-0.0001D0) 1,1,2
26624* 1 IF (ABS(YO)-0.0001D0) 3,3,2
26625* 3 CONTINUE
26626 A = XO**2 + YO**2
26627 IF ( A .LT. ANGLSQ ) THEN
26628 X=SDE*CFE
26629 Y=SDE*SFE
26630 Z=CDE*ZO
26631 ELSE
26632 XI=SDE*CFE
26633 YI=SDE*SFE
26634 ZI=CDE
26635 A=SQRT(A)
26636 X=-YO*XI/A-ZO*XO*YI/A+XO*ZI
26637 Y=XO*XI/A-ZO*YO*YI/A+YO*ZI
26638 Z=A*YI+ZO*ZI
26639 ENDIF
26640
26641 RETURN
26642 END
26643
26644*$ CREATE DT_MYTRAN.FOR
26645*COPY DT_MYTRAN
26646*
26647*===mytran=============================================================*
26648*
26649 SUBROUTINE DT_MYTRAN(IMODE,XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z)
26650
26651************************************************************************
26652* This subroutine rotates the coordinate frame *
26653* a) theta around y *
26654* b) phi around z if IMODE = 1 *
26655* *
26656* x' cos(ph) -sin(ph) 0 cos(th) 0 sin(th) x *
26657* y' = A B = sin(ph) cos(ph) 0 . 0 1 0 y *
26658* z' 0 0 1 -sin(th) 0 cos(th) z *
26659* *
26660* and vice versa if IMODE = 0. *
26661* This version dated 5.4.94 is based on the original version DTRAN *
26662* by J. Ranft and is written by S. Roesler. *
26663************************************************************************
26664
26665 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26666 SAVE
26667 PARAMETER ( LINP = 10 ,
26668 & LOUT = 6 ,
26669 & LDAT = 9 )
26670
26671 IF (IMODE.EQ.1) THEN
26672 X= CDE*CFE*XO-SFE*YO+SDE*CFE*ZO
26673 Y= CDE*SFE*XO+CFE*YO+SDE*SFE*ZO
26674 Z=-SDE *XO +CDE *ZO
26675 ELSE
26676 X= CDE*CFE*XO+CDE*SFE*YO-SDE*ZO
26677 Y= -SFE*XO+CFE*YO
26678 Z= SDE*CFE*XO+SDE*SFE*YO+CDE*ZO
26679 ENDIF
26680 RETURN
26681 END
26682
26683*$ CREATE DT_LT2LAO.FOR
26684*COPY DT_LT2LAO
26685*
26686*===lt2lab=============================================================*
26687*
26688 SUBROUTINE DT_LT2LAO
26689
26690************************************************************************
26691* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26692* for final state particles/fragments defined in nucleon-nucleon-cms *
26693* and transforms them back to the lab. *
26694* This version dated 16.11.95 is written by S. Roesler *
26695************************************************************************
26696
26697 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26698 SAVE
26699 PARAMETER ( LINP = 10 ,
26700 & LOUT = 6 ,
26701 & LDAT = 9 )
26702
26703* event history
26704 PARAMETER (NMXHKK=200000)
26705 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26706 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26707 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26708* extended event history
26709 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26710 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26711 & IHIST(2,NMXHKK)
26712
26713 NEND = NHKK
26714 NPOINT(5) = NHKK+1
26715 IF ( (NPOINT(4).EQ.0).OR.(NEND.LT.NPOINT(4)) ) RETURN
26716 DO 1 I=NPOINT(4),NEND
26717C DO 1 I=1,NEND
26718 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26719 & (ISTHKK(I).EQ.1001)) THEN
26720 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26721 NOB = NOBAM(I)
26722 CALL DT_EVTPUT(ISTHKK(I),IDHKK(I),I,0,PHKK(1,I),PHKK(2,I),
26723 & PZ,PE,IDRES(I),IDXRES(I),IDCH(I))
26724 IF ((ISTHKK(I).EQ.1000).OR.(ISTHKK(I).EQ.1001)) THEN
26725 ISTHKK(I) = 3*ISTHKK(I)
26726 NOBAM(NHKK) = NOB
26727 ELSE
26728 IF (ISTHKK(I).EQ.-1) NOBAM(NHKK) = NOB
26729 ISTHKK(I) = SIGN(3,ISTHKK(I))
26730 ENDIF
26731 JDAHKK(1,I) = NHKK
26732 ENDIF
26733 1 CONTINUE
26734
26735 RETURN
26736 END
26737
26738*$ CREATE DT_LT2LAB.FOR
26739*COPY DT_LT2LAB
26740*
26741*===lt2lab=============================================================*
26742*
26743 SUBROUTINE DT_LT2LAB
26744
26745************************************************************************
26746* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26747* for final state particles/fragments defined in nucleon-nucleon-cms *
26748* and transforms them to the lab. *
26749* This version dated 07.01.96 is written by S. Roesler *
26750************************************************************************
26751
26752 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26753 SAVE
26754 PARAMETER ( LINP = 10 ,
26755 & LOUT = 6 ,
26756 & LDAT = 9 )
26757
26758* event history
26759 PARAMETER (NMXHKK=200000)
26760 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26761 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26762 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26763* extended event history
26764 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26765 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26766 & IHIST(2,NMXHKK)
26767
26768 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
26769 DO 1 I=NPOINT(4),NHKK
26770 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26771 & (ISTHKK(I).EQ.1001)) THEN
26772 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26773 PHKK(3,I) = PZ
26774 PHKK(4,I) = PE
26775 ENDIF
26776 1 CONTINUE
26777
26778 RETURN
26779 END
26780
26781************************************************************************
26782* *
26783* 5) Sampling from distributions *
26784* *
26785************************************************************************
26786*$ CREATE IDT_NPOISS.FOR
26787*COPY IDT_NPOISS
26788*
26789*===npoiss=============================================================*
26790*
26791 INTEGER FUNCTION IDT_NPOISS(AVN)
26792
26793************************************************************************
26794* Sample according to Poisson distribution with Poisson parameter AVN. *
26795* The original version written by J. Ranft. *
26796* This version dated 11.1.95 is written by S. Roesler. *
26797************************************************************************
26798
26799 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26800 SAVE
26801 PARAMETER ( LINP = 10 ,
26802 & LOUT = 6 ,
26803 & LDAT = 9 )
26804
26805 EXPAVN = EXP(-AVN)
26806 K = 1
26807 A = 1.0D0
26808
26809 10 CONTINUE
26810 A = DT_RNDM(A)*A
26811 IF (A.GE.EXPAVN) THEN
26812 K = K+1
26813 GOTO 10
26814 ENDIF
26815 IDT_NPOISS = K-1
26816
26817 RETURN
26818 END
26819
26820*$ CREATE DT_SAMPXB.FOR
26821*COPY DT_SAMPXB
26822*
26823*===sampxb=============================================================*
26824*
26825 DOUBLE PRECISION FUNCTION DT_SAMPXB(X1,X2,B)
26826
26827************************************************************************
26828* Sampling from f(x)=1./SQRT(X**2+B**2) between x1 and x2. *
26829* Processed by S. Roesler, 6.5.95 *
26830************************************************************************
26831
26832 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26833 SAVE
26834 PARAMETER (TWO=2.0D0)
26835
26836 A1 = LOG(X1+SQRT(X1**2+B**2))
26837 A2 = LOG(X2+SQRT(X2**2+B**2))
26838 AN = A2-A1
26839 A = AN*DT_RNDM(A1)+A1
26840 BB = EXP(A)
26841 DT_SAMPXB = (BB**2-B**2)/(TWO*BB)
26842
26843 RETURN
26844 END
26845
26846*$ CREATE DT_SAMPEX.FOR
26847*COPY DT_SAMPEX
26848*
26849*===sampex=============================================================*
26850*
26851 DOUBLE PRECISION FUNCTION DT_SAMPEX(X1,X2)
26852
26853************************************************************************
26854* Sampling from f(x)=1./x between x1 and x2. *
26855* Processed by S. Roesler, 6.5.95 *
26856************************************************************************
26857
26858 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26859 SAVE
26860 PARAMETER (ONE=1.0D0)
26861
26862 R = DT_RNDM(X1)
26863 AL1 = LOG(X1)
26864 AL2 = LOG(X2)
26865 DT_SAMPEX = EXP((ONE-R)*AL1+R*AL2)
26866
26867 RETURN
26868 END
26869
26870*$ CREATE DT_SAMSQX.FOR
26871*COPY DT_SAMSQX
26872*
26873*===samsqx=============================================================*
26874*
26875 DOUBLE PRECISION FUNCTION DT_SAMSQX(X1,X2)
26876
26877************************************************************************
26878* Sampling from f(x)=1./x^0.5 between x1 and x2. *
26879* Processed by S. Roesler, 6.5.95 *
26880************************************************************************
26881
26882 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26883 SAVE
26884 PARAMETER (ONE=1.0D0)
26885
26886 R = DT_RNDM(X1)
26887 DT_SAMSQX = (R*SQRT(X2)+(ONE-R)*SQRT(X1))**2
26888
26889 RETURN
26890 END
26891
26892*$ CREATE DT_SAMPLW.FOR
26893*COPY DT_SAMPLW
26894*
26895*===samplw=============================================================*
26896*
26897 DOUBLE PRECISION FUNCTION DT_SAMPLW(XMIN,XMAX,B)
26898
26899************************************************************************
26900* Sampling from f(x)=1/x^b between x_min and x_max. *
26901* S. Roesler, 18.4.98 *
26902************************************************************************
26903
26904 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26905 SAVE
26906 PARAMETER (ONE=1.0D0)
26907
26908 R = DT_RNDM(B)
26909 IF (B.EQ.ONE) THEN
26910 DT_SAMPLW = EXP(R*LOG(XMAX)+(ONE-R)*LOG(XMIN))
26911 ELSE
26912 ONEMB = ONE-B
26913 DT_SAMPLW = (R*XMAX**ONEMB+(ONE-R)*XMIN**ONEMB)**(ONE/ONEMB)
26914 ENDIF
26915
26916 RETURN
26917 END
26918
26919*$ CREATE DT_BETREJ.FOR
26920*COPY DT_BETREJ
26921*
26922*===betrej=============================================================*
26923*
26924 DOUBLE PRECISION FUNCTION DT_BETREJ(GAM,ETA,XMIN,XMAX)
26925
26926 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26927 SAVE
26928
26929 PARAMETER ( LINP = 10 ,
26930 & LOUT = 6 ,
26931 & LDAT = 9 )
26932 PARAMETER (ONE=1.0D0)
26933
26934 IF (XMIN.GE.XMAX)THEN
26935 WRITE (LOUT,500) XMIN,XMAX
26936 500 FORMAT(1X,'DT_BETREJ: XMIN<XMAX execution stopped ',2F10.5)
26937 STOP
26938 ENDIF
26939
26940 10 CONTINUE
26941 XX = XMIN+(XMAX-XMIN)*DT_RNDM(ETA)
26942 BETMAX = XMIN**(GAM-ONE)*(ONE-XMIN)**(ETA-ONE)
26943 YY = BETMAX*DT_RNDM(XX)
26944 BETXX = XX**(GAM-ONE)*(ONE-XX)**(ETA-ONE)
26945 IF (YY.GT.BETXX) GOTO 10
26946 DT_BETREJ = XX
26947
26948 RETURN
26949 END
26950
26951*$ CREATE DT_DGAMRN.FOR
26952*COPY DT_DGAMRN
26953*
26954*===dgamrn=============================================================*
26955*
26956 DOUBLE PRECISION FUNCTION DT_DGAMRN(ALAM,ETA)
26957
26958************************************************************************
26959* Sampling from Gamma-distribution. *
26960* F(X) = ALAM**ETA*X**(ETA-1)*EXP(-ALAM*X) / GAM(ETA) *
26961* Processed by S. Roesler, 6.5.95 *
26962************************************************************************
26963
26964 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26965 SAVE
26966 PARAMETER (ZERO=0.0D0,TINY9=1.0D-9,ONE=1.0D0)
26967
26968 NCOU = 0
26969 N = INT(ETA)
26970 F = ETA-DBLE(N)
26971 IF (F.EQ.ZERO) GOTO 20
26972 10 R = DT_RNDM(F)
26973 NCOU = NCOU+1
26974 IF (NCOU.GE.11) GOTO 20
26975 IF (R.LT.F/(F+2.71828D0)) GOTO 30
26976 YYY = LOG(DT_RNDM(R)+TINY9)/F
26977 IF (ABS(YYY).GT.50.0D0) GOTO 20
26978 Y = EXP(YYY)
26979 IF (LOG(DT_RNDM(Y)+TINY9).GT.-Y) GOTO 10
26980 GOTO 40
26981 20 Y = 0.0D0
26982 GOTO 50
26983 30 Y = ONE-LOG(DT_RNDM(Y)+TINY9)
26984 IF (DT_RNDM(R).GT.Y**(F-ONE)) GOTO 10
26985 40 IF (N.EQ.0) GOTO 70
26986 50 Z = 1.0D0
26987 DO 60 I = 1,N
26988 60 Z = Z*DT_RNDM(Z)
26989 Y = Y-LOG(Z+TINY9)
26990 70 DT_DGAMRN = Y/ALAM
26991
26992 RETURN
26993 END
26994
26995*$ CREATE DT_DBETAR.FOR
26996*COPY DT_DBETAR
26997*
26998*===dbetar=============================================================*
26999*
27000 DOUBLE PRECISION FUNCTION DT_DBETAR(GAM,ETA)
27001
27002************************************************************************
27003* Sampling from Beta -distribution between 0.0 and 1.0 *
27004* F(X)=X**(GAM-1.)*(1.-X)**(ETA-1)*GAMM(ETA+GAM)/(GAMM(GAM)*GAMM(ETA))*
27005* Processed by S. Roesler, 6.5.95 *
27006************************************************************************
27007
27008 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27009 SAVE
27010
27011 Y = DT_DGAMRN(1.0D0,GAM)
27012 Z = DT_DGAMRN(1.0D0,ETA)
27013 DT_DBETAR = Y/(Y+Z)
27014
27015 RETURN
27016 END
27017
27018*$ CREATE DT_RANNOR.FOR
27019*COPY DT_RANNOR
27020*
27021*===rannor=============================================================*
27022*
27023 SUBROUTINE DT_RANNOR(X,Y)
27024
27025************************************************************************
27026* Sampling from Gaussian distribution. *
27027* Processed by S. Roesler, 6.5.95 *
27028************************************************************************
27029
27030 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27031 SAVE
27032 PARAMETER (TINY10=1.0D-10)
27033
27034 CALL DT_DSFECF(SFE,CFE)
27035 V = MAX(TINY10,DT_RNDM(X))
27036 A = SQRT(-2.D0*LOG(V))
27037 X = A*SFE
27038 Y = A*CFE
27039
27040 RETURN
27041 END
27042
27043*$ CREATE DT_DPOLI.FOR
27044*COPY DT_DPOLI
27045*
27046*===dpoli==============================================================*
27047*
27048 SUBROUTINE DT_DPOLI(CS,SI)
27049
27050 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27051 SAVE
27052
27053 U = DT_RNDM(CS)
27054 CS = DT_RNDM(U)
27055 IF (U.LT.0.5D0) CS=-CS
27056 SI = SQRT(1.0D0-CS*CS+1.0D-10)
27057
27058 RETURN
27059 END
27060
27061*$ CREATE DT_DSFECF.FOR
27062*COPY DT_DSFECF
27063*
27064*===dsfecf=============================================================*
27065*
27066 SUBROUTINE DT_DSFECF(SFE,CFE)
27067
27068 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27069 SAVE
27070 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27071
27072 1 CONTINUE
27073 X = DT_RNDM(SFE)
27074 Y = DT_RNDM(X)
27075 XX = X*X
27076 YY = Y*Y
27077 XY = XX+YY
27078 IF (XY.GT.ONE) GOTO 1
27079 CFE = (XX-YY)/XY
27080 SFE = TWO*X*Y/XY
27081 IF (DT_RNDM(X).LT.OHALF) SFE = -SFE
27082 RETURN
27083 END
27084
27085*$ CREATE DT_RACO.FOR
27086*COPY DT_RACO
27087*
27088*===raco===============================================================*
27089*
27090 SUBROUTINE DT_RACO(WX,WY,WZ)
27091
27092************************************************************************
27093* Direction cosines of random uniform (isotropic) direction in three *
27094* dimensional space *
27095* Processed by S. Roesler, 20.11.95 *
27096************************************************************************
27097
27098 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27099 SAVE
27100 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27101
27102 10 CONTINUE
27103 X = TWO*DT_RNDM(WX)-ONE
27104 Y = DT_RNDM(X)
27105 X2 = X*X
27106 Y2 = Y*Y
27107 IF (X2+Y2.GT.ONE) GOTO 10
27108
27109 CFE = (X2-Y2)/(X2+Y2)
27110 SFE = TWO*X*Y/(X2+Y2)
27111* z = 1/2 [ 1 + cos (theta) ]
27112 Z = DT_RNDM(X)
27113* 1/2 sin (theta)
27114 WZ = SQRT(Z*(ONE-Z))
27115 WX = TWO*WZ*CFE
27116 WY = TWO*WZ*SFE
27117 WZ = TWO*Z-ONE
27118
27119 RETURN
27120 END
27121
27122************************************************************************
27123* *
27124* 6) Special functions, algorithms and service routines *
27125* *
27126************************************************************************
27127*$ CREATE DT_YLAMB.FOR
27128*COPY DT_YLAMB
27129*
27130*===ylamb==============================================================*
27131*
27132 DOUBLE PRECISION FUNCTION DT_YLAMB(X,Y,Z)
27133
27134************************************************************************
27135* *
27136* auxiliary function for three particle decay mode *
27137* (standard LAMBDA**(1/2) function) *
27138* *
27139* Adopted from an original version written by R. Engel. *
27140* This version dated 12.12.94 is written by S. Roesler. *
27141************************************************************************
27142
27143 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27144 SAVE
27145
27146 YZ = Y-Z
27147 XLAM = X*X-2.D0*X*(Y+Z)+YZ*YZ
27148 IF (XLAM.LE.0.D0) XLAM = ABS(XLAM)
27149 DT_YLAMB = SQRT(XLAM)
27150
27151 RETURN
27152 END
27153
27154*$ CREATE DT_SORT.FOR
27155*COPY DT_SORT
27156*
27157*===sort1==============================================================*
27158*
27159 SUBROUTINE DT_SORT(A,N,I0,I1,MODE)
27160
27161************************************************************************
27162* This subroutine sorts entries in A in increasing/decreasing order *
27163* of A(3,i). *
27164* MODE = 1 increasing in A(3,i=1..N) *
27165* = 2 decreasing in A(3,i=1..N) *
27166* This version dated 21.04.95 is revised by S. Roesler *
27167************************************************************************
27168
27169 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27170 SAVE
27171
27172 DIMENSION A(3,N)
27173
27174 M = I1
27175 10 CONTINUE
27176 M = I1-1
27177 IF (M.LE.0) RETURN
27178 L = 0
27179 DO 20 I=I0,M
27180 J = I+1
27181 IF (MODE.EQ.1) THEN
27182 IF (A(3,I).LE.A(3,J)) GOTO 20
27183 ELSE
27184 IF (A(3,I).GE.A(3,J)) GOTO 20
27185 ENDIF
27186 B = A(3,I)
27187 C = A(1,I)
27188 D = A(2,I)
27189 A(3,I) = A(3,J)
27190 A(2,I) = A(2,J)
27191 A(1,I) = A(1,J)
27192 A(3,J) = B
27193 A(1,J) = C
27194 A(2,J) = D
27195 L = 1
27196 20 CONTINUE
27197 IF (L.EQ.1) GOTO 10
27198
27199 RETURN
27200 END
27201
27202*$ CREATE DT_SORT1.FOR
27203*COPY DT_SORT1
27204*
27205*===sort1==============================================================*
27206*
27207 SUBROUTINE DT_SORT1(A,IDX,N,I0,I1,MODE)
27208
27209************************************************************************
27210* This subroutine sorts entries in A in increasing/decreasing order *
27211* of A(i). *
27212* MODE = 1 increasing in A(i=1..N) *
27213* = 2 decreasing in A(i=1..N) *
27214* This version dated 21.04.95 is revised by S. Roesler *
27215************************************************************************
27216
27217 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27218 SAVE
27219
27220 DIMENSION A(N),IDX(N)
27221
27222 M = I1
27223 10 CONTINUE
27224 M = I1-1
27225 IF (M.LE.0) RETURN
27226 L = 0
27227 DO 20 I=I0,M
27228 J = I+1
27229 IF (MODE.EQ.1) THEN
27230 IF (A(I).LE.A(J)) GOTO 20
27231 ELSE
27232 IF (A(I).GE.A(J)) GOTO 20
27233 ENDIF
27234 B = A(I)
27235 A(I) = A(J)
27236 A(J) = B
27237 IX = IDX(I)
27238 IDX(I) = IDX(J)
27239 IDX(J) = IX
27240 L = 1
27241 20 CONTINUE
27242 IF (L.EQ.1) GOTO 10
27243
27244 RETURN
27245 END
27246
27247*$ CREATE DT_XTIME.FOR
27248*COPY DT_XTIME
27249*
27250*===xtime==============================================================*
27251*
27252 SUBROUTINE DT_XTIME
27253
27254 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27255 SAVE
27256 PARAMETER ( LINP = 10 ,
27257 & LOUT = 6 ,
27258 & LDAT = 9 )
27259
27260 CHARACTER DAT*9,TIM*11
27261
27262 DAT = ' '
27263 TIM = ' '
27264C CALL GETDAT(IYEAR,IMONTH,IDAY)
27265C CALL GETTIM(IHOUR,IMINUT,ISECND,IHSCND)
27266
27267C CALL DATE(DAT)
27268C CALL TIME(TIM)
27269C WRITE(LOUT,1000) DAT,TIM
27270 1000 FORMAT(/,2X,'Date: ',A9,3X,'Time: ',A11,/)
27271
27272 RETURN
27273 END
27274
27275************************************************************************
27276* *
27277* 7) Random number generator package *
27278* *
27279* THIS IS A PACKAGE CONTAINING A RANDOM NUMBER GENERATOR AND *
27280* SERVICE ROUTINES. *
27281* THE ALGORITHM IS FROM *
27282* 'TOWARD A UNVERSAL RANDOM NUMBER GENERATOR' *
27283* G.MARSAGLIA, A.ZAMAN ; FSU-SCRI-87-50 *
27284* IMPLEMENTATION BY K. HAHN DEC. 88, *
27285* THIS GENERATOR SHOULD NOT DEPEND ON THE HARD WARE ( IF A REAL HAS *
27286* AT LEAST 24 SIGNIFICANT BITS IN INTERNAL REPRESENTATION ), *
27287* THE PERIOD IS ABOUT 2**144, *
27288* TIME FOR ONE CALL AT IBM-XT IS ABOUT 0.7 MILLISECONDS, *
27289* THE PACKAGE CONTAINS *
27290* FUNCTION DT_RNDM(I) : GENERATOR *
27291* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB4): INITIALIZATION *
27292* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) : PUT SEED TO GENERATOR *
27293* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) : TAKE SEED FROM GENERATOR *
27294* SUBROUTINE DT_RNDMTE(IO) : TEST OF GENERATOR *
27295*--- *
27296* FUNCTION DT_RNDM(I) *
27297* GIVES UNIFORMLY DISTRIBUTED RANDOM NUMBERS IN (0..1) *
27298* I - DUMMY VARIABLE, NOT USED *
27299* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1) *
27300* INITIALIZES THE GENERATOR, MUST BE CALLED BEFORE USING DT_RNDM *
27301* NA1,NA2,NA3,NB1 - VALUES FOR INITIALIZING THE GENERATOR *
27302* NA? MUST BE IN 1..178 AND NOT ALL 1 *
27303* 12,34,56 ARE THE STANDARD VALUES *
27304* NB1 MUST BE IN 1..168 *
27305* 78 IS THE STANDARD VALUE *
27306* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) *
27307* PUTS SEED TO GENERATOR ( BRINGS GENERATOR IN THE SAME STATUS *
27308* AS AFTER THE LAST DT_RNDMOU CALL ) *
27309* U(97),C,CD,CM,I,J - SEED VALUES AS TAKEN FROM DT_RNDMOU *
27310* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) *
27311* TAKES SEED FROM GENERATOR *
27312* U(97),C,CD,CM,I,J - SEED VALUES *
27313* SUBROUTINE DT_RNDMTE(IO) *
27314* TEST OF THE GENERATOR *
27315* IO - DEFINES OUTPUT *
27316* = 0 OUTPUT ONLY IF AN ERROR IS DETECTED *
27317* = 1 OUTPUT INDEPENDEND ON AN ERROR *
27318* DT_RNDMTE USES DT_RNDMIN AND DT_RNDMOU TO BRING GENERATOR TO *
27319* SAME STATUS *
27320* AS BEFORE CALL OF DT_RNDMTE *
27321************************************************************************
27322*$ CREATE DT_RNDM.FOR
27323*COPY DT_RNDM
27324*
839efe5b 27325c$$$*===rndm===============================================================*
27326c$$$*
27327c$$$ DOUBLE PRECISION FUNCTION DT_RNDM(VDUMMY)
27328c$$$
27329c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27330c$$$ SAVE
27331c$$$
27332c$$$* random number generator
27333c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27334c$$$
27335c$$$* counter of calls to random number generator
27336c$$$* uncomment if needed
27337c$$$C COMMON /DTRNCT/ IRNCT0,IRNCT1
27338c$$$C LOGICAL LFIRST
27339c$$$C DATA LFIRST /.TRUE./
27340c$$$
27341c$$$* counter of calls to random number generator
27342c$$$* uncomment if needed
27343c$$$C IF (LFIRST) THEN
27344c$$$C IRNCT0 = 0
27345c$$$C IRNCT1 = 0
27346c$$$C LFIRST = .FALSE.
27347c$$$C ENDIF
27348c$$$ 100 CONTINUE
27349c$$$ DT_RNDM = U(I)-U(J)
27350c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27351c$$$ U(I) = DT_RNDM
27352c$$$ I = I-1
27353c$$$ IF ( I.EQ.0 ) I = 97
27354c$$$ J = J-1
27355c$$$ IF ( J.EQ.0 ) J = 97
27356c$$$ C = C-CD
27357c$$$ IF ( C.LT.0.0D0 ) C = C+CM
27358c$$$ DT_RNDM = DT_RNDM-C
27359c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27360c$$$
27361c$$$ IF ((DT_RNDM.EQ.0.D0).OR.(DT_RNDM.EQ.1.D0)) GOTO 100
27362c$$$
27363c$$$* counter of calls to random number generator
27364c$$$* uncomment if needed
27365c$$$C IRNCT0 = IRNCT0+1
27366c$$$
27367c$$$ RETURN
27368c$$$ END
27369c$$$
27370c$$$*$ CREATE DT_RNDMST.FOR
27371c$$$*COPY DT_RNDMST
27372c$$$*
27373c$$$*===rndmst=============================================================*
27374c$$$*
27375c$$$ SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1)
27376c$$$
27377c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27378c$$$ SAVE
27379c$$$
27380c$$$* random number generator
27381c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27382c$$$
27383c$$$ MA1 = NA1
27384c$$$ MA2 = NA2
27385c$$$ MA3 = NA3
27386c$$$ MB1 = NB1
27387c$$$ I = 97
27388c$$$ J = 33
27389c$$$ DO 20 II2 = 1,97
27390c$$$ S = 0
27391c$$$ T = 0.5D0
27392c$$$ DO 10 II1 = 1,24
27393c$$$ MAT = MOD(MOD(MA1*MA2,179)*MA3,179)
27394c$$$ MA1 = MA2
27395c$$$ MA2 = MA3
27396c$$$ MA3 = MAT
27397c$$$ MB1 = MOD(53*MB1+1,169)
27398c$$$ IF ( MOD(MB1*MAT,64).GE.32 ) S = S+T
27399c$$$ 10 T = 0.5D0*T
27400c$$$ 20 U(II2) = S
27401c$$$ C = 362436.0D0/16777216.0D0
27402c$$$ CD = 7654321.0D0/16777216.0D0
27403c$$$ CM = 16777213.0D0/16777216.0D0
27404c$$$ RETURN
27405c$$$ END
27406c$$$
27407c$$$*$ CREATE DT_RNDMIN.FOR
27408c$$$*COPY DT_RNDMIN
27409c$$$*
27410c$$$*===rndmin=============================================================*
27411c$$$*
27412c$$$ SUBROUTINE DT_RNDMIN(UIN,CIN,CDIN,CMIN,IIN,JIN)
27413c$$$
27414c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27415c$$$ SAVE
27416c$$$
27417c$$$* random number generator
27418c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27419c$$$
27420c$$$ DIMENSION UIN(97)
27421c$$$
27422c$$$ DO 10 KKK = 1,97
27423c$$$ 10 U(KKK) = UIN(KKK)
27424c$$$ C = CIN
27425c$$$ CD = CDIN
27426c$$$ CM = CMIN
27427c$$$ I = IIN
27428c$$$ J = JIN
27429c$$$
27430c$$$ RETURN
27431c$$$ END
27432c$$$
27433c$$$*$ CREATE DT_RNDMOU.FOR
27434c$$$*COPY DT_RNDMOU
27435c$$$*
27436c$$$*===rndmou=============================================================*
27437c$$$*
27438c$$$ SUBROUTINE DT_RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
27439c$$$
27440c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27441c$$$ SAVE
27442c$$$
27443c$$$* random number generator
27444c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27445c$$$
27446c$$$ DIMENSION UOUT(97)
27447c$$$
27448c$$$ DO 10 KKK = 1,97
27449c$$$ 10 UOUT(KKK) = U(KKK)
27450c$$$ COUT = C
27451c$$$ CDOUT = CD
27452c$$$ CMOUT = CM
27453c$$$ IOUT = I
27454c$$$ JOUT = J
27455c$$$
27456c$$$ RETURN
27457c$$$ END
27458c$$$
27459c$$$*$ CREATE DT_RNDMTE.FOR
27460c$$$*COPY DT_RNDMTE
27461c$$$*
27462c$$$*===rndmte=============================================================*
27463c$$$*
27464c$$$ SUBROUTINE DT_RNDMTE(IO)
27465c$$$
27466c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27467c$$$ SAVE
27468c$$$
27469c$$$ DIMENSION UU(97),U(6),X(6),D(6)
27470c$$$ DATA U / 6533892.D0, 14220222.D0, 7275067.D0, 6172232.D0,
27471c$$$ +8354498.D0, 10633180.D0/
27472c$$$
27473c$$$ CALL DT_RNDMOU(UU,CC,CCD,CCM,II,JJ)
27474c$$$ CALL DT_RNDMST(12,34,56,78)
27475c$$$ DO 10 II1 = 1,20000
27476c$$$ 10 XX = DT_RNDM(XX)
27477c$$$ SD = 0.0D0
27478c$$$ DO 20 II2 = 1,6
27479c$$$ X(II2) = 4096.D0*(4096.D0*DT_RNDM(SD))
27480c$$$ D(II2) = X(II2)-U(II2)
27481c$$$ 20 SD = SD+D(II2)
27482c$$$ CALL DT_RNDMIN(UU,CC,CCD,CCM,II,JJ)
27483c$$$**sr 24.01.95
27484c$$$C IF ( IO.EQ. 1.OR. SD.NE.0. 0) WRITE(6,500) (U(I),X(I),D(I),I=1,6)
27485c$$$ IF ((IO.EQ.1).OR.(SD.NE.0.0)) THEN
27486c$$$C WRITE(6,1000)
27487c$$$ 1000 FORMAT(/,/,1X,'DT_RNDMTE: Test of random-number generator...',
27488c$$$ & ' passed')
27489c$$$ ENDIF
27490c$$$**
27491c$$$ RETURN
27492c$$$ 500 FORMAT(' === TEST OF THE RANDOM-GENERATOR ===',/,
27493c$$$ &' EXPECTED VALUE CALCULATED VALUE DIFFERENCE',/, 6(F17.
27494c$$$ &1,F20.1,F15.3,/), ' === END OF TEST ;',
27495c$$$ &' GENERATOR HAS THE SAME STATUS AS BEFORE CALLING DT_RNDMTE')
27496c$$$ END
9aaba0d6 27497*
27498*$ CREATE PHO_RNDM.FOR
27499*COPY PHO_RNDM
27500*
27501*===pho_rndm===========================================================*
27502*
27503 DOUBLE PRECISION FUNCTION PHO_RNDM(DUMMY)
27504
27505 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27506 SAVE
27507
27508 PHO_RNDM = DT_RNDM(DUMMY)
27509
27510 RETURN
27511 END
27512
27513*$ CREATE PYR.FOR
27514*COPY PYR
27515*
27516*===pyr================================================================*
27517*
27518 DOUBLE PRECISION FUNCTION PYR(IDUMMY)
27519
27520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27521 SAVE
27522
27523 DUMMY = DBLE(IDUMMY)
27524 PYR = DT_RNDM(DUMMY)
27525
27526 RETURN
27527 END
27528
27529*$ CREATE DT_TITLE.FOR
27530*COPY DT_TITLE
27531*
27532*===title==============================================================*
27533*
27534 SUBROUTINE DT_TITLE
27535
27536 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27537 SAVE
27538 PARAMETER ( LINP = 10 ,
27539 & LOUT = 6 ,
27540 & LDAT = 9 )
27541
27542 CHARACTER*6 CVERSI
27543 CHARACTER*11 CCHANG
27544 DATA CVERSI,CCHANG /'3.0-5 ','08 Jan 2007'/
27545
27546 CALL DT_XTIME
27547 WRITE(LOUT,1000) CVERSI,CCHANG
27548 1000 FORMAT(1X,'+-------------------------------------------------',
27549 & '----------------------+',/,
27550 & 1X,'|',71X,'|',/,
27551 & 1X,'|',26X,'DPMJET version ',A6,24X,'|',/,
27552 & 1X,'|',71X,'|',/,
27553 & 1X,'|',22X,'(Last change: ',A11,')',23X,'|',/,
27554 & 1X,'|',71X,'|',/,
27555 & 1X,'|',12X,'Authors: Stefan Roesler (CERN)',27X,'|',/,
27556 & 1X,'|',21X,'Ralph Engel (FZ Karlsruhe)',19X,'|',/,
27557 & 1X,'|',21X,'Johannes Ranft (Siegen Univ.)',19X,'|',/,
27558 & 1X,'|',71X,'|',/,
27559 & 1X,'|',12X,'http://home.cern.ch/~sroesler/dpmjet3.html',
27560 & 17X,'|',/,
27561 & 1X,'|',71X,'|',/,
27562 & 1X,'+-------------------------------------------------',
27563 & '----------------------+',/,
27564 & 1X,'| Please send suggestions, bug reports, etc. to: ',
27565 & 'Stefan.Roesler@cern.ch |',/,
27566 & 1X,'+-------------------------------------------------',
27567 & '----------------------+',/)
27568
27569 RETURN
27570 END
27571
27572*$ CREATE DT_EVTINI.FOR
27573*COPY DT_EVTINI
27574*
27575*===evtini=============================================================*
27576*
27577 SUBROUTINE DT_EVTINI
27578
27579************************************************************************
27580* Initialization of DTEVT1. *
27581* This version dated 15.01.94 is written by S. Roesler *
27582************************************************************************
27583
27584 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27585 SAVE
27586 PARAMETER ( LINP = 10 ,
27587 & LOUT = 6 ,
27588 & LDAT = 9 )
27589
27590* event history
27591 PARAMETER (NMXHKK=200000)
27592 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27593 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27594 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27595* extended event history
27596 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
27597 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
27598 & IHIST(2,NMXHKK)
27599* event flag
27600 COMMON /DTEVNO/ NEVENT,ICASCA
27601 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
27602* emulsion treatment
27603 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
27604 & NCOMPO,IEMUL
27605
27606* initialization of DTEVT1/DTEVT2
27607 NEND = NHKK
27608 IF (NEVENT.EQ.1) NEND = NMXHKK
27609 NHKK = 0
27610 NEVHKK = NEVENT
27611 DO 1 I=1,NEND
27612 ISTHKK(I) = 0
27613 IDHKK(I) = 0
27614 JMOHKK(1,I) = 0
27615 JMOHKK(2,I) = 0
27616 JDAHKK(1,I) = 0
27617 JDAHKK(2,I) = 0
27618 IDRES(I) = 0
27619 IDXRES(I) = 0
27620 NOBAM(I) = 0
27621 IDCH(I) = 0
27622 IHIST(1,I) = 0
27623 IHIST(2,I) = 0
27624 DO 2 J=1,4
27625 PHKK(J,I) = 0.0D0
27626 VHKK(J,I) = 0.0D0
27627 WHKK(J,I) = 0.0D0
27628 2 CONTINUE
27629 PHKK(5,I) = 0.0D0
27630 1 CONTINUE
27631 DO 3 I=1,10
27632 NPOINT(I) = 0
27633 3 CONTINUE
27634 CALL DT_CHASTA(-1)
27635
27636C* initialization of DTLTRA
27637C IF (NCOMPO.GT.0) CALL DT_LTINI(ID,EPN,PPN,ECM)
27638
27639 RETURN
27640 END
27641
27642*$ CREATE DT_STATIS.FOR
27643*COPY DT_STATIS
27644*
27645*===statis=============================================================*
27646*
27647 SUBROUTINE DT_STATIS(MODE)
27648
27649************************************************************************
27650* Initialization and output of run-statistics. *
27651* MODE = 1 initialization *
27652* = 2 output *
27653* This version dated 23.01.94 is written by S. Roesler *
27654************************************************************************
27655
27656 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27657 SAVE
27658 PARAMETER ( LINP = 10 ,
27659 & LOUT = 6 ,
27660 & LDAT = 9 )
27661 PARAMETER (TINY3=1.0D-3)
27662
27663* statistics
27664 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
27665 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
27666 & ICEVTG(8,0:30)
27667* rejection counter
27668 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
27669 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
27670 & IREXCI(3),IRDIFF(2),IRINC
27671* central particle production, impact parameter biasing
27672 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
27673* various options for treatment of partons (DTUNUC 1.x)
27674* (chain recombination, Cronin,..)
27675 LOGICAL LCO2CR,LINTPT
27676 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
27677 & LCO2CR,LINTPT
27678* nucleon-nucleon event-generator
27679 CHARACTER*8 CMODEL
27680 LOGICAL LPHOIN
27681 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
27682* flags for particle decays
27683 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
27684 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
27685 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
27686* diquark-breaking mechanism
27687 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
27688
27689 DIMENSION PP(4),PT(4)
27690
27691 GOTO (1,2) MODE
27692
27693* initialization
27694 1 CONTINUE
27695
27696* initialize statistics counter
27697 ICREQU = 0
27698 ICSAMP = 0
27699 ICCPRO = 0
27700 ICDPR = 0
27701 ICDTA = 0
27702 ICRJSS = 0
27703 ICVV2S = 0
27704 DO 10 I=1,9
27705 ICRES(I) = 0
27706 ICCHAI(1,I) = 0
27707 ICCHAI(2,I) = 0
27708 10 CONTINUE
27709* initialize rejection counter
27710 IRPT = 0
27711 IRHHA = 0
27712 LOMRES = 0
27713 LOBRES = 0
27714 IRFRAG = 0
27715 IREVT = 0
27716 IRRES(1) = 0
27717 IRRES(2) = 0
27718 IRCHKI(1) = 0
27719 IRCHKI(2) = 0
27720 IRCRON(1) = 0
27721 IRCRON(2) = 0
27722 IRCRON(3) = 0
27723 IRDIFF(1) = 0
27724 IRDIFF(2) = 0
27725 IRINC = 0
27726 DO 11 I=1,5
27727 ICDIFF(I) = 0
27728 11 CONTINUE
27729 DO 12 I=1,8
27730 DO 13 J=0,30
27731 ICEVTG(I,J) = 0
27732 13 CONTINUE
27733 12 CONTINUE
27734
27735 RETURN
27736
27737* output
27738 2 CONTINUE
27739
27740* statistics counter
27741 WRITE(LOUT,1000)
27742 1000 FORMAT(/,/,1X,'STATIS:',20X,'statistics of the run',/,
27743 & 28X,'---------------------')
be6523b4 27744 IF (ICREQU.GT.0) THEN
9aaba0d6 27745 WRITE(LOUT,1001) ICREQU,ICSAMP,DBLE(ICSAMP)/DBLE(ICREQU)
27746 1001 FORMAT(/,1X,'number of events requested / sampled',13X,
27747 & I8,' / ',I8,/,1X,'number of samp. evts per requested ',
27748 & 'event',11X,F9.1)
be6523b4 27749 ENDIF
9aaba0d6 27750 IF (ICDIFF(1).NE.0) THEN
27751 WRITE(LOUT,1009) ICDIFF
27752 1009 FORMAT(/,1X,'diffractive events: total ',I8,/,49X,
27753 & 'low mass high mass',/,24X,'single diffraction',
27754 & 7X,I8,4X,I8,/,24X,'double diffraction',7X,I8,4X,I8)
27755 ENDIF
be6523b4 27756 IF (ICENTR.GT.0.AND.ICSAMP.GT.0.AND.ICCPRO.GT.0) THEN
9aaba0d6 27757 WRITE(LOUT,1002) DBLE(ICCPRO)/DBLE(ICSAMP),
27758 & DBLE(ICSAMP)/DBLE(ICCPRO)
27759 1002 FORMAT(/,1X,'central production:',/,2X,'mean number',
27760 & ' of sampled Glauber-events per event',9X,F9.1,/,
27761 & 2X,'fraction of production cross section',21X,F10.6)
27762 ENDIF
be6523b4 27763 IF (ICSAMP.GT.0) THEN
9aaba0d6 27764 WRITE(LOUT,1003) DBLE(ICDPR)/DBLE(ICSAMP),
27765 & DBLE(ICDTA)/DBLE(ICSAMP)
27766 1003 FORMAT(/,54X,'proj. targ.',/,1X,'average number of wounded',
27767 & ' nucleons after x-sampling',2(4X,F6.2))
be6523b4 27768 ENDIF
9aaba0d6 27769
27770 IF (MCGENE.EQ.1) THEN
be6523b4 27771 IF (ICSAMP.GT.0) THEN
9aaba0d6 27772 WRITE(LOUT,1004) DBLE(ICRJSS)/DBLE(ICSAMP)
27773 1004 FORMAT(/,1X,'mean number of sea-sea chain rejections per',
27774 & ' event',3X,F9.1)
27775 IF (ISICHA.EQ.1) THEN
27776 WRITE(LOUT,1005) DBLE(ICVV2S)/DBLE(ICSAMP)
27777 1005 FORMAT(/,1X,'Reggeon contribution:',/,1X,'mean number ',
27778 & 'of single chains per event',13X,F9.1)
27779 ENDIF
be6523b4 27780 ENDIF
27781 IF (ICSAMP.GT.0.AND.ICREQU.GT.0) THEN
9aaba0d6 27782 WRITE(LOUT,1006)
27783 1006 FORMAT(/,1X,'chain system statistics: (per event)',/,
27784 & 23X,'mean number of chains mean number of chains',/,
27785 & 23X,'sampled hadronized having mass of a reso.')
27786 WRITE(LOUT,1007) (DBLE(ICCHAI(1,J))/(2.0D0*DBLE(ICSAMP)),
27787 & DBLE(ICCHAI(2,J))/(2.0D0*DBLE(ICREQU)),
27788 & DBLE(ICRES(J))/(2.0D0*DBLE(ICREQU)),J=1,8),
27789 & DBLE(ICCHAI(2,9))/MAX(DBLE(ICCHAI(1,9)),TINY3)
27790 1007 FORMAT(1X,'sea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27791 & 1X,'disea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27792 & 1X,'sea - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27793 & 1X,'sea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27794 & 1X,'disea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27795 & 1X,'valence - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27796 & 1X,'valence - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27797 & 1X,'valence - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27798 & 1X,'fused chains ',18X,F4.1,17X,F4.1,/)
27799 WRITE(LOUT,1008)
27800 & (DBLE(IRCRON(I))/MAX(DBLE(IRCRON(1)),TINY3),I=2,3),
27801 & DBLE(IRPT)/DBLE(ICREQU),(DBLE(IRRES(I))/DBLE(ICREQU),I=1,2),
27802 & DBLE(LOMRES)/DBLE(ICREQU),DBLE(LOBRES)/DBLE(ICREQU),
27803 & (DBLE(IRCHKI(I))/DBLE(ICREQU),I=1,2),
27804 & (DBLE(IRDIFF(I))/DBLE(ICREQU),I=1,2),
27805 & DBLE(IRHHA)/DBLE(ICREQU),
27806 & DBLE(IRFRAG)/DBLE(ICREQU),DBLE(IREVT)/DBLE(ICREQU),
27807 & (DBLE(IREXCI(I))/DBLE(ICREQU),I=1,2),IREXCI(3)
27808 1008 FORMAT(/,1X,'Rejection counter: (NEVT = no. of events)',/,/,
27809 & 1X,'Cronin-effect (CRONIN)',15X,'IRCRON(2)/IRCRON(1) = ',
27810 & F7.2,/,38X,'IRCRON(3)/IRCRON(1) = ',F7.2,/,1X,
27811 & 'Intrins. p_t (GETSPT)',21X,'IRPT /NEVT = ',F7.2,/,
27812 & 1X,'Chain mass corr. for resonances (EVTRES)',2X,
27813 & 'IRRES(1) /NEVT = ',F7.2,/,33X,'(CH2RES) IRRES(2) /',
27814 & 'NEVT = ',F7.2,/,43X,'LOMRES /NEVT = ',F7.2,/,
27815 & 43X,'LOBRES /NEVT = ',F7.2,/,1X,'Kinem. corr. of',
27816 & ' 2-chain systems (CHKINE) IRCHKI(1)/NEVT = ',F7.2,/,
27817 & 43X,'IRCHKI(2)/NEVT = ',F7.2,/,1X,'Diffraction',31X,
27818 & 'IRDIFF(1)/NEVT = ',F7.2,/,43X,'IRDIFF(2)/NEVT = ',
27819 & F7.2,/,1X,'Total no. of rej.',
27820 & ' in chain-systems treatment (GETCSY)',/,43X,
27821 & 'IRHHA /NEVT = ',F7.2,/,1X,'Fragmentation (EVTFRA)',
27822 & ' (not yet used!)',4X,'IRFRAG /NEVT = ',F7.2,/,
27823 & 1X,'Total no. of rej. in DPM-treatment of one event',
27824 & ' (EVENTA)',/,43X,'IREVT /NEVT = ',F7.2,/,1X,
27825 & 'Treatment of final nucleon conf.',10X,'IREXCI(1)/NEVT = '
27826 & ,F7.2,/,43X,'IREXCI(2)/NEVT = ',F7.2,/,48X,
27827 & 'IREXCI(3) = ',I5,/)
be6523b4 27828 ENDIF
9aaba0d6 27829 ELSEIF (MCGENE.EQ.2) THEN
27830 WRITE(LOUT,1010) ELOJET
27831 1010 FORMAT(/,/,1X,'PHOJET-treatment of chain systems above ',
27832 & F4.1,' GeV')
27833 WRITE(LOUT,1011)
27834 1011 FORMAT(/,1X,'1. chain system statistics - total numbers:',/,
27835 & 30X,'--------------',/,/,12X,'s-s',5X,'d-s',5X,'s-d',
27836 & 5X,'s-v',5X,'d-v',5X,'v-s',5X,'v-d',5X,'v-v')
27837 WRITE(LOUT,1012) ((ICEVTG(I,J),I=1,8),J=0,1),
27838 & (INT(ICCHAI(2,I)/2.0D0),I=1,8),
27839 & (ICEVTG(I,2),I=1,8),(ICEVTG(I,29),I=1,8),
27840 & ((ICEVTG(I,J),I=1,8),J=3,7),
27841 & ((ICEVTG(I,J),I=1,8),J=19,21),
27842 & (ICEVTG(I,8),I=1,8),
27843 & ((ICEVTG(I,J),I=1,8),J=22,24),
27844 & (ICEVTG(I,9),I=1,8),
27845 & ((ICEVTG(I,J),I=1,8),J=25,28),
27846 & ((ICEVTG(I,J),I=1,8),J=10,18)
27847 1012 FORMAT(/,1X,'req.to.',8I8,/,/,1X,'low rq.',8I8,/,1X,'low ac.',
27848 & 8I8,/,/,1X,'PHOJET ',8I8,/,' sngl ',8I8,/,/,
27849 & ' no-dif.',8I8,/,
27850 & ' el-sca.',8I8,/,' qel-sc.',8I8,/,' dbl-Po.',8I8,/,
27851 & ' diff-1 ',8I8,/,' low ',8I8,/,' high ',8I8,/,
27852 & ' h-diff',8I8,/,' diff-2 ',8I8,/,' low ',8I8,/,
27853 & ' high ',8I8,/,' h-diff',8I8,/,' dbl-di.',8I8,/,
27854 & ' lo-lo ',8I8,/,' hi-hi ',8I8,/,' lo-hi ',8I8,/,
27855 & ' hi-lo ',8I8,/,
27856 & ' dir-ga.',8I8,/,/,' dir-1 ',8I8,/,' dir-2 ',8I8,/,
27857 & ' dbl-dir',8I8,/,' s-Pom. ',8I8,/,' h-Pom. ',8I8,/,
27858 & ' s-Reg. ',8I8,/,' enh-trg',8I8,/,' enh-log',8I8)
27859 WRITE(LOUT,1013)
27860 1013 FORMAT(/,1X,'2. chain system statistics -',
27861 & ' mean numbers per evt:',/,30X,'---------------------',
27862 & /,/,16X,'s-s',7X,'d-s',7X,'s-d')
be6523b4 27863 IF (ICSAMP.GT.0) THEN
9aaba0d6 27864 WRITE(LOUT,1014)
27865 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=0,1),
27866 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=1,3),
27867 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=2,18)
27868 1014 FORMAT(/,1X,'req.to. ',3E10.2,/,/,1X,'low rq. ',3E10.2,/,
27869 & 1X,'low ac. ',3E10.2,/,/,1X,'PHOJET ',3E10.2,/,/,
27870 & ' no-dif. ',3E10.2,/,' el-sca. ',3E10.2,/,
27871 & ' qel-sc. ',3E10.2,/,' dbl-Po. ',3E10.2,/,
27872 & ' diff-1 ',3E10.2,/,' diff-2 ',3E10.2,/,
27873 & ' dbl-di. ',3E10.2,/,' dir-ga. ',3E10.2,/,/,
27874 & ' dir-1 ',3E10.2,/,' dir-2 ',3E10.2,/,
27875 & ' dbl-dir ',3E10.2,/,' s-Pom. ',3E10.2,/,
27876 & ' h-Pom. ',3E10.2,/,' s-Reg. ',3E10.2,/,
27877 & ' enh-trg ',3E10.2,/,' enh-log ',3E10.2)
be6523b4 27878 ENDIF
9aaba0d6 27879 WRITE(LOUT,1015)
27880 1015 FORMAT(/,16X,'s-v',7X,'d-v',7X,'v-s',7X,'v-d',7X,'v-v')
be6523b4 27881 IF (ICSAMP.GT.0) THEN
9aaba0d6 27882 WRITE(LOUT,1016)
27883 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=0,1),
27884 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=4,8),
27885 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=2,18)
27886 1016 FORMAT(/,1X,'req.to. ',5E10.2,/,/,1X,'low rq. ',5E10.2,/,
27887 & 1X,'low ac. ',5E10.2,/,/,1X,'PHOJET ',5E10.2,/,/,
27888 & ' no-dif. ',5E10.2,/,' el-sca. ',5E10.2,/,
27889 & ' qel-sc. ',5E10.2,/,' dbl-Po. ',5E10.2,/,
27890 & ' diff-1 ',5E10.2,/,' diff-2 ',5E10.2,/,
27891 & ' dbl-di. ',5E10.2,/,' dir-ga. ',5E10.2,/,/,
27892 & ' dir-1 ',5E10.2,/,' dir-2 ',5E10.2,/,
27893 & ' dbl-dir ',5E10.2,/,' s-Pom. ',5E10.2,/,
27894 & ' h-Pom. ',5E10.2,/,' s-Reg. ',5E10.2,/,
27895 & ' enh-trg ',5E10.2,/,' enh-log ',5E10.2)
be6523b4 27896 ENDIF
9aaba0d6 27897
27898 ENDIF
27899 CALL DT_CHASTA(1)
27900
27901 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
27902 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
27903 WRITE(LOUT,*)'YGS1S,YGS2S,YUS1S,YUS2S',
27904 & DBRKA(1,1)+DBRKA(2,1),DBRKA(1,2)+DBRKA(2,2),
27905 & DBRKA(1,3)+DBRKA(2,3),DBRKA(1,4)+DBRKA(2,4)
27906 WRITE(LOUT,*)'YGS1R,YGS2R,YUS1R,YUS2R',
27907 & DBRKR(1,1)+DBRKR(2,1),DBRKR(1,2)+DBRKR(2,2),
27908 & DBRKR(1,3)+DBRKR(2,3),DBRKR(1,4)+DBRKR(2,4)
27909 WRITE(LOUT,*)'YGSA1S,YGSA2S,YUSA1S,YUSA2S',
27910 & DBRKA(1,5)+DBRKA(2,5),DBRKA(1,6)+DBRKA(2,6),
27911 & DBRKA(1,7)+DBRKA(2,7),DBRKA(1,8)+DBRKA(2,8)
27912 WRITE(LOUT,*)'YGSA1R,YGSA2R,YUSA1R,YUSA2R',
27913 & DBRKR(1,5)+DBRKR(2,5),DBRKR(1,6)+DBRKR(2,6),
27914 & DBRKR(1,7)+DBRKR(2,7),DBRKR(1,8)+DBRKR(2,8)
27915 WRITE(LOUT,*)'YG31S,YG32S,YU31S,YU32S',
27916 & DBRKA(3,1),DBRKA(3,2),
27917 & DBRKA(3,3),DBRKA(3,4)
27918 WRITE(LOUT,*)'YG31R,YG32R,YU31R,YU32R',
27919 & DBRKR(3,1),DBRKR(3,2),
27920 & DBRKR(3,3),DBRKR(3,4)
27921 WRITE(LOUT,*)'YG3A1S,YG3A2S,YU3A1S,YU3A2S',
27922 & DBRKA(3,5),DBRKA(3,6),
27923 & DBRKA(3,7),DBRKA(3,8)
27924 WRITE(LOUT,*)'YG3A1R,YG3A2R,YU3A1R,YU3A2R',
27925 & DBRKR(3,5),DBRKR(3,6),
27926 & DBRKR(3,7),DBRKR(3,8)
27927 ENDIF
27928
27929 FAC = 1.0D0
27930 IF (MCGENE.EQ.2) THEN
27931C CALL PHO_PHIST(-2,SIGMAX)
27932 CALL PHO_EVENT(-2,PP,PT,FAC,IREJ1)
27933 ENDIF
27934
27935 CALL DT_XTIME
27936
27937 RETURN
27938 END
27939
27940*$ CREATE DT_EVTOUT.FOR
27941*COPY DT_EVTOUT
27942*
27943*===evtout=============================================================*
27944*
27945 SUBROUTINE DT_EVTOUT(MODE)
27946
27947************************************************************************
27948* MODE = 1 plot content of complete DTEVT1 to out. unit *
27949* 3 plot entries of extended DTEVT1 (DTEVT2) *
27950* 4 plot entries of DTEVT1 and DTEVT2 *
27951* This version dated 11.12.94 is written by S. Roesler *
27952************************************************************************
27953
27954 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27955 SAVE
27956 PARAMETER ( LINP = 10 ,
27957 & LOUT = 6 ,
27958 & LDAT = 9 )
27959* event history
27960 PARAMETER (NMXHKK=200000)
27961 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27962 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27963 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27964
27965 DIMENSION IRANGE(NMXHKK)
27966
27967 IF (MODE.EQ.2) RETURN
27968
27969 CALL DT_EVTPLO(IRANGE,MODE)
27970
27971 RETURN
27972 END
27973
27974*$ CREATE DT_EVTPLO.FOR
27975*COPY DT_EVTPLO
27976*
27977*===evtplo=============================================================*
27978*
27979 SUBROUTINE DT_EVTPLO(IRANGE,MODE)
27980
27981************************************************************************
27982* MODE = 1 plot content of complete DTEVT1 to out. unit *
27983* 2 plot entries of DTEVT1 given by IRANGE *
27984* 3 plot entries of extended DTEVT1 (DTEVT2) *
27985* 4 plot entries of DTEVT1 and DTEVT2 *
27986* 5 plot rejection counter *
27987* This version dated 11.12.94 is written by S. Roesler *
27988************************************************************************
27989
27990 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27991 SAVE
27992 PARAMETER ( LINP = 10 ,
27993 & LOUT = 6 ,
27994 & LDAT = 9 )
27995
27996 CHARACTER*16 CHAU
27997
27998* event history
27999 PARAMETER (NMXHKK=200000)
28000 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28001 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28002 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28003* extended event history
28004 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28005 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28006 & IHIST(2,NMXHKK)
28007* rejection counter
28008 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
28009 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
28010 & IREXCI(3),IRDIFF(2),IRINC
28011
28012 DIMENSION IRANGE(NMXHKK)
28013
28014 IF ((MODE.EQ.1).OR.(MODE.EQ.4)) THEN
28015 WRITE(LOUT,1000)
28016 1000 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTEVT1/',/,
28017 & 15X,' --------------------------',/,/,
28018 & ' ST ID M1 M2 D1 D2 PX PY',
28019 & ' PZ E M',/)
28020 DO 1 I=1,NHKK
28021 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28022 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28023 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28024 & PHKK(5,I)
28025C WRITE(LOUT,1011) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28026C & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28027C & PHKK(3,I),PHKK(4,I)
28028C WRITE(LOUT,'(4E15.4)')
28029C & VHKK(1,I),VHKK(2,I),VHKK(3,I),VHKK(4,I)
28030 1001 FORMAT(I5,I5,I6,4I5,3F7.3,F8.3,F8.4)
28031 1011 FORMAT(I5,I5,I6,4I5,2E15.5)
28032 1 CONTINUE
28033 WRITE(LOUT,*)
28034C DO 4 I=1,NHKK
28035C WRITE(LOUT,1006) I,ISTHKK(I),
28036C & VHKK(1,I),VHKK(2,I),VHKK(3,I),WHKK(1,I),
28037C & WHKK(2,I),WHKK(3,I)
28038C1006 FORMAT(1X,I4,I6,6E10.3)
28039C 4 CONTINUE
28040 ENDIF
28041
28042 IF (MODE.EQ.2) THEN
28043 WRITE(LOUT,1000)
28044 NC = 0
28045 2 CONTINUE
28046 NC = NC+1
28047 IF (IRANGE(NC).EQ.-100) GOTO 9999
28048 I = IRANGE(NC)
28049 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28050 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28051 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28052 & PHKK(5,I)
28053 GOTO 2
28054 ENDIF
28055
28056 IF ((MODE.EQ.3).OR.(MODE.EQ.4)) THEN
28057 WRITE(LOUT,1002)
28058 1002 FORMAT(/,1X,'EVTPLO:',14X,
28059 & ' content of COMMON /DTEVT1/,/DTEVT2/',/,
28060 & 15X,' -----------------------------------',/,/,
28061 & ' ST ID M1 M2 D1 D2 IDR IDXR',
28062 & ' NOBAM IDCH M',/)
28063 DO 3 I=1,NHKK
28064C IF ((ISTHKK(I).GT.10).OR.(ISTHKK(I).EQ.1)) THEN
28065 KF = IDHKK(I)
28066 IDCHK = KF/10000
28067 IF ((((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28068 & (KF.NE.80000)).OR.(IDHKK(I).EQ.99999)) KF = 92
28069 CALL PYNAME(KF,CHAU)
28070 WRITE(LOUT,1003) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28071 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28072 & IDRES(I),IDXRES(I),NOBAM(I),IDCH(I),
28073 & PHKK(5,I),CHAU
28074 1003 FORMAT(I5,I5,I6,4I5,4I4,F8.4,2X,A)
28075C ENDIF
28076 3 CONTINUE
28077 ENDIF
28078
28079 IF (MODE.EQ.5) THEN
28080 WRITE(LOUT,1004)
28081 1004 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTREJC/',/,
28082 & 15X,' --------------------------',/)
28083 WRITE(LOUT,1005) IRPT,IRHHA,IRRES,LOMRES,LOBRES,IREMC,IRFRAG,
28084 & IRSEA,IRCRON
28085 1005 FORMAT(1X,'IRPT = ',I5,' IRHHA = ',I5,/,
28086 & 1X,'IRRES = ',2I5,' LOMRES = ',I5,' LOBRES = ',I5,/,
28087 & 1X,'IREMC = ',10I5,/,
28088 & 1X,'IRFRAG = ',I5,' IRSEA = ',I5,' IRCRON = ',I5,/)
28089 ENDIF
28090
28091 9999 RETURN
28092 END
28093
28094*$ CREATE DT_EVTPUT.FOR
28095*COPY DT_EVTPUT
28096*
28097*===evtput=============================================================*
28098*
28099 SUBROUTINE DT_EVTPUT(IST,ID,M1,M2,PX,PY,PZ,E,IDR,IDXR,IDC)
28100
28101 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28102 SAVE
28103 PARAMETER ( LINP = 10 ,
28104 & LOUT = 6 ,
28105 & LDAT = 9 )
28106 PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4,TINY3=1.0D-3,
28107 & TINY2=1.0D-2,SQTINF=1.0D+15,ZERO=0.0D0)
28108
28109* event history
28110 PARAMETER (NMXHKK=200000)
28111 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28112 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28113 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28114* extended event history
28115 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28116 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28117 & IHIST(2,NMXHKK)
28118* Lorentz-parameters of the current interaction
28119 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28120 & UMO,PPCM,EPROJ,PPROJ
28121* particle properties (BAMJET index convention)
28122 CHARACTER*8 ANAME
28123 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28124 & IICH(210),IIBAR(210),K1(210),K2(210)
28125
28126C IF (MODE.GT.100) THEN
28127C WRITE(LOUT,'(1X,A,I5,A,I5)')
28128C & 'EVTPUT: reset NHKK = ',NHKK,' to NHKK =',NHKK-MODE+100
28129C NHKK = NHKK-MODE+100
28130C RETURN
28131C ENDIF
28132 MO1 = M1
28133 MO2 = M2
28134 NHKK = NHKK+1
28135
28136 IF (NHKK.GT.NMXHKK) THEN
28137 WRITE(LOUT,1000) NHKK
28138 1000 FORMAT(1X,'EVTPUT: NHKK exeeds NMXHKK = ',I7,
28139 & '! program execution stopped..')
28140 STOP
28141 ENDIF
28142 IF (M1.LT.0) MO1 = NHKK+M1
28143 IF (M2.LT.0) MO2 = NHKK+M2
28144 ISTHKK(NHKK) = IST
28145 IDHKK(NHKK) = ID
28146 JMOHKK(1,NHKK) = MO1
28147 JMOHKK(2,NHKK) = MO2
28148 JDAHKK(1,NHKK) = 0
28149 JDAHKK(2,NHKK) = 0
28150 IDRES(NHKK) = IDR
28151 IDXRES(NHKK) = IDXR
28152 IDCH(NHKK) = IDC
28153** here we need to do something..
28154 IF (ID.EQ.88888) THEN
28155 IDMO1 = ABS(IDHKK(MO1))
28156 IDMO2 = ABS(IDHKK(MO2))
28157 IF ((IDMO1.LT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 3
28158 IF ((IDMO1.LT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 4
28159 IF ((IDMO1.GT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 5
28160 IF ((IDMO1.GT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 6
28161 ELSE
28162 NOBAM(NHKK) = 0
28163 ENDIF
28164 IDBAM(NHKK) = IDT_ICIHAD(ID)
28165 IF (MO1.GT.0) THEN
28166 IF (JDAHKK(1,MO1).NE.0) THEN
28167 JDAHKK(2,MO1) = NHKK
28168 ELSE
28169 JDAHKK(1,MO1) = NHKK
28170 ENDIF
28171 ENDIF
28172 IF (MO2.GT.0) THEN
28173 IF (JDAHKK(1,MO2).NE.0) THEN
28174 JDAHKK(2,MO2) = NHKK
28175 ELSE
28176 JDAHKK(1,MO2) = NHKK
28177 ENDIF
28178 ENDIF
28179C IF ((IDBAM(NHKK).GT.0).AND.(IDBAM(NHKK).NE.7)) THEN
28180C PTOT = SQRT(PX**2+PY**2+PZ**2)
28181C AM0 = SQRT(ABS( (E-PTOT)*(E+PTOT) ))
28182C AMRQ = AAM(IDBAM(NHKK))
28183C AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
28184C IF ((ABS(AMDIF2).GT.TINY3).AND.(E.LT.SQTINF).AND.
28185C & (PTOT.GT.ZERO)) THEN
28186C DELTA = -AMDIF2/(2.0D0*(E+PTOT))
28187CC DELTA = (AMRQ2-AM2)/(2.0D0*(E+PTOT))
28188C E = E+DELTA
28189C PTOT1 = PTOT-DELTA
28190C PX = PX*PTOT1/PTOT
28191C PY = PY*PTOT1/PTOT
28192C PZ = PZ*PTOT1/PTOT
28193C ENDIF
28194C ENDIF
28195 PHKK(1,NHKK) = PX
28196 PHKK(2,NHKK) = PY
28197 PHKK(3,NHKK) = PZ
28198 PHKK(4,NHKK) = E
28199 PTOT = SQRT( PX**2+PY**2+PZ**2 )
28200 IF ((IDHKK(NHKK).GE.22).AND.(IDHKK(NHKK).LE.24)) THEN
28201 PHKK(5,NHKK) = PHKK(4,NHKK)**2-PTOT**2
28202 PHKK(5,NHKK) = SIGN(SQRT(ABS(PHKK(5,NHKK))),PHKK(5,NHKK))
28203 ELSE
28204 PHKK(5,NHKK) = (PHKK(4,NHKK)-PTOT)*(PHKK(4,NHKK)+PTOT)
28205C IF ((PHKK(5,NHKK).LT.0.0D0).AND.(ABS(PHKK(5,NHKK)).GT.TINY4))
28206C & WRITE(LOUT,'(1X,A,G10.3)')
28207C & 'EVTPUT: negative mass**2 ',PHKK(5,NHKK)
28208 PHKK(5,NHKK) = SQRT(ABS(PHKK(5,NHKK)))
28209 ENDIF
28210 IDCHK = ID/10000
28211 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.(ID.NE.80000)) THEN
28212* special treatment for chains:
28213* z coordinate of chain in Lab = pos. of target nucleon
28214* time of chain-creation in Lab = time of passage of projectile
28215* nucleus at pos. of taget nucleus
28216C VHKK(1,NHKK) = 0.5D0*(VHKK(1,MO1)+VHKK(1,MO2))
28217C VHKK(2,NHKK) = 0.5D0*(VHKK(2,MO1)+VHKK(2,MO2))
28218 VHKK(1,NHKK) = VHKK(1,MO2)
28219 VHKK(2,NHKK) = VHKK(2,MO2)
28220 VHKK(3,NHKK) = VHKK(3,MO2)
28221 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
28222C WHKK(1,NHKK) = 0.5D0*(WHKK(1,MO1)+WHKK(1,MO2))
28223C WHKK(2,NHKK) = 0.5D0*(WHKK(2,MO1)+WHKK(2,MO2))
28224 WHKK(1,NHKK) = WHKK(1,MO1)
28225 WHKK(2,NHKK) = WHKK(2,MO1)
28226 WHKK(3,NHKK) = WHKK(3,MO1)
28227 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
28228 ELSE
28229 IF (MO1.GT.0) THEN
28230 DO 1 I=1,4
28231 VHKK(I,NHKK) = VHKK(I,MO1)
28232 WHKK(I,NHKK) = WHKK(I,MO1)
28233 1 CONTINUE
28234 ELSE
28235 DO 2 I=1,4
28236 VHKK(I,NHKK) = ZERO
28237 WHKK(I,NHKK) = ZERO
28238 2 CONTINUE
28239 ENDIF
28240 ENDIF
28241
28242 RETURN
28243 END
28244
28245*$ CREATE DT_CHASTA.FOR
28246*COPY DT_CHASTA
28247*
28248*===chasta=============================================================*
28249*
28250 SUBROUTINE DT_CHASTA(MODE)
28251
28252************************************************************************
28253* This subroutine performs CHAin STAtistics and checks sequence of *
28254* partons in dtevt1 and sorts them with projectile partons coming *
28255* first if necessary. *
28256* *
28257* This version dated 8.5.00 is written by S. Roesler. *
28258************************************************************************
28259
28260 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28261 SAVE
28262 PARAMETER ( LINP = 10 ,
28263 & LOUT = 6 ,
28264 & LDAT = 9 )
28265
28266 CHARACTER*5 CCHTYP
28267
28268* event history
28269 PARAMETER (NMXHKK=200000)
28270 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28271 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28272 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28273* extended event history
28274 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28275 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28276 & IHIST(2,NMXHKK)
28277* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
28278 PARAMETER (MAXCHN=10000)
28279 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
28280
28281 DIMENSION ICHCFG(10,10,9,2),ICHTYP(5,5),
28282 & CCHTYP(9),ICHSTA(10),ITOT(10)
28283 DATA ICHCFG /1800*0/
28284 DATA (ICHTYP(1,K),K=1,5) / 0, 1, 3, 0, 0/
28285 DATA (ICHTYP(2,K),K=1,5) / 2, 0, 0, 5, 0/
28286 DATA (ICHTYP(3,K),K=1,5) / 4, 0, 0, 7, 0/
28287 DATA (ICHTYP(4,K),K=1,5) / 0, 6, 8, 0, 0/
28288 DATA (ICHTYP(5,K),K=1,5) / 0, 0, 0, 0, 9/
28289 DATA ICHSTA / 21, 22, 31, 32, 41, 42, 51, 52, 61, 62/
28290 DATA CCHTYP / ' q aq','aq q ',' q d ',' d q ','aq ad',
28291 & 'ad aq',' d ad','ad d ',' g g '/
28292*
28293* initialization
28294*
28295 IF (MODE.EQ.-1) THEN
28296 NCHAIN = 0
28297*
28298* loop over DTEVT1 and analyse chain configurations
28299*
28300 ELSEIF (MODE.EQ.0) THEN
28301 DO 21 IDX=NPOINT(3),NHKK
28302 IDCHK = IDHKK(IDX)/10000
28303 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28304 & (IDHKK(IDX).NE.80000).AND.
28305 & (ISTHKK(IDX).NE.2).AND.(IDRES(IDX).EQ.0)) THEN
28306 IF (JMOHKK(1,IDX).GT.JMOHKK(2,IDX)) THEN
28307 WRITE(LOUT,*) ' CHASTA: JMOHKK(1,x) > JMOHKK(2,x) ',
28308 & ' at entry ',IDX
28309 GOTO 21
28310 ENDIF
28311*
28312 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28313 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28314 IMO1 = IST1/10
28315 IMO1 = IST1-10*IMO1
28316 IMO2 = IST2/10
28317 IMO2 = IST2-10*IMO2
28318* swop parton entries if necessary since we need projectile partons
28319* to come first in the common
28320 IF (IMO1.GT.IMO2) THEN
28321 NPTN = JMOHKK(2,IDX)-JMOHKK(1,IDX)+1
28322 DO 22 K=1,NPTN/2
28323 I0 = JMOHKK(1,IDX)-1+K
28324 I1 = JMOHKK(2,IDX)+1-K
28325 ITMP = ISTHKK(I0)
28326 ISTHKK(I0) = ISTHKK(I1)
28327 ISTHKK(I1) = ITMP
28328 ITMP = IDHKK(I0)
28329 IDHKK(I0) = IDHKK(I1)
28330 IDHKK(I1) = ITMP
28331 IF (JDAHKK(1,JMOHKK(1,I0)).EQ.I0)
28332 & JDAHKK(1,JMOHKK(1,I0)) = I1
28333 IF (JDAHKK(2,JMOHKK(1,I0)).EQ.I0)
28334 & JDAHKK(2,JMOHKK(1,I0)) = I1
28335 IF (JDAHKK(1,JMOHKK(2,I0)).EQ.I0)
28336 & JDAHKK(1,JMOHKK(2,I0)) = I1
28337 IF (JDAHKK(2,JMOHKK(2,I0)).EQ.I0)
28338 & JDAHKK(2,JMOHKK(2,I0)) = I1
28339 IF (JDAHKK(1,JMOHKK(1,I1)).EQ.I1)
28340 & JDAHKK(1,JMOHKK(1,I1)) = I0
28341 IF (JDAHKK(2,JMOHKK(1,I1)).EQ.I1)
28342 & JDAHKK(2,JMOHKK(1,I1)) = I0
28343 IF (JDAHKK(1,JMOHKK(2,I1)).EQ.I1)
28344 & JDAHKK(1,JMOHKK(2,I1)) = I0
28345 IF (JDAHKK(2,JMOHKK(2,I1)).EQ.I1)
28346 & JDAHKK(2,JMOHKK(2,I1)) = I0
28347 ITMP = JMOHKK(1,I0)
28348 JMOHKK(1,I0) = JMOHKK(1,I1)
28349 JMOHKK(1,I1) = ITMP
28350 ITMP = JMOHKK(2,I0)
28351 JMOHKK(2,I0) = JMOHKK(2,I1)
28352 JMOHKK(2,I1) = ITMP
28353 ITMP = JDAHKK(1,I0)
28354 JDAHKK(1,I0) = JDAHKK(1,I1)
28355 JDAHKK(1,I1) = ITMP
28356 ITMP = JDAHKK(2,I0)
28357 JDAHKK(2,I0) = JDAHKK(2,I1)
28358 JDAHKK(2,I1) = ITMP
28359 DO 23 J=1,4
28360 RTMP1 = PHKK(J,I0)
28361 RTMP2 = VHKK(J,I0)
28362 RTMP3 = WHKK(J,I0)
28363 PHKK(J,I0) = PHKK(J,I1)
28364 VHKK(J,I0) = VHKK(J,I1)
28365 WHKK(J,I0) = WHKK(J,I1)
28366 PHKK(J,I1) = RTMP1
28367 VHKK(J,I1) = RTMP2
28368 WHKK(J,I1) = RTMP3
28369 23 CONTINUE
28370 RTMP1 = PHKK(5,I0)
28371 PHKK(5,I0) = PHKK(5,I1)
28372 PHKK(5,I1) = RTMP1
28373 ITMP = IDRES(I0)
28374 IDRES(I0) = IDRES(I1)
28375 IDRES(I1) = ITMP
28376 ITMP = IDXRES(I0)
28377 IDXRES(I0) = IDXRES(I1)
28378 IDXRES(I1) = ITMP
28379 ITMP = NOBAM(I0)
28380 NOBAM(I0) = NOBAM(I1)
28381 NOBAM(I1) = ITMP
28382 ITMP = IDBAM(I0)
28383 IDBAM(I0) = IDBAM(I1)
28384 IDBAM(I1) = ITMP
28385 ITMP = IDCH(I0)
28386 IDCH(I0) = IDCH(I1)
28387 IDCH(I1) = ITMP
28388 ITMP = IHIST(1,I0)
28389 IHIST(1,I0) = IHIST(1,I1)
28390 IHIST(1,I1) = ITMP
28391 ITMP = IHIST(2,I0)
28392 IHIST(2,I0) = IHIST(2,I1)
28393 IHIST(2,I1) = ITMP
28394 22 CONTINUE
28395 ENDIF
28396 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28397 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28398*
28399* parton 1 (projectile side)
28400 IF (IST1.EQ.21) THEN
28401 IDX1 = 1
28402 ELSEIF (IST1.EQ.22) THEN
28403 IDX1 = 2
28404 ELSEIF (IST1.EQ.31) THEN
28405 IDX1 = 3
28406 ELSEIF (IST1.EQ.32) THEN
28407 IDX1 = 4
28408 ELSEIF (IST1.EQ.41) THEN
28409 IDX1 = 5
28410 ELSEIF (IST1.EQ.42) THEN
28411 IDX1 = 6
28412 ELSEIF (IST1.EQ.51) THEN
28413 IDX1 = 7
28414 ELSEIF (IST1.EQ.52) THEN
28415 IDX1 = 8
28416 ELSEIF (IST1.EQ.61) THEN
28417 IDX1 = 9
28418 ELSEIF (IST1.EQ.62) THEN
28419 IDX1 = 10
28420 ELSE
28421c WRITE(LOUT,*)
28422c & ' CHASTA: unknown parton status flag (',
28423c & IST1,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28424 GOTO 21
28425 ENDIF
28426 ID = IDHKK(JMOHKK(1,IDX))
28427 IF (ABS(ID).LE.4) THEN
28428 IF (ID.GT.0) THEN
28429 ITYP1 = 1
28430 ELSE
28431 ITYP1 = 2
28432 ENDIF
28433 ELSEIF (ABS(ID).GE.1000) THEN
28434 IF (ID.GT.0) THEN
28435 ITYP1 = 3
28436 ELSE
28437 ITYP1 = 4
28438 ENDIF
28439 ELSEIF (ID.EQ.21) THEN
28440 ITYP1 = 5
28441 ELSE
28442 WRITE(LOUT,*)
28443 & ' CHASTA: inconsistent parton identity (',
28444 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28445 GOTO 21
28446 ENDIF
28447*
28448* parton 2 (target side)
28449 IF (IST2.EQ.21) THEN
28450 IDX2 = 1
28451 ELSEIF (IST2.EQ.22) THEN
28452 IDX2 = 2
28453 ELSEIF (IST2.EQ.31) THEN
28454 IDX2 = 3
28455 ELSEIF (IST2.EQ.32) THEN
28456 IDX2 = 4
28457 ELSEIF (IST2.EQ.41) THEN
28458 IDX2 = 5
28459 ELSEIF (IST2.EQ.42) THEN
28460 IDX2 = 6
28461 ELSEIF (IST2.EQ.51) THEN
28462 IDX2 = 7
28463 ELSEIF (IST2.EQ.52) THEN
28464 IDX2 = 8
28465 ELSEIF (IST2.EQ.61) THEN
28466 IDX2 = 9
28467 ELSEIF (IST2.EQ.62) THEN
28468 IDX2 = 10
28469 ELSE
28470c WRITE(LOUT,*)
28471c & ' CHASTA: unknown parton status flag (',
28472c & IST2,') at entry ',JMOHKK(2,IDX),'(',IDX,')'
28473 GOTO 21
28474 ENDIF
28475 ID = IDHKK(JMOHKK(2,IDX))
28476 IF (ABS(ID).LE.4) THEN
28477 IF (ID.GT.0) THEN
28478 ITYP2 = 1
28479 ELSE
28480 ITYP2 = 2
28481 ENDIF
28482 ELSEIF (ABS(ID).GE.1000) THEN
28483 IF (ID.GT.0) THEN
28484 ITYP2 = 3
28485 ELSE
28486 ITYP2 = 4
28487 ENDIF
28488 ELSEIF (ID.EQ.21) THEN
28489 ITYP2 = 5
28490 ELSE
28491 WRITE(LOUT,*)
28492 & ' CHASTA: inconsistent parton identity (',
28493 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28494 GOTO 21
28495 ENDIF
28496*
28497* fill counter
28498 ITYPE = ICHTYP(ITYP1,ITYP2)
28499 IF (ITYPE.NE.0) THEN
28500 ICHCFG(IDX1,IDX2,ITYPE,1) =ICHCFG(IDX1,IDX2,ITYPE,1)+1
28501 NGLUON = JMOHKK(2,IDX)-JMOHKK(1,IDX)-1
28502 ICHCFG(IDX1,IDX2,ITYPE,2) =
28503 & ICHCFG(IDX1,IDX2,ITYPE,2)+NGLUON
28504
28505 NCHAIN = NCHAIN+1
28506 IF (NCHAIN.GT.MAXCHN) THEN
28507 WRITE(LOUT,*) ' CHASTA: NCHAIN > MAXCHN ! ',
28508 & NCHAIN,MAXCHN
28509 STOP
28510 ENDIF
28511 IDXCHN(1,NCHAIN) = IDX
28512 IDXCHN(2,NCHAIN) = ITYPE
28513 ELSE
28514 WRITE(LOUT,*)
28515 & ' CHASTA: inconsistent chain at entry ',IDX
28516 GOTO 21
28517 ENDIF
28518 ENDIF
28519 21 CONTINUE
28520*
28521* write statistics to output unit
28522*
28523 ELSEIF (MODE.EQ.1) THEN
28524 WRITE(LOUT,'(/,A)') ' CHASTA: generated chain configurations'
28525 DO 31 I=1,10
28526 WRITE(LOUT,'(/,2A)')
28527 & ' -----------------------------------------',
28528 & '------------------------------------'
28529 WRITE(LOUT,'(2A)')
28530 & ' p\\t 21 22 31 32 41',
28531 & ' 42 51 52 61 62'
28532 WRITE(LOUT,'(2A)')
28533 & ' -----------------------------------------',
28534 & '------------------------------------'
28535 DO 32 J=1,10
28536 ITOT(J) = 0
28537 DO 33 K=1,9
28538 ITOT(J) = ITOT(J)+ICHCFG(I,J,K,1)
28539 33 CONTINUE
28540 32 CONTINUE
28541 WRITE(LOUT,'(1X,I2,5X,10I7,/)') ICHSTA(I),(ITOT(J),J=1,10)
28542 DO 34 K=1,9
28543 ISUM = 0
28544 DO 35 J=1,10
28545 ISUM = ISUM+ICHCFG(I,J,K,1)
28546 35 CONTINUE
28547 IF (ISUM.GT.0)
28548 & WRITE(LOUT,'(1X,A5,2X,10I7)')
28549 & CCHTYP(K),(ICHCFG(I,J,K,1),J=1,10)
28550 34 CONTINUE
28551C WRITE(LOUT,'(2A)')
28552C & ' -----------------------------------------',
28553C & '-------------------------------'
28554 31 CONTINUE
28555*
28556 ELSE
28557 WRITE(LOUT,*) ' CHASTA: MODE ',MODE,' not supported !'
28558 STOP
28559 ENDIF
28560
28561 RETURN
28562 END
28563*$ CREATE PHO_PHIST.FOR
28564*COPY PHO_PHIST
28565*
28566*===pohist=============================================================*
28567*
28568 SUBROUTINE PHO_PHIST(IMODE,WEIGHT)
28569
28570 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28571 SAVE
28572
28573 PARAMETER ( LINP = 10 ,
28574 & LOUT = 6 ,
28575 & LDAT = 9 )
28576 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
28577* Glauber formalism: cross sections
28578 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
28579 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
28580 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
28581 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
28582 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
28583 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
28584 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
28585 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
28586 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
28587 & BSLOPE,NEBINI,NQBINI
28588
28589 ILAB = 0
28590 IF (IMODE.EQ.10) THEN
28591 IMODE = 1
28592 ILAB = 1
28593 ENDIF
28594 IF (ABS(IMODE).LT.1000) THEN
28595* PHOJET-statistics
28596C CALL POHISX(IMODE,WEIGHT)
28597 IF (IMODE.EQ.-1) THEN
28598 MODE = 1
28599 XSTOT(1,1,1) = WEIGHT
28600 ENDIF
28601 IF (IMODE.EQ. 1) MODE = 2
28602 IF (IMODE.EQ.-2) MODE = 3
28603 IF (MODE.EQ.2) CALL DT_SWPPHO(ILAB)
28604C IF (MODE.EQ.3) WRITE(LOUT,*)
28605C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28606 CALL DT_HISTOG(MODE)
28607 CALL DT_USRHIS(MODE)
28608 ELSE
28609* DTUNUC-statistics
28610 MODE = IMODE/1000
28611C IF (MODE.EQ.3) WRITE(LOUT,*)
28612C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28613 CALL DT_HISTOG(MODE)
28614 CALL DT_USRHIS(MODE)
28615 ENDIF
28616
28617 RETURN
28618 END
28619
28620*$ CREATE DT_SWPPHO.FOR
28621*COPY DT_SWPPHO
28622*
28623*===swppho=============================================================*
28624*
28625 SUBROUTINE DT_SWPPHO(ILAB)
28626
28627 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28628 SAVE
28629 PARAMETER ( LINP = 10 ,
28630 & LOUT = 6 ,
28631 & LDAT = 9 )
28632 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28633
28634 LOGICAL LSTART
28635
28636* event history
28637 PARAMETER (NMXHKK=200000)
28638 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28639 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28640 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28641* extended event history
28642 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28643 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28644 & IHIST(2,NMXHKK)
28645* flags for input different options
28646 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28647 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28648 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28649* properties of photon/lepton projectiles
28650 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
28651
28652**PHOJET105a
28653C PARAMETER (NMXHEP=2000)
28654C COMMON/HEPEVS/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28655C &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
28656C COMMON /GLOCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28657C COMMON /PLASAV/ PLAB
28658**PHOJET110
28659C standard particle data interface
28660 INTEGER NMXHEP
28661 PARAMETER (NMXHEP=4000)
28662 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
28663 DOUBLE PRECISION PHEP,VHEP
28664 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28665 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
09b429a4 28666 & VHEP(4,NMXHEP),NSD1, NSD2, NDD
9aaba0d6 28667C extension to standard particle data interface (PHOJET specific)
28668 INTEGER IMPART,IPHIST,ICOLOR
28669 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
28670C global event kinematics and particle IDs
28671 INTEGER IFPAP,IFPAB
28672 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
28673 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28674**
28675 DATA ICOUNT/0/
28676
28677 DATA LSTART /.TRUE./
28678
28679C IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0).AND.LSTART) THEN
28680 IF ((IFRAME.EQ.1).AND.LSTART) THEN
28681 UMO = ECM
28682 ELA = ZERO
28683 PLA = ZERO
28684 IDP = IDT_ICIHAD(IFPAP(1))
28685 IDT = IDT_ICIHAD(IFPAP(2))
28686 VIRT = PVIRT(1)
28687 CALL DT_LTINI(IDP,IDT,ELA,PLA,UMO,0)
28688 PLAB = PLA
28689 LSTART = .FALSE.
28690 ENDIF
28691
28692 NHKK = 0
28693 ICOUNT = ICOUNT+1
28694C NEVHKK = NEVHEP
28695 NEVHKK = ICOUNT
28696 IF (MOD(ICOUNT,500).EQ.0) WRITE(LOUT,*)' SWPPHO: event # ',ICOUNT
28697 DO 1 I=3,NHEP
28698 IF (ISTHEP(I).EQ.1) THEN
28699 NHKK = NHKK+1
28700 ISTHKK(NHKK) = 1
28701 IDHKK(NHKK) = IDHEP(I)
28702 JMOHKK(1,NHKK) = 0
28703 JMOHKK(2,NHKK) = 0
28704 JDAHKK(1,NHKK) = 0
28705 JDAHKK(2,NHKK) = 0
28706 DO 2 K=1,4
28707 PHKK(K,NHKK) = PHEP(K,I)
28708 VHKK(K,NHKK) = ZERO
28709 WHKK(K,NHKK) = ZERO
28710 2 CONTINUE
28711 IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0))
28712 & CALL DT_LTNUC(PHEP(3,I),PHEP(4,I),
28713 & PHKK(3,NHKK),PHKK(4,NHKK),-3)
28714 PHKK(5,NHKK) = PHEP(5,I)
28715 IDRES(NHKK) = 0
28716 IDXRES(NHKK) = 0
28717 NOBAM(NHKK) = 0
28718 IDBAM(NHKK) = IDT_ICIHAD(IDHEP(I))
28719 IDCH(NHKK) = 0
28720 ENDIF
28721 1 CONTINUE
28722
28723 RETURN
28724 END
28725
28726*$ CREATE DT_HISTOG.FOR
28727*COPY DT_HISTOG
28728*
28729*===histog=============================================================*
28730*
28731 SUBROUTINE DT_HISTOG(MODE)
28732
28733************************************************************************
28734* This version dated 25.03.96 is written by S. Roesler *
28735************************************************************************
28736
28737 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28738 SAVE
28739 PARAMETER ( LINP = 10 ,
28740 & LOUT = 6 ,
28741 & LDAT = 9 )
28742
28743 LOGICAL LFSP,LRNL
28744
28745* event history
28746 PARAMETER (NMXHKK=200000)
28747 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28748 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28749 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28750* extended event history
28751 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28752 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28753 & IHIST(2,NMXHKK)
28754* event flag used for histograms
28755 COMMON /DTNORM/ ICEVT,IEVHKK
28756* flags for activated histograms
28757 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
28758
28759 IEVHKK = NEVHKK
28760 GOTO (1,2,3) MODE
28761
28762*------------------------------------------------------------------
28763* initialization
28764 1 CONTINUE
28765 ICEVT = 0
28766 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,1)
28767 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(1)
28768
28769 RETURN
28770*------------------------------------------------------------------
28771* filling of histogram with event-record
28772 2 CONTINUE
28773 ICEVT = ICEVT+1
28774
28775 DO 20 I=1,NHKK
28776 CALL DT_SWPFSP(I,LFSP,LRNL)
28777 IF (LFSP) THEN
28778 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,2)
28779 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(2)
28780 ENDIF
28781 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,5)
28782 20 CONTINUE
28783 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,4)
28784
28785 RETURN
28786*------------------------------------------------------------------
28787* output
28788 3 CONTINUE
28789 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,3)
28790 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(3)
28791
28792 RETURN
28793 END
28794
28795*$ CREATE DT_SWPFSP.FOR
28796*COPY DT_SWPFSP
28797*
28798*===swpfsp=============================================================*
28799*
28800 SUBROUTINE DT_SWPFSP(IDX,LFSP,LRNL)
28801
28802 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28803 SAVE
28804 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28805 PARAMETER (TWOPI=6.283185307179586476925286766559D+00,
28806 & PI =TWOPI/TWO,
28807 & BOG =TWOPI/360.0D0)
28808
28809* event history
28810 PARAMETER (NMXHKK=200000)
28811 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28812 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28813 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28814* extended event history
28815 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28816 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28817 & IHIST(2,NMXHKK)
28818* particle properties (BAMJET index convention)
28819 CHARACTER*8 ANAME
28820 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28821 & IICH(210),IIBAR(210),K1(210),K2(210)
28822* Lorentz-parameters of the current interaction
28823 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28824 & UMO,PPCM,EPROJ,PPROJ
28825* flags for input different options
28826 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28827 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28828 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28829* (original name: PAREVT)
28830 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
28831 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
28832 PARAMETER ( NALLWP = 39 )
28833 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
28834 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
28835 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
28836 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
28837* temporary storage for one final state particle
28838 LOGICAL LFRAG,LGREY,LBLACK
28839 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
28840 & SINTHE,COSTHE,THETA,THECMS,
28841 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
28842 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
28843 & LFRAG,LGREY,LBLACK
28844
28845 LOGICAL LFSP,LRNL
28846
28847 LFSP = .FALSE.
28848 LRNL = .FALSE.
28849 ISTRNL = 1000
28850 MULDEF = 1
28851 IF (LEVPRT) ISTRNL = 1001
28852
28853 IF (ABS(ISTHKK(IDX)).EQ.1) THEN
28854 IST = ISTHKK(IDX)
28855 IDPDG = IDHKK(IDX)
28856 LFRAG = .FALSE.
28857 IF (IDHKK(IDX).LT.80000) THEN
28858 IDBJT = IDBAM(IDX)
28859 IBARY = IIBAR(IDBJT)
28860 ICHAR = IICH(IDBJT)
28861 AMASS = AAM(IDBJT)
28862 ELSEIF (IDHKK(IDX).EQ.80000) THEN
28863 IDBJT = 0
28864 IBARY = IDRES(IDX)
28865 ICHAR = IDXRES(IDX)
28866 AMASS = PHKK(5,IDX)
28867 INUT = IBARY-ICHAR
28868 IF ((ICHAR.EQ.1).AND.(INUT.EQ.1)) IDBJT = 116
28869 IF ((ICHAR.EQ.1).AND.(INUT.EQ.2)) IDBJT = 117
28870 IF ((ICHAR.EQ.2).AND.(INUT.EQ.1)) IDBJT = 118
28871 IF ((ICHAR.EQ.2).AND.(INUT.EQ.2)) IDBJT = 119
28872 IF (IDBJT.EQ.0) LFRAG = .TRUE.
28873 ELSE
28874 GOTO 9999
28875 ENDIF
28876 PE = PHKK(4,IDX)
28877 PX = PHKK(1,IDX)
28878 PY = PHKK(2,IDX)
28879 PZ = PHKK(3,IDX)
28880 PT2 = PX**2+PY**2
28881 PT = SQRT(PT2)
28882 PTOT = SQRT(PT2+PZ**2)
28883 SINTHE = PT/MAX(PTOT,TINY14)
28884 COSTHE = PZ/MAX(PTOT,TINY14)
28885 IF (COSTHE.GT.ONE) THEN
28886 THETA = ZERO
28887 ELSEIF (COSTHE.LT.-ONE) THEN
28888 THETA = TWOPI/2.0D0
28889 ELSE
28890 THETA = ACOS(COSTHE)
28891 ENDIF
28892 EKIN = PE-AMASS
28893**sr 15.4.96 new E_t-definition
28894 IF (IBARY.GT.0) THEN
28895 ET = EKIN*SINTHE
28896 ELSEIF (IBARY.LT.0) THEN
28897 ET = (EKIN+TWO*AMASS)*SINTHE
28898 ELSE
28899 ET = PE*SINTHE
28900 ENDIF
28901**
28902 XLAB = PZ/MAX(PPROJ,TINY14)
28903C XLAB = PE/MAX(EPROJ,TINY14)
28904 BETA = SQRT(ABS( (ONE-AMASS/MAX(PE,TINY14))
28905 & *(ONE+AMASS/MAX(PE,TINY14)) ))
28906 PPLUS = PE+PZ
28907 PMINUS = PE-PZ
28908 IF (PMINUS.GT.TINY14) THEN
28909 YY = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28910 ELSE
28911 YY = 100.0D0
28912 ENDIF
28913 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
28914 ETA = -LOG(TAN(THETA/TWO))
28915 ELSE
28916 ETA = 100.0D0
28917 ENDIF
28918 IF (IFRAME.EQ.1) THEN
28919 CALL DT_LTNUC(PZ,PE,PZCMS,EECMS,3)
28920 PPLUS = EECMS+PZCMS
28921 PMINUS = EECMS-PZCMS
28922 IF ((PPLUS*PMINUS).GT.TINY14) THEN
28923 YYCMS = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28924 ELSE
28925 YYCMS = 100.0D0
28926 ENDIF
28927 PTOTCM = SQRT(PT2+PZCMS**2)
28928 COSTH = PZCMS/MAX(PTOTCM,TINY14)
28929 IF (COSTH.GT.ONE) THEN
28930 THECMS = ZERO
28931 ELSEIF (COSTH.LT.-ONE) THEN
28932 THECMS = TWOPI/2.0D0
28933 ELSE
28934 THECMS = ACOS(COSTH)
28935 ENDIF
28936 IF ((THECMS.GT.TINY14).AND.((PI-THECMS).GT.TINY14)) THEN
28937 ETACMS = -LOG(TAN(THECMS/TWO))
28938 ELSE
28939 ETACMS = 100.0D0
28940 ENDIF
28941 XF = PZCMS/MAX(PPCM,TINY14)
28942 THECMS = THECMS/BOG
28943 ELSE
28944 PZCMS = PZ
28945 EECMS = PE
28946 YYCMS = YY
28947 ETACMS = ETA
28948 XF = XLAB
28949 THECMS = THETA/BOG
28950 ENDIF
28951 THETA = THETA/BOG
28952
28953* set flag for "grey/black"
28954 LGREY = .FALSE.
28955 LBLACK = .FALSE.
28956 EK = EKIN
28957 IF (IDHKK(IDX).EQ.80000) EK = EKIN/DBLE(IBARY)
28958 IF (MULDEF.EQ.1) THEN
28959* EMU01-Def.
28960 IF ( ( (IDBJT.EQ. 1).AND.(EK.GT. 26.0D-3).AND.
28961 & (EK.LE.375.0D-3) ).OR.
28962 & ( (IDBJT.EQ.13).AND.(EK.GT. 12.0D-3).AND.
28963 & (EK.LE. 56.0D-3) ).OR.
28964 & ( (IDBJT.EQ.14).AND.(EK.GT. 12.0D-3).AND.
28965 & (EK.LE. 56.0D-3) ).OR.
28966 & ( (IDBJT.EQ.15).AND.(EK.GT. 20.0D-3).AND.
28967 & (EK.LE.198.0D-3) ).OR.
28968 & ( (IDBJT.EQ.16).AND.(EK.GT. 20.0D-3).AND.
28969 & (EK.LE.198.0D-3) ).OR.
28970 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28971 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28972 & (IDBJT.NE.16).AND.
28973 & (BETA.GT.0.23D0).AND.(BETA.LE.0.70D0) ) )
28974 & LGREY = .TRUE.
28975 IF ( ( (IDBJT.EQ. 1).AND.(EK.LE. 26.0D-3) ).OR.
28976 & ( (IDBJT.EQ.13).AND.(EK.LE. 12.0D-3) ).OR.
28977 & ( (IDBJT.EQ.14).AND.(EK.LE. 12.0D-3) ).OR.
28978 & ( (IDBJT.EQ.15).AND.(EK.LE. 20.0D-3) ).OR.
28979 & ( (IDBJT.EQ.16).AND.(EK.LE. 20.0D-3) ).OR.
28980 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28981 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28982 & (IDBJT.NE.16).AND.(BETA.LE.0.23D0) ) )
28983 & LBLACK = .TRUE.
28984 ELSE
28985* common Def.
28986 IF ((BETA.GT.0.23D0).AND.(BETA.LE.0.70D0)) LGREY=.TRUE.
28987 IF (BETA.LE.0.23D0) LBLACK=.TRUE.
28988 ENDIF
28989 LFSP = .TRUE.
28990 ELSEIF (ABS(ISTHKK(IDX)).EQ.ISTRNL) THEN
28991 IST = ISTHKK(IDX)
28992 IDPDG = IDHKK(IDX)
28993 LFRAG = .TRUE.
28994 IDBJT = 0
28995 IBARY = IDRES(IDX)
28996 ICHAR = IDXRES(IDX)
28997 AMASS = PHKK(5,IDX)
28998 PE = PHKK(4,IDX)
28999 PX = PHKK(1,IDX)
29000 PY = PHKK(2,IDX)
29001 PZ = PHKK(3,IDX)
29002 PT2 = PX**2+PY**2
29003 PT = SQRT(PT2)
29004 PTOT = SQRT(PT2+PZ**2)
29005 SINTHE = PT/MAX(PTOT,TINY14)
29006 COSTHE = PZ/MAX(PTOT,TINY14)
29007 IF (COSTHE.GT.ONE) THEN
29008 THETA = ZERO
29009 ELSEIF (COSTHE.LT.-ONE) THEN
29010 THETA = TWOPI/2.0D0
29011 ELSE
29012 THETA = ACOS(COSTHE)
29013 ENDIF
29014 EKIN = PE-AMASS
29015**sr 15.4.96 new E_t-definition
29016C ET = PE*SINTHE
29017 ET = EKIN*SINTHE
29018**
29019 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
29020 ETA = -LOG(TAN(THETA/TWO))
29021 ELSE
29022 ETA = 100.0D0
29023 ENDIF
29024 THETA = THETA/BOG
29025 LRNL = .TRUE.
29026 ENDIF
29027
29028 9999 CONTINUE
29029 RETURN
29030 END
29031
29032*$ CREATE DT_HIMULT.FOR
29033*COPY DT_HIMULT
29034*
29035*===himult=============================================================*
29036*
29037 SUBROUTINE DT_HIMULT(MODE)
29038
29039************************************************************************
29040* Tables of average energies/multiplicities. *
29041* This version dated 30.08.2000 is written by S. Roesler *
29042************************************************************************
29043
29044 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29045 SAVE
29046 PARAMETER ( LINP = 10 ,
29047 & LOUT = 6 ,
29048 & LDAT = 9 )
29049 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29050
29051 PARAMETER (SWMEXP=1.7D0)
29052
29053 CHARACTER*8 ANAMEH(4)
29054
29055* particle properties (BAMJET index convention)
29056 CHARACTER*8 ANAME
29057 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29058 & IICH(210),IIBAR(210),K1(210),K2(210)
29059* temporary storage for one final state particle
29060 LOGICAL LFRAG,LGREY,LBLACK
29061 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29062 & SINTHE,COSTHE,THETA,THECMS,
29063 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29064 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29065 & LFRAG,LGREY,LBLACK
29066* event flag used for histograms
29067 COMMON /DTNORM/ ICEVT,IEVHKK
29068* Lorentz-parameters of the current interaction
29069 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
29070 & UMO,PPCM,EPROJ,PPROJ
29071
29072 PARAMETER (NOPART=210)
29073 DIMENSION AVMULT(4,NOPART),AVE(4,NOPART),AVSWM(4,NOPART),
29074 & AVPT(4,NOPART),IAVPT(4,NOPART)
29075 DATA ANAMEH /'DEUTERON','3-H ','3-HE ','4-HE '/
29076
29077 GOTO (1,2,3) MODE
29078
29079*------------------------------------------------------------------
29080* initialization
29081 1 CONTINUE
29082 DO 10 I=1,NOPART
29083 DO 11 J=1,4
29084 AVMULT(J,I) = ZERO
29085 AVE(J,I) = ZERO
29086 AVSWM(J,I) = ZERO
29087 AVPT(J,I) = ZERO
29088 IAVPT(J,I) = 0
29089 11 CONTINUE
29090 10 CONTINUE
29091
29092 RETURN
29093
29094*------------------------------------------------------------------
29095* filling of histogram with event-record
29096 2 CONTINUE
29097 IF (PE.LT.0.0D0) THEN
29098 WRITE(LOUT,*) ' HIMULT: PE < 0 ! ',PE
29099 RETURN
29100 ENDIF
29101 IF (.NOT.LFRAG) THEN
29102 IVEL = 2
29103 IF (LGREY) IVEL = 3
29104 IF (LBLACK) IVEL = 4
29105 AVE(1,IDBJT) = AVE(1,IDBJT) +PE
29106 AVE(IVEL,IDBJT) = AVE(IVEL,IDBJT)+PE
29107 AVPT(1,IDBJT) = AVPT(1,IDBJT) +PT
29108 AVPT(IVEL,IDBJT) = AVPT(IVEL,IDBJT)+PT
29109 IAVPT(1,IDBJT) = IAVPT(1,IDBJT) +1
29110 IAVPT(IVEL,IDBJT) = IAVPT(IVEL,IDBJT)+1
29111 AVSWM(1,IDBJT) = AVSWM(1,IDBJT) +PE**SWMEXP
29112 AVSWM(IVEL,IDBJT) = AVSWM(IVEL,IDBJT)+PE**SWMEXP
29113 AVMULT(1,IDBJT) = AVMULT(1,IDBJT) +ONE
29114 AVMULT(IVEL,IDBJT) = AVMULT(IVEL,IDBJT)+ONE
29115 IF (IDBJT.LT.116) THEN
29116* total energy, multiplicity
29117 AVE(1,30) = AVE(1,30) +PE
29118 AVE(IVEL,30) = AVE(IVEL,30)+PE
29119 AVPT(1,30) = AVPT(1,30) +PT
29120 AVPT(IVEL,30) = AVPT(IVEL,30)+PT
29121 IAVPT(1,30) = IAVPT(1,30) +1
29122 IAVPT(IVEL,30) = IAVPT(IVEL,30)+1
29123 AVSWM(1,30) = AVSWM(1,30)+PE**SWMEXP
29124 AVSWM(IVEL,30) = AVSWM(IVEL,30)+PE**SWMEXP
29125 AVMULT(1,30) = AVMULT(1,30) +ONE
29126 AVMULT(IVEL,30) = AVMULT(IVEL,30)+ONE
29127* charged energy, multiplicity
29128 IF (ICHAR.LT.0) THEN
29129 AVE(1,26) = AVE(1,26) +PE
29130 AVE(IVEL,26) = AVE(IVEL,26)+PE
29131 AVPT(1,26) = AVPT(1,26) +PT
29132 AVPT(IVEL,26) = AVPT(IVEL,26)+PT
29133 IAVPT(1,26) = IAVPT(1,26) +1
29134 IAVPT(IVEL,26) = IAVPT(IVEL,26)+1
29135 AVSWM(1,26) = AVSWM(1,26) +PE**SWMEXP
29136 AVSWM(IVEL,26) = AVSWM(IVEL,26)+PE**SWMEXP
29137 AVMULT(1,26) = AVMULT(1,26) +ONE
29138 AVMULT(IVEL,26) = AVMULT(IVEL,26)+ONE
29139 ENDIF
29140 IF (ICHAR.NE.0) THEN
29141 AVE(1,27) = AVE(1,27) +PE
29142 AVE(IVEL,27) = AVE(IVEL,27)+PE
29143 AVPT(1,27) = AVPT(1,27) +PT
29144 AVPT(IVEL,27) = AVPT(IVEL,27)+PT
29145 IAVPT(1,27) = IAVPT(1,27) +1
29146 IAVPT(IVEL,27) = IAVPT(IVEL,27)+1
29147 AVSWM(1,27) = AVSWM(1,27) +PE**SWMEXP
29148 AVSWM(IVEL,27) = AVSWM(IVEL,27)+PE**SWMEXP
29149 AVMULT(1,27) = AVMULT(1,27) +ONE
29150 AVMULT(IVEL,27) = AVMULT(IVEL,27)+ONE
29151 ENDIF
29152 ENDIF
29153 ENDIF
29154
29155 RETURN
29156
29157*------------------------------------------------------------------
29158* output
29159 3 CONTINUE
29160 WRITE(LOUT,3000)
29161 3000 FORMAT(/,1X,'HIMULT:',21X,'particle - statistics',/,
29162 & 29X,'---------------------',/)
29163 IF (MULDEF.EQ.1) THEN
29164 WRITE(LOUT,'(1X,A,/)') 'fast/grey/black: EMU-def.'
29165 ELSE
29166 BETGRE = 0.7D0
29167 BETBLC = 0.23D0
29168 WRITE(LOUT,3002) BETGRE,BETGRE,BETBLC,BETBLC
29169 3002 FORMAT(1X,'fast: beta > ',F4.2,' grey: ',F4.2,' > beta > '
29170 & ,F4.2,' black: beta < ',F4.2,/)
29171 ENDIF
29172 WRITE(LOUT,3003) SWMEXP
29173 3003 FORMAT(1X,'particle |',12X,'average multiplicity',/,
29174 & 13X,'| total fast',
29175C & ' grey black K f(',F3.1,')',/,1X,
29176 & ' grey black <pt> f(',F3.1,')',/,1X,
29177 & '------------+--------------',
29178 & '-------------------------------------------------')
29179 DO 30 I=1,NOPART
29180 DO 31 J=1,4
29181 AVMULT(J,I) = AVMULT(J,I)/DBLE(MAX(ICEVT,1))
29182 AVE(J,I) = AVE(J,I)/DBLE(MAX(ICEVT,1))/EPROJ
29183 AVPT(J,I) = AVPT(J,I)/DBLE(MAX(IAVPT(J,I),1))
29184 AVSWM(J,I) = AVSWM(J,I)/DBLE(MAX(ICEVT,1))/EPROJ**SWMEXP
29185 31 CONTINUE
29186 IF (I.LE.115) THEN
29187 WRITE(LOUT,3004) ANAME(I),I,
29188 & AVMULT(1,I),AVMULT(2,I),
29189 & AVMULT(3,I),AVMULT(4,I),
29190C & AVE(1,I),AVSWM(1,I)
29191 & AVPT(1,I),AVSWM(1,I)
29192 ELSEIF (I.LE.119) THEN
29193 WRITE(LOUT,3004) ANAMEH(I-115),I,
29194 & AVMULT(1,I),AVMULT(2,I),
29195 & AVMULT(3,I),AVMULT(4,I),
29196C & AVE(1,I),AVSWM(1,I)
29197 & AVPT(1,I),AVSWM(1,I)
29198 ENDIF
29199 3004 FORMAT(1X,A8,I4,'| ',2F13.6,2F9.5,2F9.5)
29200 30 CONTINUE
29201**temporary
29202C WRITE(LOUT,'(A,F7.3)') ' number of charged heavy particles: ',
29203C & AVMULT(3,27)+AVMULT(4,27)
29204**
29205
29206 RETURN
29207 END
29208
29209*$ CREATE DT_HISTAT.FOR
29210*COPY DT_HISTAT
29211*
29212*===histat=============================================================*
29213*
29214 SUBROUTINE DT_HISTAT(IDX,MODE)
29215
29216************************************************************************
29217* This version dated 26.02.96 is written by S. Roesler *
29218* *
29219* Last change 27.12.2006 by S. Roesler. *
29220************************************************************************
29221
29222 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29223 SAVE
29224 PARAMETER ( LINP = 10 ,
29225 & LOUT = 6 ,
29226 & LDAT = 9 )
29227 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29228 PARAMETER (NDIM=199)
29229
29230* event history
29231 PARAMETER (NMXHKK=200000)
29232 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
29233 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
29234 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
29235* extended event history
29236 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
29237 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
29238 & IHIST(2,NMXHKK)
29239* particle properties (BAMJET index convention)
29240 CHARACTER*8 ANAME
29241 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29242 & IICH(210),IIBAR(210),K1(210),K2(210)
29243 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
29244* Glauber formalism: cross sections
29245 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
29246 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
29247 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
29248 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
29249 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
29250 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
29251 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
29252 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
29253 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
29254 & BSLOPE,NEBINI,NQBINI
29255* emulsion treatment
29256 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
29257 & NCOMPO,IEMUL
29258* properties of interacting particles
29259 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
29260* rejection counter
29261 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
29262 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
29263 & IREXCI(3),IRDIFF(2),IRINC
29264* statistics: residual nuclei
29265 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
29266 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
29267 & NINCST(2,4),NINCEV(2),
29268 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
29269 & NRESPB(2),NRESCH(2),NRESEV(4),
29270 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
29271 & NEVAFI(2,2)
29272* parameter for intranuclear cascade
29273 LOGICAL LPAULI
29274 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
29275* (original name: PAREVT)
29276 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
29277 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
29278 PARAMETER ( NALLWP = 39 )
29279 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
29280 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
29281 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
29282 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
29283* (original name: FRBKCM)
29284 PARAMETER ( MXFFBK = 6 )
29285 PARAMETER ( MXZFBK = 9 )
29286 PARAMETER ( MXNFBK = 10 )
29287 PARAMETER ( MXAFBK = 16 )
29288 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
29289 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
29290 PARAMETER ( NXAFBK = MXAFBK + 1 )
29291 PARAMETER ( MXPSST = 300 )
29292 PARAMETER ( MXPSFB = 41000 )
29293 LOGICAL LFRMBK, LNCMSS
29294 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
29295 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
29296 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
29297 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
29298 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
29299 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
29300 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
29301 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
29302 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
29303* (original name: INPFLG)
29304 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
29305* temporary storage for one final state particle
29306 LOGICAL LFRAG,LGREY,LBLACK
29307 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29308 & SINTHE,COSTHE,THETA,THECMS,
29309 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29310 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29311 & LFRAG,LGREY,LBLACK
29312* event flag used for histograms
29313 COMMON /DTNORM/ ICEVT,IEVHKK
29314* statistics: double-Pomeron exchange
29315 COMMON /DTFLG2/ INTFLG,IPOPO
29316
29317 DIMENSION EMUSAM(NCOMPX)
29318
29319 CHARACTER*13 CMSG(3)
29320 DATA CMSG /'not requested','not requested','not requested'/
29321
29322 GOTO (1,2,3,4,5) MODE
29323
29324*------------------------------------------------------------------
29325* initialization
29326 1 CONTINUE
29327* emulsion treatment
29328 IF (NCOMPO.GT.0) THEN
29329 DO 10 I=1,NCOMPX
29330 EMUSAM(I) = ZERO
29331 10 CONTINUE
29332 ENDIF
29333* common /DTSTA2/, statistics on i.n.c., residual nuclei, evap.
29334 NINCGE = 0
29335 DO 11 I=1,2
29336 EXCDPM(I) = ZERO
29337 EXCDPM(I+2) = ZERO
29338 EXCEVA(I) = ZERO
29339 NINCWO(I) = 0
29340 NINCEV(I) = 0
29341 NRESTO(I) = 0
29342 NRESPR(I) = 0
29343 NRESNU(I) = 0
29344 NRESBA(I) = 0
29345 NRESPB(I) = 0
29346 NRESCH(I) = 0
29347 NRESEV(I) = 0
29348 NRESEV(I+2) = 0
29349 NEVAGA(I) = 0
29350 NEVAHT(I) = 0
29351 NEVAFI(1,I) = 0
29352 NEVAFI(2,I) = 0
29353 DO 12 J=1,6
29354 IF (J.LE.2) NINCHR(I,J) = 0
29355 IF (J.LE.3) NINCCO(I,J) = 0
29356 IF (J.LE.4) NINCST(I,J) = 0
29357 NEVA(I,J) = 0
29358 12 CONTINUE
29359 DO 13 J=1,210
29360 NEVAHY(1,I,J) = 0
29361 NEVAHY(2,I,J) = 0
29362 13 CONTINUE
29363 11 CONTINUE
29364 MAXGEN = 0
29365**dble Po statistics.
29366 KPOPO = 0
29367
29368 RETURN
29369*------------------------------------------------------------------
29370* filling of histogram with event-record
29371 2 CONTINUE
29372 IF (IST.EQ.-1) THEN
29373 IF (.NOT.LFRAG) THEN
29374 IF (IDPDG.EQ.2212) THEN
29375 NEVA(NOBAM(IDX),1) = NEVA(NOBAM(IDX),1)+1
29376 ELSEIF (IDPDG.EQ.2112) THEN
29377 NEVA(NOBAM(IDX),2) = NEVA(NOBAM(IDX),2)+1
29378 ELSEIF (IDPDG.EQ.22) THEN
29379 NEVAGA(NOBAM(IDX)) = NEVAGA(NOBAM(IDX))+1
29380 ELSEIF (IDPDG.EQ.80000) THEN
29381 IF (IDBJT.EQ.116) THEN
29382 NEVA(NOBAM(IDX),3) = NEVA(NOBAM(IDX),3)+1
29383 ELSEIF (IDBJT.EQ.117) THEN
29384 NEVA(NOBAM(IDX),4) = NEVA(NOBAM(IDX),4)+1
29385 ELSEIF (IDBJT.EQ.118) THEN
29386 NEVA(NOBAM(IDX),5) = NEVA(NOBAM(IDX),5)+1
29387 ELSEIF (IDBJT.EQ.119) THEN
29388 NEVA(NOBAM(IDX),6) = NEVA(NOBAM(IDX),6)+1
29389 ENDIF
29390 ENDIF
29391 ELSE
29392* heavy fragments (here: fission products only)
29393 NEVAHY(NOBAM(IDX),1,IBARY) = NEVAHY(NOBAM(IDX),1,IBARY)+1
29394 NEVAHY(NOBAM(IDX),2,ICHAR) = NEVAHY(NOBAM(IDX),2,ICHAR)+1
29395 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29396 ENDIF
29397 ELSEIF ((IST.EQ.1).AND.(.NOT.LFRAG)) THEN
29398 IF (IDCH(IDX).GT.MAXGEN) MAXGEN = IDCH(IDX)
29399 ENDIF
29400
29401 RETURN
29402*------------------------------------------------------------------
29403* output
29404 3 CONTINUE
29405
29406**dble Po statistics.
29407C WRITE(LOUT,'(1X,A,2I7,2E12.4)')
29408C & '# evts. / # dble-Po. evts / s_in / s_popo :',
29409C & ICEVT,KPOPO,XSPRO(1,1,1),XSPRO(1,1,1)*DBLE(KPOPO)/DBLE(ICEVT)
29410
29411* emulsion treatment
29412 IF (NCOMPO.GT.0) THEN
29413 WRITE(LOUT,3000)
29414 3000 FORMAT(/,1X,'HISTAT:',14X,'statistics - target emulsion',/,
29415 & 22X,'----------------------------',/,/,19X,
29416 & 'mass charge fraction',/,39X,
29417 & 'input treated',/)
29418 DO 30 I=1,NCOMPO
29419 WRITE(LOUT,3013) I,IEMUMA(I),IEMUCH(I),EMUFRA(I),
29420 & EMUSAM(I)/DBLE(ICEVT)
29421 3013 FORMAT(12X,I2,1X,2I8,6X,F7.3,5X,F7.3)
29422 30 CONTINUE
29423 ENDIF
29424
29425* i.n.c. statistics: output
29426 WRITE(LOUT,3001) ICEVT,NRESEV(2),IRINC
29427 3001 FORMAT(/,1X,'HISTAT:',14X,'statistics - intranuclear cascade',/,
29428 & 22X,'---------------------------------',/,/,1X,
29429 & 'no. of events for normalization: (accepted final events,',
29430 & ' evt)',4X,I6,/,34X,'(events before evap.-step, evt1)',I6,
29431 & /,1X,'no. of rejected events due to intranuclear',
29432 & ' cascade',15X,I6,/)
29433 ICEV = MAX(ICEVT,1)
29434 ICEV1 = ICEV
29435 IF (LEVPRT) ICEV1 = MAX(NRESEV(2),1)
29436 WRITE(LOUT,3002)
29437 & (DBLE(NINCWO(I))/DBLE(ICEV),I=1,2),
29438 & ((DBLE(NINCST(I,J))/DBLE(ICEV),I=1,2),J=1,4),
29439 & KTAUGE,DBLE(NINCGE)/DBLE(ICEV),
29440 & (DBLE(NINCCO(I,1)+NINCCO(I,2)+NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29441 & (DBLE(NINCCO(I,2))/DBLE(ICEV1),I=1,2),
29442 & (DBLE(NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29443 & (DBLE(NINCCO(I,1))/DBLE(ICEV1),I=1,2)
29444 3002 FORMAT(1X,'no. of wounded nucl. in proj./ target (mean per evt)',
29445 & 5X,F6.2,' /',F6.2,/,1X,'no. of particles unable to escape',
29446 & ' proj./ target (mean per evt)',/,8X,'baryons: pos. ',
29447 & F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,/,8X,
29448 & 'mesons: pos. ',F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,
29449 & /,1X,'maximum no. of generations treated (maximum allowed:'
29450 & ,I4,')',/,43X,'(mean per evt)',5X,F6.2,/,1X,'no. of sec.',
29451 & ' interactions in proj./ target (mean per evt1)',
29452 & F7.3,' /',F7.3,/,8X,'out of which by inelastic',
29453 & ' interactions',12X,F7.3,' /',F7.3,/,21X,'by elastic ',
29454 & 'interactions',14X,F7.3,' /',F7.3,/,21X,'by absorption ',
29455 & '(ap, K-, pi- only) ',F7.3,' /',F7.3,/)
29456 WRITE(LOUT,3003) NRESEV(2),NRESEV(4),IREXCI,
29457 & IREXCI(1)+IREXCI(2)+IREXCI(3)
29458 3003 FORMAT(/,1X,'HISTAT:',14X,'statistics - residual nuclei, ',
29459 & 'evaporation',/,22X,'-----------------------------',
29460 & '------------',/,/,1X,'no. of events for normal.: ',
29461 & '(events handled by FICONF, evt)',7X,I6,/,28X,'(events',
29462 & ' passing the evap.-step, evt1) ',I6,/,1X,'no. of',
29463 & ' rejected events (',I4,',',I4,',',I4,')',22X,I6,/)
29464
29465 WRITE(LOUT,3004)
29466 3004 FORMAT(/,22X,'1) before evaporation-step:',/)
29467 ICEV = MAX(NRESEV(2),1)
29468 WRITE(LOUT,3005)
29469 & (DBLE(NRESTO(I))/DBLE(ICEV),I=1,2),
29470 & (DBLE(NRESPR(I))/DBLE(ICEV),I=1,2),
29471 & (DBLE(NRESNU(I))/DBLE(ICEV),I=1,2),
29472 & (DBLE(NRESBA(I))/DBLE(ICEV),I=1,2),
29473 & (DBLE(NRESPB(I))/DBLE(ICEV),I=1,2),
29474 & (DBLE(NRESCH(I))/DBLE(ICEV),I=1,2),
29475 & (EXCDPM(I)/DBLE(ICEV),I=1,2),
29476 & (EXCDPM(I+2)/DBLE(ICEV),I=1,2)
29477 3005 FORMAT(1X,'residual nuclei: (mean values per evt)',12X,
29478 & 'proj. / target',/,/,8X,'total number of particles',15X,
29479 & 2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29480 & 'neutrons',18X,2F9.3,/,22X,'baryons',19X,2F9.3,/,22X,
29481 & 'pos. baryons',14X,2F9.3,/,8X,'total charge',28X,2F9.3,/,
29482 & /,8X,'excitation energy (bef. evap.-step) ',2E11.3,/,
29483 & 8X,'excitation energy per nucleon ',2E11.3,/,/)
29484
29485* evaporation / fission / fragmentation statistics: output
29486 ICEV = MAX(NRESEV(2),1)
29487 ICEV1 = MAX(NRESEV(4),1)
29488 NTEVA1 =
29489 & NEVA(1,1)+NEVA(1,2)+NEVA(1,3)+NEVA(1,4)+NEVA(1,5)+NEVA(1,6)
29490 NTEVA2 =
29491 & NEVA(2,1)+NEVA(2,2)+NEVA(2,3)+NEVA(2,4)+NEVA(2,5)+NEVA(2,6)
29492 IF (LEVPRT) THEN
29493 IF (IFISS.EQ.1) CMSG(1) = 'requested '
29494 IF (LFRMBK) CMSG(2) = 'requested '
29495 IF (LDEEXG) CMSG(3) = 'requested '
29496 WRITE(LOUT,3006)
29497 & CMSG,
29498 & DBLE(NTEVA1)/DBLE(ICEV1),DBLE(NTEVA2)/DBLE(ICEV1),
29499 & (DBLE(NEVA(I,1))/DBLE(ICEV1),I=1,2),
29500 & (DBLE(NEVA(I,2))/DBLE(ICEV1),I=1,2),
29501 & (DBLE(NEVA(I,3))/DBLE(ICEV1),I=1,2),
29502 & (DBLE(NEVA(I,4))/DBLE(ICEV1),I=1,2),
29503 & (DBLE(NEVA(I,5))/DBLE(ICEV1),I=1,2),
29504 & (DBLE(NEVA(I,6))/DBLE(ICEV1),I=1,2),
29505 & (DBLE(NEVAGA(I))/DBLE(ICEV1),I=1,2),
29506 & (DBLE(NEVAHT(I))/DBLE(ICEV1),I=1,2)
29507 3006 FORMAT(22X,'2) after evaporation-step:',/,/,1X,'Fission:',
29508 & 13X,A13,/,1X,'Fermi-Break-up:',6X,A13,/,1X,'Gamma-',
29509 & 'deexcitation:',2X,A13,/,/,
29510 & 1X,'evaporation/deexcitation: (mean values per evt1) ',
29511 & 'proj. / target',/,/,8X,'total number of evap. particles',
29512 & 9X,2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29513 & 'neutrons',18X,2F9.3,/,22X,'deuterons',17X,2F9.3,/,22X,
29514 & '3-H',23X,2F9.3,/,22X,'3-He',22X,2F9.3,/,22X,'4-He',22X,
29515 & 2F9.3,/,8X,'nucl. deexcit. gammas',19X,2F9.3,/,8X,
29516 & 'heavy fragments',25X,2F9.3,/)
29517 IF (IFISS.EQ.1) THEN
29518 WRITE(LOUT,3007) NEVAFI(1,1),NEVAFI(1,2),
29519 & NEVAFI(2,1),NEVAFI(2,2),
29520 & DBLE(NEVAFI(2,1))/DBLE(MAX(NEVAFI(1,1),1))*100.0D0,
29521 & DBLE(NEVAFI(2,2))/DBLE(MAX(NEVAFI(1,2),1))*100.0D0
29522 3007 FORMAT(1X,'Fission: total number of events',14X,2I9,/
29523 & 12X,'out of which fission occured',8X,2I9,/,
29524 & 50X,'(',F5.2,'%) (',F5.2,'%)',/)
29525 ENDIF
29526C IF ((LFRMBK).OR.(IFISS.EQ.1)) THEN
29527C WRITE(LOUT,3008)
29528C3008 FORMAT(1X,'heavy fragments - statistics:',7X,'charge',
29529C & ' proj. / target',/)
29530C DO 31 I=1,210
29531C IF ((NEVAHY(1,2,I).NE.0).OR.(NEVAHY(2,2,I).NE.0)) THEN
29532C WRITE(LOUT,3009) I,
29533C & (DBLE(NEVAHY(K,2,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29534C3009 FORMAT(38X,I3,3X,2E12.3)
29535C ENDIF
29536C 31 CONTINUE
29537C WRITE(LOUT,3010)
29538C3010 FORMAT(1X,'heavy fragments - statistics:',7X,'mass ',
29539C & ' proj. / target',/)
29540C DO 32 I=1,210
29541C IF ((NEVAHY(1,1,I).NE.0).OR.(NEVAHY(2,1,I).NE.0)) THEN
29542C WRITE(LOUT,3011) I,
29543C & (DBLE(NEVAHY(K,1,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29544C3011 FORMAT(38X,I3,3X,2E12.3)
29545C ENDIF
29546C 32 CONTINUE
29547C WRITE(LOUT,*)
29548C ENDIF
29549 ELSE
29550 WRITE(LOUT,3012)
29551 3012 FORMAT(22X,'2) after evaporation-step:',/,/,1X,
29552 & 'Evaporation: not requested',/)
29553 ENDIF
29554
29555 RETURN
29556*------------------------------------------------------------------
29557* filling of histogram with event-record
29558 4 CONTINUE
29559* emulsion treatment
29560 IF (NCOMPO.GT.0) THEN
29561 DO 40 I=1,NCOMPO
29562 IF (IT.EQ.IEMUMA(I)) THEN
29563 EMUSAM(I) = EMUSAM(I)+ONE
29564 ENDIF
29565 40 CONTINUE
29566 ENDIF
29567 NINCGE = NINCGE+MAXGEN
29568 MAXGEN = 0
29569**dble Po statistics.
29570 IF (IPOPO.EQ.1) KPOPO = KPOPO+1
29571
29572 RETURN
29573*------------------------------------------------------------------
29574* filling of histogram with event-record
29575 5 CONTINUE
29576 IF ((ISTHKK(IDX).EQ.15).OR.(ISTHKK(IDX).EQ.16)) THEN
29577 IB = IIBAR(IDBAM(IDX))
29578 IC = IICH(IDBAM(IDX))
29579 J = ISTHKK(IDX)-14
29580 IF ( ((ABS(IB).EQ.1).AND.(IC.EQ.1)).OR.(IC.EQ.0) ) THEN
29581 NINCST(J,1) = NINCST(J,1)+1
29582 ELSEIF ((ABS(IB).EQ.1).AND.(IC.EQ.-1)) THEN
29583 NINCST(J,2) = NINCST(J,2)+1
29584 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ. 1)) THEN
29585 NINCST(J,3) = NINCST(J,3)+1
29586 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ.-1)) THEN
29587 NINCST(J,4) = NINCST(J,4)+1
29588 ENDIF
29589 ELSEIF (ISTHKK(IDX).EQ.17) THEN
29590 NINCWO(1) = NINCWO(1)+1
29591 ELSEIF (ISTHKK(IDX).EQ.18) THEN
29592 NINCWO(2) = NINCWO(2)+1
29593 ELSEIF (ISTHKK(IDX).EQ.1001) THEN
29594 IB = IDRES(IDX)
29595 IC = IDXRES(IDX)
29596 IF (IC.GT.0) THEN
29597 NEVAHY(NOBAM(IDX),1,IB) = NEVAHY(NOBAM(IDX),1,IB)+1
29598 NEVAHY(NOBAM(IDX),2,IC) = NEVAHY(NOBAM(IDX),2,IC)+1
29599 ENDIF
29600 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29601 ENDIF
29602
29603 RETURN
29604 END
29605
29606*$ CREATE DT_NEWHGR.FOR
29607*COPY DT_NEWHGR
29608*
29609*===newhgr=============================================================*
29610*
29611 SUBROUTINE DT_NEWHGR(XLIM1,XLIM2,XLIM3,XLIMB,IBIN,IREFN)
29612
29613************************************************************************
29614* *
29615* Histogram initialization. *
29616* *
29617* input: XLIM1/XLIM2 lower/upper edge of histogram-window *
29618* XLIM3 bin size *
29619* IBIN > 0 number of bins in equidistant lin. binning *
29620* = -1 reset histograms *
29621* < -1 |IBIN| number of bins in equidistant log. *
29622* binning or log. binning in user def. struc. *
29623* XLIMB(*) user defined bin structure *
29624* *
29625* The bin structure is sensitive to *
29626* XLIM1, XLIM3, IBIN if XLIM3 > 0 (lin.) *
29627* XLIM1, XLIM2, IBIN if XLIM3 = 0 (lin. & log.) *
29628* XLIMB, IBIN if XLIM3 < 0 *
29629* *
29630* *
29631* output: IREFN histogram index *
29632* (= -1 for inconsistent histogr. request) *
29633* *
29634* This subroutine is based on a original version by R. Engel. *
29635* This version dated 22.4.95 is written by S. Roesler. *
29636************************************************************************
29637
29638 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29639 SAVE
29640 PARAMETER ( LINP = 10 ,
29641 & LOUT = 6 ,
29642 & LDAT = 9 )
29643
29644 LOGICAL LSTART
29645
29646 PARAMETER (ZERO = 0.0D0,
29647 & TINY = 1.0D-10)
29648
29649 DIMENSION XLIMB(*)
29650
29651* histograms
29652 PARAMETER (NHIS=150, NDIM=250)
29653 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29654 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29655* auxiliary common for histograms
29656 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29657
29658 DATA LSTART /.TRUE./
29659
29660* reset histogram counter
29661 IF (LSTART.OR.(IBIN.EQ.-1)) THEN
29662 IHISL = 0
29663 IF (IBIN.EQ.-1) RETURN
29664 LSTART = .FALSE.
29665 ENDIF
29666
29667 IHIS = IHISL+1
29668* check for maximum number of allowed histograms
29669 IF (IHIS.GT.NHIS) THEN
29670 WRITE(LOUT,1003) IHIS,NHIS,IHIS
29671 1003 FORMAT(1X,'NEWHGR: warning! number of histograms (',
29672 & I4,') exceeds array size (',I4,')',/,21X,
29673 & 'histogram',I3,' skipped!')
29674 GOTO 9999
29675 ENDIF
29676
29677 IREFN = IHIS
29678 IBINS(IHIS) = ABS(IBIN)
29679* check requested number of bins
29680 IF (IBINS(IHIS).GE.NDIM) THEN
29681 WRITE(LOUT,1000) IBIN,NDIM,NDIM
29682 1000 FORMAT(1X,'NEWHGR: warning! number of bins (',
29683 & I3,') exceeds array size (',I3,')',/,21X,
29684 & 'and will be reset to ',I3)
29685 IBINS(IHIS) = NDIM
29686 ENDIF
29687 IF (IBINS(IHIS).EQ.0) THEN
29688 WRITE(LOUT,1001) IBIN,IHIS
29689 1001 FORMAT(1X,'NEWHGR: warning! inconsistent number of',
29690 & ' bins (',I3,')',/,21X,'histogram',I3,' skipped!')
29691 GOTO 9999
29692 ENDIF
29693
29694* initialize arrays
29695 DO 1 I=1,NDIM
29696 DO 2 K=1,3
29697 HIST(K,IHIS,I) = ZERO
29698 HIST(K+3,IHIS,I) = ZERO
29699 TMPHIS(K,IHIS,I) = ZERO
29700 2 CONTINUE
29701 HIST(7,IHIS,I) = ZERO
29702 1 CONTINUE
29703 DENTRY(1,IHIS)= ZERO
29704 DENTRY(2,IHIS)= ZERO
29705 OVERF(IHIS) = ZERO
29706 UNDERF(IHIS) = ZERO
29707 TMPUFL(IHIS) = ZERO
29708 TMPOFL(IHIS) = ZERO
29709
29710* bin str. sensitive to lower edge, bin size, and numb. of bins
29711 IF (XLIM3.GT.ZERO) THEN
29712 DO 3 K=1,IBINS(IHIS)+1
29713 HIST(1,IHIS,K) = XLIM1+DBLE(K-1)*XLIM3
29714 3 CONTINUE
29715 ISWI(IHIS) = 1
29716* bin str. sensitive to lower/upper edge and numb. of bins
29717 ELSEIF (XLIM3.EQ.ZERO) THEN
29718* linear binning
29719 IF (IBIN.GT.0) THEN
29720 XLOW = XLIM1
29721 XHI = XLIM2
29722 IF (XLIM2.LE.XLIM1) THEN
29723 WRITE(LOUT,1002) XLIM1,XLIM2
29724 1002 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29725 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29726 GOTO 9999
29727 ENDIF
29728 ISWI(IHIS) = 1
29729 ELSEIF (IBIN.LT.-1) THEN
29730* logarithmic binning
29731 IF ((XLIM1.LE.ZERO).OR.(XLIM2.LE.ZERO)) THEN
29732 WRITE(LOUT,1004) XLIM1,XLIM2
29733 1004 FORMAT(1X,'NEWHGR: warning! inconsistent log. ',
29734 & 'binning',/,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29735 GOTO 9999
29736 ENDIF
29737 IF (XLIM2.LE.XLIM1) THEN
29738 WRITE(LOUT,1005) XLIM1,XLIM2
29739 1005 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29740 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29741 GOTO 9999
29742 ENDIF
29743 XLOW = LOG10(XLIM1)
29744 XHI = LOG10(XLIM2)
29745 ISWI(IHIS) = 3
29746 ENDIF
29747 DX = ABS(XHI-XLOW)/DBLE(MAX(IBINS(IHIS),1))
29748 DO 4 K=1,IBINS(IHIS)+1
29749 HIST(1,IHIS,K) = XLOW+DBLE(K-1)*DX
29750 4 CONTINUE
29751 ELSE
29752* user defined bin structure
29753 DO 5 K=1,IBINS(IHIS)+1
29754 IF (IBIN.GT.0) THEN
29755 HIST(1,IHIS,K) = XLIMB(K)
29756 ISWI(IHIS) = 2
29757 ELSEIF (IBIN.LT.-1) THEN
29758 HIST(1,IHIS,K) = LOG10(XLIMB(K))
29759 ISWI(IHIS) = 4
29760 ENDIF
29761 5 CONTINUE
29762 ENDIF
29763
29764* histogram accepted
29765 IHISL = IHIS
29766
29767 RETURN
29768
29769 9999 CONTINUE
29770 IREFN = -1
29771 RETURN
29772 END
29773
29774*$ CREATE DT_FILHGR.FOR
29775*COPY DT_FILHGR
29776*
29777*===filhgr=============================================================*
29778*
29779 SUBROUTINE DT_FILHGR(XI,YI,IHIS,NEVT)
29780
29781************************************************************************
29782* *
29783* Scoring for histogram IHIS. *
29784* *
29785* This subroutine is based on a original version by R. Engel. *
29786* This version dated 23.4.95 is written by S. Roesler. *
29787************************************************************************
29788
29789 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29790 SAVE
29791 PARAMETER ( LINP = 10 ,
29792 & LOUT = 6 ,
29793 & LDAT = 9 )
29794
29795 PARAMETER (ZERO = 0.0D0,
29796 & ONE = 1.0D0,
29797 & TINY = 1.0D-10)
29798
29799* histograms
29800 PARAMETER (NHIS=150, NDIM=250)
29801 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29802 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29803* auxiliary common for histograms
29804 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29805
29806 DATA NCEVT /1/
29807
29808 X = XI
29809 Y = YI
29810
29811* dump content of temorary arrays into histograms
29812 IF ((NEVT.NE.NCEVT).OR.(NEVT.LT.0)) THEN
29813 CALL DT_EVTHIS(IDUM)
29814 NCEVT = NEVT
29815 ENDIF
29816
29817* check histogram index
29818 IF (IHIS.EQ.-1) RETURN
29819 IF ((IHIS.LT.1).OR.(IHIS.GT.IHISL)) THEN
29820C WRITE(LOUT,1000) IHIS,IHISL
29821 1000 FORMAT(1X,'FILHGR: warning! histogram index',I4,
29822 & ' out of range (1..',I3,')')
29823 RETURN
29824 ENDIF
29825
29826 IF ((ISWI(IHIS).EQ.1).OR.(ISWI(IHIS).EQ.3)) THEN
29827* bin structure not explicitly given
29828 IF ((ISWI(IHIS).EQ.3).AND.(X.GT.ZERO)) X = LOG10(X)
29829 DX = ABS(HIST(1,IHIS,2)-HIST(1,IHIS,1))
29830 IF (X.LT.HIST(1,IHIS,1)) THEN
29831 I1 = 0
29832 ELSE
29833 I1 = INT( (X-HIST(1,IHIS,1))/MAX(DX,TINY) )+1
29834 ENDIF
29835
29836 ELSEIF ((ISWI(IHIS).EQ.2).OR.(ISWI(IHIS).EQ.4)) THEN
29837* user defined bin structure
29838 IF ((ISWI(IHIS).EQ.4).AND.(X.GT.ZERO)) X = LOG10(X)
29839 IF (X.LT.HIST(1,IHIS,1)) THEN
29840 I1 = 0
29841 ELSE IF (X.GT.HIST(1,IHIS,IBINS(IHIS)+1)) THEN
29842 I1 = IBINS(IHIS)+1
29843 ELSE
29844* binary sort algorithm
29845 KMIN = 0
29846 KMAX = IBINS(IHIS)+1
29847 1 CONTINUE
29848 IF ((KMAX-KMIN).EQ.1) GOTO 2
29849 KK = (KMAX+KMIN)/2
29850 IF (X.LE.HIST(1,IHIS,KK)) THEN
29851 KMAX=KK
29852 ELSE
29853 KMIN=KK
29854 ENDIF
29855 GOTO 1
29856 2 CONTINUE
29857 I1 = KMIN
29858 ENDIF
29859
29860 ELSE
29861 WRITE(LOUT,1001)
29862 1001 FORMAT(1X,'FILHGR: warning! histogram not initialized')
29863 RETURN
29864 ENDIF
29865
29866* scoring
29867 IF (I1.LE.0) THEN
29868 TMPUFL(IHIS) = TMPUFL(IHIS)+ONE
29869 ELSEIF (I1.LE.IBINS(IHIS)) THEN
29870 TMPHIS(1,IHIS,I1) = TMPHIS(1,IHIS,I1)+ONE
29871 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
29872 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+10**X
29873 ELSE
29874 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+X
29875 ENDIF
29876 TMPHIS(3,IHIS,I1) = TMPHIS(3,IHIS,I1)+Y
29877 ELSE
29878 TMPOFL(IHIS) = TMPOFL(IHIS)+ONE
29879 ENDIF
29880
29881 RETURN
29882 END
29883
29884*$ CREATE DT_EVTHIS.FOR
29885*COPY DT_EVTHIS
29886*
29887*===evthis=============================================================*
29888*
29889 SUBROUTINE DT_EVTHIS(NEVT)
29890
29891************************************************************************
29892* Dump content of temorary histograms into /DTHIS1/. This subroutine *
29893* is called after each event and for the last event before any call *
29894* to OUTHGR. *
29895* NEVT number of events dumped, this is only needed to *
29896* get the normalization after the last event *
29897* This version dated 23.4.95 is written by S. Roesler. *
29898************************************************************************
29899
29900 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29901 SAVE
29902 PARAMETER ( LINP = 10 ,
29903 & LOUT = 6 ,
29904 & LDAT = 9 )
29905
29906 LOGICAL LNOETY
29907
29908 PARAMETER (ZERO = 0.0D0,
29909 & ONE = 1.0D0,
29910 & TINY = 1.0D-10)
29911
29912* histograms
29913 PARAMETER (NHIS=150, NDIM=250)
29914 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29915 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29916* auxiliary common for histograms
29917 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29918
29919 DATA NCEVT /0/
29920
29921 NCEVT = NCEVT+1
29922 NEVT = NCEVT
29923
29924 DO 1 I=1,IHISL
29925 LNOETY = .TRUE.
29926 DO 2 J=1,IBINS(I)
29927 IF (TMPHIS(1,I,J).GT.ZERO) THEN
29928 LNOETY = .FALSE.
29929 HIST(2,I,J) = HIST(2,I,J)+ONE
29930 HIST(7,I,J) = HIST(7,I,J)+TMPHIS(1,I,J)
29931 DENTRY(2,I) = DENTRY(2,I)+TMPHIS(1,I,J)
29932 AVX = TMPHIS(2,I,J)/TMPHIS(1,I,J)
29933 HIST(3,I,J) = HIST(3,I,J)+TMPHIS(3,I,J)*AVX
29934 HIST(4,I,J) = HIST(4,I,J)+TMPHIS(3,I,J)*AVX**2
29935 HIST(5,I,J) = HIST(5,I,J)+TMPHIS(3,I,J)
29936 HIST(6,I,J) = HIST(6,I,J)+TMPHIS(3,I,J)**2
29937 TMPHIS(1,I,J) = ZERO
29938 TMPHIS(2,I,J) = ZERO
29939 TMPHIS(3,I,J) = ZERO
29940 ENDIF
29941 2 CONTINUE
29942 IF (LNOETY) THEN
29943 IF (TMPUFL(I).GT.ZERO) THEN
29944 UNDERF(I) = UNDERF(I)+ONE
29945 TMPUFL(I) = ZERO
29946 ELSEIF (TMPOFL(I).GT.ZERO) THEN
29947 OVERF(I) = OVERF(I)+ONE
29948 TMPOFL(I) = ZERO
29949 ENDIF
29950 ELSE
29951 DENTRY(1,I) = DENTRY(1,I)+ONE
29952 ENDIF
29953 1 CONTINUE
29954
29955 RETURN
29956 END
29957
29958*$ CREATE DT_OUTHGR.FOR
29959*COPY DT_OUTHGR
29960*
29961*===outhgr=============================================================*
29962*
29963 SUBROUTINE DT_OUTHGR(I1,I2,I3,I4,I5,I6,CHEAD,IHEAD,NEVTS,FAC,
29964 & ILOGY,INORM,NMODE)
29965
29966************************************************************************
29967* *
29968* Plot histogram(s) to standard output unit *
29969* *
29970* I1..6 indices of histograms to be plotted *
29971* CHEAD,IHEAD header string,integer *
29972* NEVTS number of events *
29973* FAC scaling factor *
29974* ILOGY = 1 logarithmic y-axis *
29975* INORM normalization *
29976* = 0 no further normalization (FAC is obsolete) *
29977* = 1 per event and bin width *
29978* = 2 per entry and bin width *
29979* = 3 per bin entry *
29980* = 4 per event and "bin width" x1^2...x2^2 *
29981* = 5 per event and "log. bin width" ln x1..ln x2 *
29982* = 6 per event *
29983* MODE = 0 no output but normalization applied *
29984* = 1 all valid histograms separately (small frame) *
29985* all valid histograms separately (small frame) *
29986* = -1 and tables as histograms *
29987* = 2 all valid histograms (one plot, wide frame) *
29988* all valid histograms (one plot, wide frame) *
29989* = -2 and tables as histograms *
29990* *
29991* *
29992* Note: All histograms to be plotted with one call to this *
29993* subroutine and |MODE|=2 must have the same bin structure! *
29994* There is no test included ensuring this fact. *
29995* *
29996* This version dated 23.4.95 is written by S. Roesler. *
29997************************************************************************
29998
29999 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30000 SAVE
30001 PARAMETER ( LINP = 10 ,
30002 & LOUT = 6 ,
30003 & LDAT = 9 )
30004
30005 CHARACTER*72 CHEAD
30006
30007 PARAMETER (ZERO = 0.0D0,
30008 & IZERO = 0,
30009 & ONE = 1.0D0,
30010 & TWO = 2.0D0,
30011 & OHALF = 0.5D0,
30012 & EPS = 1.0D-5,
30013 & TINY = 1.0D-8,
30014 & SMALL = -1.0D8,
30015 & RLARGE = 1.0D8 )
30016
30017* histograms
30018 PARAMETER (NHIS=150, NDIM=250)
30019 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30020 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30021
30022 PARAMETER (NDIM2 = 2*NDIM)
30023 DIMENSION XX(NDIM2),YY(NDIM2)
30024
30025 PARAMETER (NHISTO = 6)
30026 DIMENSION YY1(NDIM,NHISTO),XX1(NDIM,NHISTO),IDX1(NHISTO),
30027 & IDX(NHISTO)
30028
30029 CHARACTER*43 CNORM(0:8)
30030 DATA CNORM /'no further normalization ',
30031 & 'per event and bin width ',
30032 & 'per entry1 and bin width ',
30033 & 'per bin entry ',
30034 & 'per event and "bin width" x1^2...x2^2 ',
30035 & 'per event and "log. bin width" ln x1..ln x2',
30036 & 'per event ',
30037 & 'per bin entry1 ',
30038 & 'per entry2 and bin width '/
30039
30040 IDX1(1) = I1
30041 IDX1(2) = I2
30042 IDX1(3) = I3
30043 IDX1(4) = I4
30044 IDX1(5) = I5
30045 IDX1(6) = I6
30046
30047 MODE = NMODE
30048
30049* initialization if "wide frame" is requested
30050 IF (ABS(MODE).EQ.2) THEN
30051 DO 1 I=1,NHISTO
30052 DO 2 J=1,NDIM
30053 XX1(J,I) = ZERO
30054 YY1(J,I) = ZERO
30055 2 CONTINUE
30056 1 CONTINUE
30057 ENDIF
30058
30059* plot header
30060 WRITE(LOUT,'(/1X,A,I3,/,1X,70A1)') CHEAD,IHEAD,('=',II=1,70)
30061
30062* check histogram indices
30063 NHI = 0
30064 DO 3 I=1,NHISTO
30065 IF ((IDX1(I).GE.1).AND.(IDX1(I).LE.IHISL)) THEN
30066 IF (ISWI(IDX1(I)).NE.0) THEN
30067 IF (DENTRY(1,IDX1(I)).LT.ONE) THEN
30068 WRITE(LOUT,1000)
30069 & IDX1(I),UNDERF(IDX1(I)),OVERF(IDX1(I))
30070 1000 FORMAT(/,1X,'OUTHGR: warning! no entries in',
30071 & ' histogram ',I3,/,21X,'underflows:',F10.0,
30072 & ' overflows: ',F10.0)
30073 ELSE
30074 NHI = NHI+1
30075 IDX(NHI) = IDX1(I)
30076 ENDIF
30077 ENDIF
30078 ENDIF
30079 3 CONTINUE
30080 IF (NHI.EQ.0) THEN
30081 WRITE(LOUT,1001)
30082 1001 FORMAT(/,1X,'OUTHGR: warning! histogram indices not valid')
30083 RETURN
30084 ENDIF
30085
30086* check normalization request
30087 IF ( ((FAC.EQ.ZERO).AND.(INORM.NE.0)).OR.
30088 & ((NEVTS.LT.1).AND.((INORM.EQ.1).OR.(INORM.EQ.4).OR.
30089 & (INORM.EQ.5).OR.(INORM.EQ.6))).OR.
30090 & (INORM.LT.0).OR.(INORM.GT.8) ) THEN
30091 WRITE(LOUT,1002) NEVTS,INORM,FAC
30092 1002 FORMAT(/,1X,'OUTHGR: warning! normalization request not ',
30093 & 'valid',/,21X,'NEVTS = ',I7,4X,'INORM = ',I2,4X,
30094 & 'FAC = ',E11.4)
30095 RETURN
30096 ENDIF
30097
30098 WRITE(LOUT,'(/,1X,A,I8)') 'number of events:',NEVTS
30099
30100* apply normalization
30101 DO 4 N=1,NHI
30102
30103 I = IDX(N)
30104
30105 IF (ISWI(I).EQ.1) THEN
30106 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30107 1003 FORMAT(/,1X,'histo.',I4,', linear binning from',2X,E10.4,
30108 & ' to',2X,E10.4,',',2X,I3,' bins')
30109 ELSEIF (ISWI(I).EQ.2) THEN
30110 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30111 WRITE(LOUT,1007)
30112 1007 FORMAT(1X,'user defined bin structure')
30113 ELSEIF (ISWI(I).EQ.3) THEN
30114 WRITE(LOUT,1004)
30115 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30116 1004 FORMAT(/,1X,'histo.',I4,', logar. binning from',2X,E10.4,
30117 & ' to',2X,E10.4,',',2X,I3,' bins')
30118 ELSEIF (ISWI(I).EQ.4) THEN
30119 WRITE(LOUT,1004)
30120 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30121 WRITE(LOUT,1007)
30122 ELSE
30123 WRITE(LOUT,1008) ISWI(I)
30124 1008 FORMAT(/,1X,'warning! inconsistent bin structure flag ',I4)
30125 ENDIF
30126 WRITE(LOUT,1005) DENTRY(1,I),DENTRY(2,I),UNDERF(I),OVERF(I)
30127 1005 FORMAT(13X,'entries:',2F9.0,' underfl.:',F8.0,
30128 & ' overfl.:',F8.0)
30129 WRITE(LOUT,1009) CNORM(INORM)
30130 1009 FORMAT(1X,'normalization: ',A,/)
30131
30132 DO 5 K=1,IBINS(I)
30133 CALL DT_GETBIN(I,K,NEVTS,INORM,XLOW,XHI,XMEAN,YMEAN,YERR)
30134 YMEAN = FAC*YMEAN
30135 YERR = FAC*YERR
30136 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,YERR,HIST(2,I,K)
30137 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,YERR,HIST(2,I,K)
30138 1006 FORMAT(1X,5E11.3)
30139* small frame
30140 II = 2*K
30141 XX(II-1) = HIST(1,I,K)
30142 XX(II) = HIST(1,I,K+1)
30143 YY(II-1) = YMEAN
30144 YY(II) = YMEAN
30145* wide frame
30146 XX1(K,N) = XMEAN
30147 IF ((ISWI(I).EQ.3).OR.(ISWI(I).EQ.4))
30148 & XX1(K,N) = LOG10(XMEAN)
30149 YY1(K,N) = YMEAN
30150 5 CONTINUE
30151
30152* plot small frame
30153 IF (ABS(MODE).EQ.1) THEN
30154 IBIN2 = 2*IBINS(I)
30155 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30156 IF(ILOGY.EQ.1) THEN
30157 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30158 ELSE
30159 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30160 ENDIF
30161 ENDIF
30162
30163 4 CONTINUE
30164
30165* plot wide frame
30166 IF (ABS(MODE).EQ.2) THEN
30167 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30168 NSIZE = NDIM*NHISTO
30169 DXLOW = HIST(1,IDX(1),1)
30170 DDX = ABS(HIST(1,IDX(1),2)-HIST(1,IDX(1),1))
30171 YLOW = RLARGE
30172 YHI = SMALL
30173 DO 6 I=1,NHISTO
30174 DO 7 J=1,NDIM
30175 IF (YY1(J,I).LT.YLOW) THEN
30176 IF (ILOGY.EQ.1) THEN
30177 IF (YY1(J,I).GT.ZERO) YLOW = YY1(J,I)
30178 ELSE
30179 YLOW = YY1(J,I)
30180 ENDIF
30181 ENDIF
30182 IF (YY1(J,I).GT.YHI) YHI = YY1(J,I)
30183 7 CONTINUE
30184 6 CONTINUE
30185 DY = (YHI-YLOW)/DBLE(NDIM)
30186 IF (DY.LE.ZERO) THEN
30187 WRITE(LOUT,'(1X,A,6I4,A,2E12.4)')
30188 & 'OUTHGR: warning! zero bin width for histograms ',
30189 & IDX,': ',YLOW,YHI
30190 RETURN
30191 ENDIF
30192 IF (ILOGY.EQ.1) THEN
30193 YLOW = LOG10(YLOW)
30194 DY = (LOG10(YHI)-YLOW)/100.0D0
30195 DO 8 I=1,NHISTO
30196 DO 9 J=1,NDIM
30197 IF (YY1(J,I).LE.ZERO) THEN
30198 YY1(J,I) = YLOW
30199 ELSE
30200 YY1(J,I) = LOG10(YY1(J,I))
30201 ENDIF
30202 9 CONTINUE
30203 8 CONTINUE
30204 ENDIF
30205 CALL DT_SRPLOT(XX1,YY1,NSIZE,NHISTO,NDIM,DXLOW,DDX,YLOW,DY)
30206 ENDIF
30207
30208 RETURN
30209 END
30210
30211*$ CREATE DT_GETBIN.FOR
30212*COPY DT_GETBIN
30213*
30214*===getbin=============================================================*
30215*
30216 SUBROUTINE DT_GETBIN(IHIS,IBIN,KEVT,NORM,XLOW,XHI,
30217 & XMEAN,YMEAN,YERR)
30218
30219************************************************************************
30220* This version dated 23.4.95 is written by S. Roesler. *
30221************************************************************************
30222
30223 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30224 SAVE
30225 PARAMETER ( LINP = 10 ,
30226 & LOUT = 6 ,
30227 & LDAT = 9 )
30228
30229 PARAMETER (ZERO = 0.0D0,
30230 & ONE = 1.0D0,
30231 & TINY35 = 1.0D-35)
30232
30233* histograms
30234 PARAMETER (NHIS=150, NDIM=250)
30235 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30236 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30237
30238 XLOW = HIST(1,IHIS,IBIN)
30239 XHI = HIST(1,IHIS,IBIN+1)
30240 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
30241 XLOW = 10**XLOW
30242 XHI = 10**XHI
30243 ENDIF
30244 IF (NORM.EQ.2) THEN
30245 DX = XHI-XLOW
30246 NEVT = INT(DENTRY(1,IHIS))
30247 ELSEIF (NORM.EQ.3) THEN
30248 DX = ONE
30249 NEVT = INT(HIST(2,IHIS,IBIN))
30250 ELSEIF (NORM.EQ.4) THEN
30251 DX = XHI**2-XLOW**2
30252 NEVT = KEVT
30253 ELSEIF (NORM.EQ.5) THEN
30254 DX = LOG(ABS(XHI))-LOG(ABS(XLOW))
30255 NEVT = KEVT
30256 ELSEIF (NORM.EQ.6) THEN
30257 DX = ONE
30258 NEVT = KEVT
30259 ELSEIF (NORM.EQ.7) THEN
30260 DX = ONE
30261 NEVT = INT(HIST(7,IHIS,IBIN))
30262 ELSEIF (NORM.EQ.8) THEN
30263 DX = XHI-XLOW
30264 NEVT = INT(DENTRY(2,IHIS))
30265 ELSE
30266 DX = ABS(XHI-XLOW)
30267 NEVT = KEVT
30268 ENDIF
30269 IF (ABS(DX).LT.TINY35) DX = ONE
30270 NEVT = MAX(NEVT,1)
30271 YMEAN = HIST(5,IHIS,IBIN)/DX/DBLE(NEVT)
30272 YMEAN2 = HIST(6,IHIS,IBIN)/DX**2/DBLE(NEVT)
30273 YERR = SQRT(ABS(YMEAN2-YMEAN**2))/SQRT(DBLE(NEVT))
30274 YSUM = HIST(5,IHIS,IBIN)
30275 IF (ABS(YSUM).LT.TINY35) YSUM = ONE
30276C XMEAN = HIST(3,IHIS,IBIN)/YSUM/MAX(HIST(2,IHIS,IBIN),ONE)
30277 XMEAN = HIST(3,IHIS,IBIN)/YSUM
30278 IF (XMEAN.EQ.ZERO) XMEAN = XLOW
30279
30280 RETURN
30281 END
30282
30283*$ CREATE DT_JOIHIS.FOR
30284*COPY DT_JOIHIS
30285*
30286*===joihis=============================================================*
30287*
30288 SUBROUTINE DT_JOIHIS(IH1,IH2,COPER,FAC1,FAC2,KEVT,NORM,ILOGY,MODE)
30289
30290************************************************************************
30291* *
30292* Operation on histograms. *
30293* *
30294* input: IH1,IH2 histogram indices to be joined *
30295* COPER character defining the requested operation, *
30296* i.e. '+', '-', '*', '/' *
30297* FAC1,FAC2 factors for joining, i.e. *
30298* FAC1*histo1 COPER FAC2*histo2 *
30299* *
30300* This version dated 23.4.95 is written by S. Roesler. *
30301************************************************************************
30302
30303 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30304 SAVE
30305 PARAMETER ( LINP = 10 ,
30306 & LOUT = 6 ,
30307 & LDAT = 9 )
30308
30309 CHARACTER COPER*1
30310
30311 PARAMETER (ZERO = 0.0D0,
30312 & ONE = 1.0D0,
30313 & OHALF = 0.5D0,
30314 & TINY8 = 1.0D-8,
30315 & SMALL = -1.0D8,
30316 & RLARGE = 1.0D8 )
30317
30318* histograms
30319 PARAMETER (NHIS=150, NDIM=250)
30320 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30321 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30322
30323 PARAMETER (NDIM2 = 2*NDIM)
30324 DIMENSION XX(NDIM2),YY(NDIM2),YY1(NDIM),XX1(NDIM)
30325
30326 CHARACTER*43 CNORM(0:6)
30327 DATA CNORM /'no further normalization ',
30328 & 'per event and bin width ',
30329 & 'per entry and bin width ',
30330 & 'per bin entry ',
30331 & 'per event and "bin width" x1^2...x2^2 ',
30332 & 'per event and "log. bin width" ln x1..ln x2',
30333 & 'per event '/
30334
30335* check histogram indices
30336 IF ((IH1.LT. 1).OR.(IH2.LT. 1).OR.
30337 & (IH1.GT.IHISL).OR.(IH2.GT.IHISL)) THEN
30338 WRITE(LOUT,1000) IH1,IH2,IHISL
30339 1000 FORMAT(1X,'JOIHIS: warning! inconsistent histogram ',
30340 & 'indices (',I3,',',I3,'),',/,21X,'valid range: 1,',I3)
30341 GOTO 9999
30342 ENDIF
30343
30344* check bin structure of histograms to be joined
30345 IF (IBINS(IH1).NE.IBINS(IH2)) THEN
30346 WRITE(LOUT,1001) IH1,IH2,IBINS(IH1),IBINS(IH2)
30347 1001 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30348 & ' and ',I3,' failed',/,21X,
30349 & 'due to different numbers of bins (',I3,',',I3,')')
30350 GOTO 9999
30351 ENDIF
30352 DO 1 K=1,IBINS(IH1)+1
30353 IF (ABS(HIST(1,IH1,K)-HIST(1,IH2,K)).GT.TINY8) THEN
30354 WRITE(LOUT,1002) IH1,IH2,K,HIST(1,IH1,K),HIST(1,IH2,K)
30355 1002 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30356 & ' and ',I3,' failed at bin edge ',I3,/,21X,
30357 & 'X1,X2 = ',2E11.4)
30358 GOTO 9999
30359 ENDIF
30360 1 CONTINUE
30361
30362 WRITE(LOUT,1003) IH1,IH2,COPER,FAC1,FAC2
30363 1003 FORMAT(1X,'JOIHIS: joining histograms ',I3,',',I3,' with ',
30364 & 'operation ',A,/,11X,'and factors ',2E11.4)
30365 WRITE(LOUT,1004) CNORM(NORM)
30366 1004 FORMAT(1X,'normalization: ',A,/)
30367
30368 DO 2 K=1,IBINS(IH1)
30369 CALL DT_GETBIN(IH1,K,KEVT,NORM,XLOW1,XHI1,XMEAN1,YMEAN1,YERR1)
30370 CALL DT_GETBIN(IH2,K,KEVT,NORM,XLOW2,XHI2,XMEAN2,YMEAN2,YERR2)
30371 XLOW = XLOW1
30372 XHI = XHI1
30373 XMEAN = OHALF*(XMEAN1+XMEAN2)
30374 IF (COPER.EQ.'+') THEN
30375 YMEAN = FAC1*YMEAN1+FAC2*YMEAN2
30376 ELSEIF (COPER.EQ.'*') THEN
30377 YMEAN = FAC1*YMEAN1*FAC2*YMEAN2
30378 ELSEIF (COPER.EQ.'/') THEN
30379 IF (YMEAN2.EQ.ZERO) THEN
30380 YMEAN = ZERO
30381 ELSE
30382 IF (FAC2.EQ.ZERO) FAC2 = ONE
30383 YMEAN = FAC1*YMEAN1/(FAC2*YMEAN2)
30384 ENDIF
30385 ELSE
30386 GOTO 9998
30387 ENDIF
30388 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30389 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30390 1006 FORMAT(1X,5E11.3)
30391* small frame
30392 II = 2*K
30393 XX(II-1) = HIST(1,IH1,K)
30394 XX(II) = HIST(1,IH1,K+1)
30395 YY(II-1) = YMEAN
30396 YY(II) = YMEAN
30397* wide frame
30398 XX1(K) = XMEAN
30399 IF ((ISWI(IH1).EQ.3).OR.(ISWI(IH1).EQ.4)) XX1(K) = LOG10(XMEAN)
30400 YY1(K) = YMEAN
30401 2 CONTINUE
30402
30403* plot small frame
30404 IF (ABS(MODE).EQ.1) THEN
30405 IBIN2 = 2*IBINS(IH1)
30406 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30407 IF(ILOGY.EQ.1) THEN
30408 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30409 ELSE
30410 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30411 ENDIF
30412 ENDIF
30413
30414* plot wide frame
30415 IF (ABS(MODE).EQ.2) THEN
30416 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30417 NSIZE = NDIM
30418 DXLOW = HIST(1,IH1,1)
30419 DDX = ABS(HIST(1,IH1,2)-HIST(1,IH1,1))
30420 YLOW = RLARGE
30421 YHI = SMALL
30422 DO 3 I=1,NDIM
30423 IF (YY1(I).LT.YLOW) THEN
30424 IF (ILOGY.EQ.1) THEN
30425 IF (YY1(I).GT.ZERO) YLOW = YY1(I)
30426 ELSE
30427 YLOW = YY1(I)
30428 ENDIF
30429 ENDIF
30430 IF (YY1(I).GT.YHI) YHI = YY1(I)
30431 3 CONTINUE
30432 DY = (YHI-YLOW)/DBLE(NDIM)
30433 IF (DY.LE.ZERO) THEN
30434 WRITE(LOUT,'(1X,A,2I4,A,2E12.4)')
30435 & 'JOIHIS: warning! zero bin width for histograms ',
30436 & IH1,IH2,': ',YLOW,YHI
30437 RETURN
30438 ENDIF
30439 IF (ILOGY.EQ.1) THEN
30440 YLOW = LOG10(YLOW)
30441 DY = (LOG10(YHI)-YLOW)/100.0D0
30442 DO 4 I=1,NDIM
30443 IF (YY1(I).LE.ZERO) THEN
30444 YY1(I) = YLOW
30445 ELSE
30446 YY1(I) = LOG10(YY1(I))
30447 ENDIF
30448 4 CONTINUE
30449 ENDIF
30450 CALL DT_SRPLOT(XX1,YY1,NSIZE,1,NDIM,DXLOW,DDX,YLOW,DY)
30451 ENDIF
30452
30453 RETURN
30454
30455 9998 CONTINUE
30456 WRITE(LOUT,1005) COPER
30457 1005 FORMAT(1X,'JOIHIS: unknown operation ',A)
30458
30459 9999 CONTINUE
30460 RETURN
30461 END
30462
30463*$ CREATE DT_XGRAPH.FOR
30464*COPY DT_XGRAPH
30465*
30466*===qgraph=============================================================*
30467*
30468 SUBROUTINE DT_XGRAPH(N,IARG,X,Y1,Y2)
30469C***********************************************************************
30470C
30471C calculate quasi graphic picture with 25 lines and 79 columns
30472C ranges will be chosen automatically
30473C
30474C input N dimension of input fields
30475C IARG number of curves (fields) to plot
30476C X field of X
30477C Y1 field of Y1
30478C Y2 field of Y2
30479C
30480C This subroutine is written by R. Engel.
30481C***********************************************************************
30482 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30483 SAVE
30484
30485 PARAMETER ( LINP = 10 ,
30486 & LOUT = 6 ,
30487 & LDAT = 9 )
30488C
30489 DIMENSION X(N),Y1(N),Y2(N)
30490 PARAMETER (EPS=1.D-30)
30491 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30492 CHARACTER SYMB(5)
30493 CHARACTER COL(0:149,0:49)
30494C
30495 DATA SYMB /'0','e','z','#','x'/
30496C
30497 ISPALT=IBREIT-10
30498C
30499C*** automatic range fitting
30500C
30501 XMAX=X(1)
30502 XMIN=X(1)
30503 DO 600 I=1,N
30504 XMAX=MAX(X(I),XMAX)
30505 XMIN=MIN(X(I),XMIN)
30506 600 CONTINUE
30507 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30508C
30509 ITEST=0
30510 DO 1100 K=0,IZEIL-1
30511 ITEST=ITEST+1
30512 IF (ITEST.EQ.IYRAST) THEN
30513 DO 1010 L=1,ISPALT-1
30514 COL(L,K)='-'
305151010 CONTINUE
30516 COL(ISPALT,K)='+'
30517 ITEST=0
30518 DO 1020 L=0,ISPALT-1,IXRAST
30519 COL(L,K)='+'
305201020 CONTINUE
30521 ELSE
30522 DO 1030 L=1,ISPALT-1
30523 COL(L,K)=' '
305241030 CONTINUE
30525 DO 1040 L=0,ISPALT-1,IXRAST
30526 COL(L,K)='|'
305271040 CONTINUE
30528 COL(ISPALT,K)='|'
30529 ENDIF
305301100 CONTINUE
30531C
30532C*** plot curve Y1
30533C
30534 YMAX=Y1(1)
30535 YMIN=Y1(1)
30536 DO 500 I=1,N
30537 YMAX=MAX(Y1(I),YMAX)
30538 YMIN=MIN(Y1(I),YMIN)
30539500 CONTINUE
30540 IF(IARG.GT.1) THEN
30541 DO 550 I=1,N
30542 YMAX=MAX(Y2(I),YMAX)
30543 YMIN=MIN(Y2(I),YMIN)
30544550 CONTINUE
30545 ENDIF
30546 YMAX=(YMAX-YMIN)/40.0D0+YMAX
30547 YMIN=YMIN-(YMAX-YMIN)/40.0D0
30548 YZOOM=(YMAX-YMIN)/DBLE(IZEIL)
30549 IF(YZOOM.LT.EPS) THEN
30550 WRITE(LOUT,'(1X,A)')
30551 & 'XGRAPH:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30552 RETURN
30553 ENDIF
30554C
30555C*** plot curve Y1
30556C
30557 ILAST=-1
30558 LLAST=-1
30559 DO 1200 K=1,N
30560 L=NINT((X(K)-XMIN)/XZOOM)
30561 I=NINT((YMAX-Y1(K))/YZOOM)
30562 IF(ILAST.GE.0) THEN
30563 LD = L-LLAST
30564 ID = I-ILAST
30565 DO 55 II=0,LD,SIGN(1,LD)
30566 DO 66 KK=0,ID,SIGN(1,ID)
30567 COL(II+LLAST,KK+ILAST)=SYMB(1)
30568 66 CONTINUE
30569 55 CONTINUE
30570 ELSE
30571 COL(L,I)=SYMB(1)
30572 ENDIF
30573 ILAST = I
30574 LLAST = L
305751200 CONTINUE
30576C
30577 IF(IARG.GT.1) THEN
30578C
30579C*** plot curve Y2
30580C
30581 DO 1250 K=1,N
30582 L=NINT((X(K)-XMIN)/XZOOM)
30583 I=NINT((YMAX-Y2(K))/YZOOM)
30584 COL(L,I)=SYMB(2)
305851250 CONTINUE
30586 ENDIF
30587C
30588C*** write it
30589C
30590 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30591C
30592C*** write range of X
30593C
30594 XZOOM = (XMAX-XMIN)/DBLE(7)
30595 WRITE(LOUT,120) (XZOOM*DBLE(I-1)+XMIN,I=1,7)
30596C
30597 DO 1300 K=0,IZEIL-1
30598 YPOS=YMAX-((DBLE(K)+0.5D0)*YZOOM)
30599 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30600 110 FORMAT(1X,1PE9.2,70A1)
306011300 CONTINUE
30602C
30603C*** write range of X
30604C
30605 XZOOM = (XMAX-XMIN)/DBLE(7)
30606 WRITE(LOUT,120) (XZOOM*DBLE(I-1)+XMIN,I=1,7)
30607 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30608 120 FORMAT(6X,7(1PE10.3))
30609 END
30610
30611*$ CREATE DT_XGLOGY.FOR
30612*COPY DT_XGLOGY
30613*
30614*===qglogy=============================================================*
30615*
30616 SUBROUTINE DT_XGLOGY(N,IARG,X,Y1,Y2)
30617C***********************************************************************
30618C
30619C calculate quasi graphic picture with 25 lines and 79 columns
30620C logarithmic y axis
30621C ranges will be chosen automatically
30622C
30623C input N dimension of input fields
30624C IARG number of curves (fields) to plot
30625C X field of X
30626C Y1 field of Y1
30627C Y2 field of Y2
30628C
30629C This subroutine is written by R. Engel.
30630C***********************************************************************
30631C
30632 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30633 SAVE
30634
30635 PARAMETER ( LINP = 10 ,
30636 & LOUT = 6 ,
30637 & LDAT = 9 )
30638 DIMENSION X(N),Y1(N),Y2(N)
30639 PARAMETER (EPS=1.D-30)
30640 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30641 CHARACTER SYMB(5)
30642 CHARACTER COL(0:149,0:49)
30643 PARAMETER (DEPS = 1.D-10)
30644C
30645 DATA SYMB /'0','e','z','#','x'/
30646C
30647 ISPALT=IBREIT-10
30648C
30649C*** automatic range fitting
30650C
30651 XMAX=X(1)
30652 XMIN=X(1)
30653 DO 600 I=1,N
30654 XMAX=MAX(X(I),XMAX)
30655 XMIN=MIN(X(I),XMIN)
30656 600 CONTINUE
30657 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30658C
30659 ITEST=0
30660 DO 1100 K=0,IZEIL-1
30661 ITEST=ITEST+1
30662 IF (ITEST.EQ.IYRAST) THEN
30663 DO 1010 L=1,ISPALT-1
30664 COL(L,K)='-'
306651010 CONTINUE
30666 COL(ISPALT,K)='+'
30667 ITEST=0
30668 DO 1020 L=0,ISPALT-1,IXRAST
30669 COL(L,K)='+'
306701020 CONTINUE
30671 ELSE
30672 DO 1030 L=1,ISPALT-1
30673 COL(L,K)=' '
306741030 CONTINUE
30675 DO 1040 L=0,ISPALT-1,IXRAST
30676 COL(L,K)='|'
306771040 CONTINUE
30678 COL(ISPALT,K)='|'
30679 ENDIF
306801100 CONTINUE
30681C
30682C*** plot curve Y1
30683C
30684 YMAX=Y1(1)
30685 YMIN=MAX(Y1(1),EPS)
30686 DO 500 I=1,N
30687 YMAX =MAX(Y1(I),YMAX)
30688 IF(Y1(I).GT.EPS) THEN
30689 IF(YMIN.EQ.EPS) THEN
30690 YMIN = Y1(I)/10.D0
30691 ELSE
30692 YMIN = MIN(Y1(I),YMIN)
30693 ENDIF
30694 ENDIF
30695500 CONTINUE
30696 IF(IARG.GT.1) THEN
30697 DO 550 I=1,N
30698 YMAX=MAX(Y2(I),YMAX)
30699 IF(Y2(I).GT.EPS) THEN
30700 IF(YMIN.EQ.EPS) THEN
30701 YMIN = Y2(I)
30702 ELSE
30703 YMIN = MIN(Y2(I),YMIN)
30704 ENDIF
30705 ENDIF
30706550 CONTINUE
30707 ENDIF
30708C
30709 DO 560 I=1,N
30710 Y1(I) = MAX(Y1(I),YMIN)
30711 560 CONTINUE
30712 IF(IARG.GT.1) THEN
30713 DO 570 I=1,N
30714 Y2(I) = MAX(Y2(I),YMIN)
30715 570 CONTINUE
30716 ENDIF
30717C
30718 IF(YMAX.LE.YMIN) THEN
30719 WRITE(LOUT,'(/1X,A,2E12.3,/)')
30720 & 'XGLOGY:ERROR:YMIN,YMAX ',YMIN,YMAX
30721 WRITE(LOUT,'(1X,A)') 'MIN = MAX, OUTPUT SUPPRESSED'
30722 RETURN
30723 ENDIF
30724C
30725 YMA=(LOG10(YMAX)-LOG10(YMIN))/20.0D0+LOG10(YMAX)
30726 YMI=LOG10(YMIN)-(LOG10(YMAX)-LOG10(YMIN))/20.0D0
30727 YZOOM=(YMA-YMI)/DBLE(IZEIL)
30728 IF(YZOOM.LT.EPS) THEN
30729 WRITE(LOUT,'(1X,A)')
30730 & 'XGLOGY:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30731 RETURN
30732 ENDIF
30733C
30734C*** plot curve Y1
30735C
30736 ILAST=-1
30737 LLAST=-1
30738 DO 1200 K=1,N
30739 L=NINT((X(K)-XMIN)/XZOOM)
30740 I=NINT((YMA-LOG10(Y1(K)))/YZOOM)
30741 IF(ILAST.GE.0) THEN
30742 LD = L-LLAST
30743 ID = I-ILAST
30744 DO 55 II=0,LD,SIGN(1,LD)
30745 DO 66 KK=0,ID,SIGN(1,ID)
30746 COL(II+LLAST,KK+ILAST)=SYMB(1)
30747 66 CONTINUE
30748 55 CONTINUE
30749 ELSE
30750 COL(L,I)=SYMB(1)
30751 ENDIF
30752 ILAST = I
30753 LLAST = L
307541200 CONTINUE
30755C
30756 IF(IARG.GT.1) THEN
30757C
30758C*** plot curve Y2
30759C
30760 DO 1250 K=1,N
30761 L=NINT((X(K)-XMIN)/XZOOM)
30762 I=NINT((YMA-LOG10(Y2(K)))/YZOOM)
30763 COL(L,I)=SYMB(2)
307641250 CONTINUE
30765 ENDIF
30766C
30767C*** write it
30768C
30769 WRITE(LOUT,'(2X,A)') '(LOGARITHMIC Y AXIS)'
30770 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30771C
30772C*** write range of X
30773C
30774 XZOOM1 = (XMAX-XMIN)/DBLE(7)
30775 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30776C
30777 DO 1300 K=0,IZEIL-1
30778 YPOS=10.D0**(YMA-((DBLE(K)+0.5D0)*YZOOM))
30779 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30780 110 FORMAT(1X,1PE9.2,70A1)
307811300 CONTINUE
30782C
30783C*** write range of X
30784C
30785 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30786 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30787 120 FORMAT(6X,7(1PE10.3))
30788C
30789 END
30790
30791*$ CREATE DT_SRPLOT.FOR
30792*COPY DT_SRPLOT
30793*
30794*===plot===============================================================*
30795*
30796 SUBROUTINE DT_SRPLOT(X,Y,N,M,MM,XO,DX,YO,DY)
30797
30798 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30799 SAVE
30800
30801 PARAMETER ( LINP = 10 ,
30802 & LOUT = 6 ,
30803 & LDAT = 9 )
30804*
30805* initial version
30806* J. Ranft, (FORTRAN-Programmierung,J.R.,Teubner, Leipzig, 72)
30807* This is a subroutine of fluka to plot Y across the page
30808* as a function of X down the page. Up to 37 curves can be
30809* plotted in the same picture with different plotting characters.
30810* Output of first 10 overprinted characters addad by FB 88
30811* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
30812*
30813* Input Variables:
30814* X = array containing the values of X
30815* Y = array containing the values of Y
30816* N = number of values in X and in Y
30817* can exceed the fixed number of lines
30818* M = number of different curves X,Y are containing
30819* MM = number of points in each curve i.e. N=M*MM
30820* XO = smallest value of X to be plotted
30821* DX = increment of X between subsequent lines
30822* YO = smallest value of Y to be plotted
30823* DY = increment of Y between subsequent character spaces
30824*
30825* other variables used inside:
30826* XX = numbers along the X-coordinate axis
30827* YY = numbers along the Y-coordinate axis
30828* LL = ten lines temporary storage for the plot
30829* L = character set used to plot different curves
30830* LOV = memorizes overprinted symbols
30831* the first 10 overprinted symbols are printed on
30832* the end of the line to avoid ambiguities
30833* (added by FB as considered quite helpful)
30834*
30835*********************************************************************
30836*
30837 DIMENSION XX(61),YY(61),LL(101,10)
30838 DIMENSION X(N),Y(N),L(40),LOV(40,10)
333481d6 30839 INTEGER*4 LL, L, LOV
9aaba0d6 30840 DATA L/
30841 11H*,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1HZ,
30842 21H+,1HA,1HO,1HB,1HC,1HD,1HE,1HF,1HG,1HH,
30843 31HI,1HJ,1HK,1HL,1HM,1HN,1HO,1HP,1HQ,1HR,
30844 41HS,1HT,1HU,1HV,1HW,1HX,1HY,1H1,1H-,1H /
30845*
30846*
30847 MN=51
30848 DO 10 I=1,MN
30849 AI=I-1
30850 10 XX(I)=XO+AI*DX
30851 DO 20 I=1,11
30852 AI=I-1
30853 20 YY(I)=YO+10.0D0*AI*DY
30854 WRITE(LOUT, 500) (YY(I),I=1,11)
30855 MMN=MN-1
30856*
30857*
30858 DO 90 JJ=1,MMN,10
30859 JJJ=JJ-1
30860 DO 30 I=1,101
30861 DO 30 J=1,10
30862 30 LL(I,J)=L(40)
30863 DO 40 I=1,101
30864 40 LL(I,1)=L(39)
30865 DO 50 I=1,101,10
30866 DO 50 J=1,10
30867 50 LL(I,J)=L(38)
30868 DO 60 I=1,40
30869 DO 60 J=1,10
30870 60 LOV(I,J)=L(40)
30871*
30872*
30873 DO 70 I=1,M
30874 DO 70 J=1,MM
30875 II=J+(I-1)*MM
30876 AIX=(X(II)-(XO-DX/2.0D0))/DX+1.0D0
30877 AIY=(Y(II)-(YO-DY/2.0D0))/DY+1.0D0
30878 AIX=AIX-DBLE(JJJ)
30879* changed Sept.88 by FB to avoid INTEGER OVERFLOW
30880 IF( AIX .GT. 1.D0.AND. AIX .LT. 11.D0.AND. AIY .GT. 1.D0.AND
30881 + . AIY .LT. 102.D0) THEN
30882 IX=INT(AIX)
30883 IY=INT(AIY)
30884 IF( IX.GT. 0.AND. IX.LE. 10.AND. IY.GT. 0.AND. IY.LE. 101)
30885 + THEN
30886 IF(LL(IY,IX).NE.L(38).AND.LL(IY,IX).NE.L(39)) LOV(I,IX)
30887 + =LL(IY,IX)
30888 LL(IY,IX)=L(I)
30889 ENDIF
30890 ENDIF
30891 70 CONTINUE
30892*
30893*
30894 DO 80 I=1,10
30895 II=I+JJJ
30896 III=II+1
30897 WRITE(LOUT,510) XX(II),XX(III) , (LL(J,I),J=1,101) ,
30898 & (LOV(J,I),J=1,10)
30899 80 CONTINUE
30900 90 CONTINUE
30901*
30902*
30903 WRITE(LOUT, 520)
30904 WRITE(LOUT, 500) (YY(I),I=1,11)
30905 RETURN
30906*
30907 500 FORMAT(11X,11(1PE10.2),11HOVERPRINTED)
30908 510 FORMAT(1X,2(1PE10.2),101A1,1H ,10A1)
30909 520 FORMAT(20X,10('1---------'),'1')
30910 END
30911
30912*$ CREATE DT_DEFSET.FOR
30913*COPY DT_DEFSET
30914*
30915*===defset=============================================================*
30916*
30917 BLOCK DATA DT_DEFSET
30918
30919 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30920 SAVE
30921
30922* flags for input different options
30923 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
30924 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
30925 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
30926 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
30927* emulsion treatment
30928 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
30929 & NCOMPO,IEMUL
30930
30931* / DTFLG1 /
30932 DATA IFRAG / 2, 1 /
30933 DATA IRESCO / 1 /
30934 DATA IMSHL / 1 /
30935 DATA IRESRJ / 0 /
30936 DATA IOULEV / -1, -1, -1, -1, -1, -1 /
30937 DATA LEMCCK / .FALSE. /
30938 DATA LHADRO / .FALSE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,
30939 & .TRUE.,.TRUE.,.TRUE./
30940 DATA LSEADI / .TRUE. /
30941 DATA LEVAPO / .TRUE. /
30942 DATA IFRAME / 1 /
30943 DATA ITRSPT / 0 /
30944
30945* / DTCOMP /
30946 DATA EMUFRA / NCOMPX*0.0D0 /
30947 DATA IEMUMA / NCOMPX*1 /
30948 DATA IEMUCH / NCOMPX*1 /
30949 DATA NCOMPO / 0 /
30950 DATA IEMUL / 0 /
30951
30952 END
30953
30954*$ CREATE DT_HADPRP.FOR
30955*COPY DT_HADPRP
30956*
30957*===hadprp=============================================================*
30958*
30959 BLOCK DATA DT_HADPRP
30960
30961 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30962 SAVE
30963
30964* auxiliary common for reggeon exchange (DTUNUC 1.x)
30965 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
30966 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
30967 & IQTCHR(-6:6),MQUARK(3,39)
30968* hadron index conversion (BAMJET <--> PDG)
30969 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
30970 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
30971 & IAMCIN(210)
30972* names of hadrons used in input-cards
30973 CHARACTER*8 BTYPE
30974 COMMON /DTPAIN/ BTYPE(30)
30975
30976* / DTQUAR /
30977*----------------------------------------------------------------------*
30978* *
30979* Quark content of particles: *
30980* index quark el. charge bar. charge isospin isospin3 *
30981* 1 = u 2/3 1/3 1/2 1/2 *
30982* -1 = ubar -2/3 -1/3 1/2 -1/2 *
30983* 2 = d -1/3 1/3 1/2 -1/2 *
30984* -2 = dbar 1/3 -1/3 1/2 1/2 *
30985* 3 = s -1/3 1/3 0 0 *
30986* -3 = sbar 1/3 -1/3 0 0 *
30987* 4 = c 2/3 1/3 0 0 *
30988* -4 = cbar -2/3 -1/3 0 0 *
30989* 5 = b -1/3 1/3 0 0 *
30990* -5 = bbar 1/3 -1/3 0 0 *
30991* 6 = t 2/3 1/3 0 0 *
30992* -6 = tbar -2/3 -1/3 0 0 *
30993* *
30994* Mquark = particle quark composition (Paprop numbering) *
30995* Iqechr = electric charge ( in 1/3 unit ) *
30996* Iqbchr = baryonic charge ( in 1/3 unit ) *
30997* Iqichr = isospin ( in 1/2 unit ), z component *
30998* Iqschr = strangeness *
30999* Iqcchr = charm *
31000* Iquchr = beauty *
31001* Iqtchr = ...... *
31002* *
31003*----------------------------------------------------------------------*
31004 DATA IQECHR / -2, 1, -2, 1, 1, -2, 0, 2, -1, -1, 2, -1, 2 /
31005 DATA IQBCHR / 6*-1, 0, 6*1 /
31006 DATA IQICHR / 4*0, 1, -1, 0, 1, -1, 4*0 /
31007 DATA IQSCHR / 3*0, 1, 5*0, -1, 3*0 /
31008 DATA IQCCHR / 2*0, -1, 7*0, 1, 2*0 /
31009 DATA IQUCHR / 0, 1, 9*0, -1, 0 /
31010 DATA IQTCHR / -1, 11*0, 1 /
31011 DATA MQUARK /
31012 & 2, 1, 1, -2,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31013 & 0, 0, 0, 0, 0, 0, 2, 2, 1, -2,-2,-1, 0, 0, 0,
31014 & 0, 0, 0, 0, 0, 0, 1,-2, 0, 2,-1, 0, 1,-3, 0,
31015 & 3,-1, 0, 1, 2, 3, -1,-2,-3, 0, 0, 0, 2, 2, 3,
31016 & 1, 1, 3, 1, 2, 3, 1,-1, 0, 2,-3, 0, 3,-2, 0,
31017 & 2,-2, 0, 3,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31018 & -1,-1,-3, -1,-2,-3, -2,-2,-3, 1, 3, 3, -1,-3,-3,
31019 & 2, 3, 3, -2,-3,-3, 3, 3, 3, -3,-3,-3 /
31020
31021* / DTHAIC /
31022* (renamed) (HAdron InDex COnversion)
31023* translation table version filled up by r.e. 25.01.94 *
31024 DATA IAMCIN /
31025 &2212,-2212,11,-11,12, -12,22,2112,-2112,-13,
31026 &13,130,211,-211,321, -321,3122,-3122,310,3112,
31027 &3222,3212,111,311,-311, 0,0,0,0,0,
31028 &221,213,113,-213,223, 323,313,-323,-313,10323,
31029 &10313,-10323,-10313,30323,30313, -30323,-30313,3224,3214,3114,
31030 &3216,3218,2224,2214,2114, 1114,12224,12214,12114,11114,
31031 &99999,99999,22212,22112,32124, 31214,-2224,-2214,-2114,-1114,
31032 &-12224,-12214,-12114,-11114,-2124, -1214,4*99999,
31033 &5*99999, 5*99999,
31034 &4*99999,331, 333,3322,3312,-3222,-3212,
31035 &-3112,-3322,-3312,3224,3214, 3114,3324,3314,3334,-3224,
31036 &-3214,-3114,-3324,-3314,-3334, 421,411,-411,-421,431,
31037 &-431,441,423,413,-413, -423,433,-433,20443,443,
31038 &-15,15,16,-16,14, -14,4122,4232,4132,4222,
31039 &4212,4112,3*99999, 3*99999,-4122,-4232,
31040 &-4132,-4222,-4212,-4112,99999, 5*99999,
31041 &5*99999, 5*99999,
31042 &10*99999,
31043 &5*99999 , 20211,20111,-20211,99999,20321,
31044 &-20321,20311,-20311,7*99999 ,
31045 &7*99999,12212,12112,99999/
31046
31047* / DTHAIC /
31048* (HAdron InDex COnversion)
31049 DATA (IPDG2(1,K),K=1,7)
31050 & / -11, -12, -13, -15, -16, -14, 0/
31051 DATA (IBAM2(1,K),K=1,7)
31052 & / 4, 6, 10, 131, 134, 136, 0/
31053 DATA (IPDG2(2,K),K=1,7)
31054 & / 11, 12, 22, 13, 15, 16, 14/
31055 DATA (IBAM2(2,K),K=1,7)
31056 & / 3, 5, 7, 11, 132, 133, 135/
31057 DATA (IPDG3(1,K),K=1,22)
31058 & / -211, -321, -311, -213, -323, -313, -411, -421,
31059 & -431, -413, -423, -433, 0, 0, 0, 0,
31060 & 0, 0, 0, 0, 0, 0/
31061 DATA (IBAM3(1,K),K=1,22)
31062 & / 14, 16, 25, 34, 38, 39, 118, 119,
31063 & 121, 125, 126, 128, 0, 0, 0, 0,
31064 & 0, 0, 0, 0, 0, 0/
31065 DATA (IPDG3(2,K),K=1,22)
31066 & / 130, 211, 321, 310, 111, 311, 221, 213,
31067 & 113, 223, 323, 313, 331, 333, 421, 411,
31068 & 431, 441, 423, 413, 433, 443/
31069 DATA (IBAM3(2,K),K=1,22)
31070 & / 12, 13, 15, 19, 23, 24, 31, 32,
31071 & 33, 35, 36, 37, 95, 96, 116, 117,
31072 & 120, 122, 123, 124, 127, 130/
31073 DATA (IPDG4(1,K),K=1,29)
31074 & / -2212, -2112, -3122, -2224, -2214, -2114, -1114, -2124,
31075 & -1214, -3222, -3212, -3112, -3322, -3312, -3224, -3214,
31076 & -3114, -3324, -3314, -3334, -4122, -4232, -4132, -4222,
31077 & -4212, -4112, 0, 0, 0/
31078 DATA (IBAM4(1,K),K=1,29)
31079 & / 2, 9, 18, 67, 68, 69, 70, 75,
31080 & 76, 99, 100, 101, 102, 103, 110, 111,
31081 & 112, 113, 114, 115, 149, 150, 151, 152,
31082 & 153, 154, 0, 0, 0/
31083 DATA (IPDG4(2,K),K=1,29)
31084 & / 2212, 2112, 3122, 3112, 3222, 3212, 3224, 3214,
31085 & 3114, 3216, 3218, 2224, 2214, 2114, 1114, 3322,
31086 & 3312, 3224, 3214, 3114, 3324, 3314, 3334, 4122,
31087 & 4232, 4132, 4222, 4212, 4112/
31088 DATA (IBAM4(2,K),K=1,29)
31089 & / 1, 8, 17, 20, 21, 22, 48, 49,
31090 & 50, 51, 52, 53, 54, 55, 56, 97,
31091 & 98, 104, 105, 106, 107, 108, 109, 137,
31092 & 138, 139, 140, 141, 142/
31093 DATA (IPDG5(1,K),K=1,19)
31094 & /-10323,-10313,-30323,-30313,-12224,-12214,-12114,-11114,
31095 & -20211,-20321,-20311, 0, 0, 0, 0, 0,
31096 & 0, 0, 0/
31097 DATA (IBAM5(1,K),K=1,19)
31098 & / 42, 43, 46, 47, 71, 72, 73, 74,
31099 & 188, 191, 193, 0, 0, 0, 0, 0,
31100 & 0, 0, 0/
31101 DATA (IPDG5(2,K),K=1,19)
31102 & / 10323, 10313, 30323, 30313, 12224, 12214, 12114, 11114,
31103 & 22212, 22112, 32124, 31214, 20443, 20211, 20111, 20321,
31104 & 20311, 12212, 12112/
31105 DATA (IBAM5(2,K),K=1,19)
31106 & / 40, 41, 44, 45, 57, 58, 59, 60,
31107 & 63, 64, 65, 66, 129, 186, 187, 190,
31108 & 192, 208, 209/
31109
31110* / DTPAIN /
31111* internal particle names
31112 DATA BTYPE / 'PROTON ' , 'APROTON ' , 'ELECTRON' , 'POSITRON' ,
31113 &'NEUTRIE ' , 'ANEUTRIE' , 'PHOTON ' , 'NEUTRON ' , 'ANEUTRON' ,
31114 &'MUON+ ' , 'MUON- ' , 'KAONLONG' , 'PION+ ' , 'PION- ' ,
31115 &'KAON+ ' , 'KAON- ' , 'LAMBDA ' , 'ALAMBDA ' , 'KAONSHRT' ,
31116 &'SIGMA- ' , 'SIGMA+ ' , 'SIGMAZER' , 'PIZERO ' , 'KAONZERO' ,
31117 &'AKAONZER' , 'NEUTRIM ' , 'ANEUTRIM' , 'NEUTRIT ' , 'ANEUTRIT' ,
31118 &'BLANK ' /
31119
31120 END
31121
31122*$ CREATE DT_BLKD46.FOR
31123*COPY DT_BLKD46
31124*
31125*===blkd46=============================================================*
31126*
31127 BLOCK DATA DT_BLKD46
31128
31129 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31130 SAVE
31131
31132 PARAMETER ( AMELCT = 0.51099906 D-03 )
31133 PARAMETER ( AMMUON = 0.105658389 D+00 )
31134
31135* particle properties (BAMJET index convention)
31136 CHARACTER*8 ANAME
31137 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
31138 & IICH(210),IIBAR(210),K1(210),K2(210)
31139
31140* / DTPART /
31141* Particle masses Engel version JETSET compatible
31142C DATA (AAM(K),K=1,85) /
31143C & .9383D+00, .9383D+00, AMELCT , AMELCT , .0000D+00,
31144C & .0000D+00, .0000D+00, .9396D+00, .9396D+00, AMMUON ,
31145C & AMMUON , .4977D+00, .1396D+00, .1396D+00, .4936D+00,
31146C & .4936D+00, .1116D+01, .1116D+01, .4977D+00, .1197D+01,
31147C & .1189D+01, .1193D+01, .1350D+00, .4977D+00, .4977D+00,
31148C & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31149C & .5488D+00, .7669D+00, .7700D+00, .7669D+00, .7820D+00,
31150C & .8921D+00, .8962D+00, .8921D+00, .8962D+00, .1300D+01,
31151C & .1300D+01, .1300D+01, .1300D+01, .1421D+01, .1421D+01,
31152C & .1421D+01, .1421D+01, .1383D+01, .1384D+01, .1387D+01,
31153C & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31154C & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31155C & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31156C & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31157C & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31158C & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31159C & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31160C DATA (AAM(K),K=86,183) /
31161C & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31162C & .1700D+01, .1700D+01, .1820D+01, .2030D+01, .9575D+00,
31163C & .1019D+01, .1315D+01, .1321D+01, .1189D+01, .1193D+01,
31164C & .1197D+01, .1315D+01, .1321D+01, .1383D+01, .1384D+01,
31165C & .1387D+01, .1532D+01, .1535D+01, .1672D+01, .1383D+01,
31166C & .1384D+01, .1387D+01, .1532D+01, .1535D+01, .1672D+01,
31167C & .1865D+01, .1869D+01, .1869D+01, .1865D+01, .1969D+01,
31168C & .1969D+01, .2980D+01, .2007D+01, .2010D+01, .2010D+01,
31169C & .2007D+01, .2113D+01, .2113D+01, .3686D+01, .3097D+01,
31170C & .1784D+01, .1784D+01, .0000D+00, .0000D+00, .0000D+00,
31171C & .0000D+00, .2285D+01, .2460D+01, .2460D+01, .2452D+01,
31172C & .2453D+01, .2454D+01, .2560D+01, .2560D+01, .2730D+01,
31173C & .3610D+01, .3610D+01, .3790D+01, .2285D+01, .2460D+01,
31174C & .2460D+01, .2452D+01, .2453D+01, .2454D+01, .2560D+01,
31175C & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31176C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31177C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31178C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31179C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31180C & .1250D+01, .1250D+01, .1250D+01 /
31181C DATA (AAM ( I ), I = 184,210 ) /
31182C & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31183C & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31184C & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31185C & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31186C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31187C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31188C & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31189C & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31190C & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31191* sr 25.1.06: particle masses adjusted to Pythia
31192 DATA (AAM(K),K=1,85) /
31193 & .938270E+00,.938270E+00, AMELCT , AMELCT ,.000000E+00,
31194 & .000000E+00,.000000E+00,.939570E+00,.939570E+00, AMMUON ,
31195 & AMMUON ,.497670E+00,.139570E+00,.139570E+00,.493600E+00,
31196 & .493600E+00,.111568E+01,.111568E+01,.497670E+00,.119744E+01,
31197 & .118937E+01,.119255E+01,.134980E+00,.497670E+00,.497670E+00,
31198 & .0000D+00, .0000D+00, .0000D+00 , .0000D+00, .0000D+00,
31199 & .547450E+00,.766900E+00,.768500E+00,.766900E+00,.781940E+00,
31200 & .891600E+00,.896100E+00,.891600E+00,.896100E+00,.129000E+01,
31201 & .129000E+01,.129000E+01,.129000E+01, .1421D+01, .1421D+01,
31202 & .1421D+01, .1421D+01,.138280E+01,.138370E+01,.138720E+01,
31203 & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31204 & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31205 & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31206 & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31207 & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31208 & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31209 & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31210 DATA (AAM(K),K=86,183) /
31211 & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31212 & .1700D+01, .1700D+01, .1820D+01, .2030D+01,.957770E+00,
31213 & .101940E+01,.131490E+01,.132130E+01,.118937E+01,.119255E+01,
31214 & .119744E+01,.131490E+01,.132130E+01,.138280E+01,.138370E+01,
31215 & .138720E+01,.153180E+01, .1535D+01,.167245E+01,.138280E+01,
31216 & .138370E+01,.138720E+01,.153180E+01, .1535D+01,.167245E+01,
31217 & .186450E+01,.186930E+01,.186930E+01,.186450E+01,.196850E+01,
31218 & .196850E+01,.297980E+01,.200670E+01, .2010D+01, .2010D+01,
31219 & .200670E+01,.211240E+01,.211240E+01, .3686D+01,.309688E+01,
31220 & .177700E+01,.177700E+01, .0000D+00, .0000D+00, .0000D+00,
31221 & .0000D+00,.228490E+01,.246560E+01,.247030E+01,.245290E+01,
31222 & .245350E+01,.245210E+01, .2560D+01, .2560D+01, .2730D+01,
31223 & .3610D+01, .3610D+01, .3790D+01,.228490E+01,.246560E+01,
31224 & .2460D+01,.245290E+01,.245350E+01,.245210E+01, .2560D+01,
31225 & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31226 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31227 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31228 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31229 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31230 & .1250D+01, .1250D+01, .1250D+01 /
31231 DATA (AAM ( I ), I = 184,210 ) /
31232 & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31233 & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31234 & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31235 & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31236 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31237 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31238 & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31239 & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31240 & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31241* Particle mean lives
31242 DATA (TAU(K),K=1,183) /
31243 & .1000D+19, .1000D+19, .1000D+19, .1000D+19, .1000D+19,
31244 & .1000D+19, .1000D+19, .9180D+03, .9180D+03, .2200D-05,
31245 & .2200D-05, .5200D-07, .2600D-07, .2600D-07, .1200D-07,
31246 & .1200D-07, .2600D-09, .2600D-09, .9000D-10, .1500D-09,
31247 & .8000D-10, .5000D-14, .8000D-16, .0000D+00, .0000D+00,
31248 & 70*.0000D+00,
31249 & .0000D+00, .3000D-09, .1700D-09, .8000D-10, .1000D-13,
31250 & .1500D-09, .3000D-09, .1700D-09, .0000D+00, .0000D+00,
31251 & .0000D+00, .0000D+00, .0000D+00, .1000D-09, .0000D+00,
31252 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .1000D-09,
31253 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31254 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31255 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31256 & .9000D-11, .9000D-11, .9000D-11, .9000D-11, .1000D+19,
31257 & .1000D+19, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31258 & 40*.0000D+00,
31259 & .0000D+00, .0000D+00, .0000D+00 /
31260 DATA ( TAU ( I ), I = 184,210 ) /
31261 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31262 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31263 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31264 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31265 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31266 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31267 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31268 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31269 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00/
31270* Resonance width Gamma in GeV
31271 DATA (GA(K),K= 1,85) /
31272 & 30*.0000D+00,
31273 & .8500D-06, .1520D+00, .1520D+00, .1520D+00, .1000D-01,
31274 & .7900D-01, .7900D-01, .7900D-01, .7900D-01, .4500D+00,
31275 & .4500D+00, .4500D+00, .4500D+00, .1080D+00, .1080D+00,
31276 & .1080D+00, .1080D+00, .5000D-01, .5000D-01, .5000D-01,
31277 & .8500D-01, .1800D+00, .1150D+00, .1150D+00, .1150D+00,
31278 & .1150D+00, .2000D+00, .2000D+00, .2000D+00, .2000D+00,
31279 & .2000D+00, .2000D+00, .1000D+00, .1000D+00, .2000D+00,
31280 & .2000D+00, .1150D+00, .1150D+00, .1150D+00, .1150D+00,
31281 & .2000D+00, .2000D+00, .2000D+00, .2000D+00, .1000D+00,
31282 & .1000D+00, .2000D+00, .1000D+00, .1000D+00, .1000D+00,
31283 & .1000D+00, .1000D+00, .1000D+00, .1000D+00, .2000D+00 /
31284 DATA (GA(K),K= 86,183) /
31285 & .2000D+00, .2000D+00, .2000D+00, .1500D+00, .1500D+00,
31286 & .1500D+00, .1500D+00, .8500D-01, .1800D+00, .2000D-02,
31287 & .4000D-02, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31288 & .0000D+00, .0000D+00, .0000D+00, .3400D-01, .3400D-01,
31289 & .3600D-01, .9000D-02, .9000D-02, .0000D+00, .3400D-01,
31290 & .3400D-01, .3600D-01, .9000D-02, .9000D-02, .0000D+00,
31291 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31292 & .0000D+00, .0000D+00, .5000D-02, .2000D-02, .2000D-02,
31293 & .5000D-02, .2000D-02, .2000D-02, .2000D-03, .7000D-03,
31294 & 50*.0000D+00,
31295 & .3000D+00, .3000D+00, .3000D+00 /
31296 DATA ( GA ( I ), I = 184,210 ) /
31297 & 2.00000000000000D-01, 2.00000000000000D-01, 3.00000000000000D-01,
31298 & 3.00000000000000D-01, 3.00000000000000D-01, 2.70000000000000D-01,
31299 & 2.50000000000000D-01, 2.50000000000000D-01, 2.50000000000000D-01,
31300 & 2.50000000000000D-01, 1.50000000000000D-01, 1.50000000000000D-01,
31301 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31302 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31303 & 6.00000000000000D-02, 6.00000000000000D-02, 6.00000000000000D-02,
31304 & 6.00000000000000D-02, 5.50000000000000D-02, 5.50000000000000D-02,
31305 & 2.00000000000000D-01, 2.00000000000000D-01, 0.00000000000000D+00/
31306* Particle names
31307* S+1385+Sigma+(1385) L02030+Lambda0(2030)
31308* Rho77=Rho(770) Om783=Omega(783) K*14=K*(1420) and so on
31309* designation N*@@ means N*@1(@2)
31310 DATA (ANAME(K),K=1,85) /
31311 & 'P ','AP ','E- ','E+ ','NUE ',
31312 & 'ANUE ','GAM ','NEU ','ANEU ','MUE+ ',
31313 & 'MUE- ','K0L ','PI+ ','PI- ','K+ ',
31314 & 'K- ','LAM ','ALAM ','K0S ','SIGM- ',
31315 & 'SIGM+ ','SIGM0 ','PI0 ','K0 ','AK0 ',
31316 & 'BLANK ','BLANK ','BLANK ','BLANK ','BLANK ',
31317 & 'ETA550 ','RHO+77 ','RHO077 ','RHO-77 ','OM0783 ',
31318 & 'K*+892 ','K*0892 ','K*-892 ','AK*089 ','KA+125 ',
31319 & 'KA0125 ','KA-125 ','AKA012 ','K*+142 ','K*0142 ',
31320 & 'K*-142 ','AK*014 ','S+1385 ','S01385 ','S-1385 ',
31321 & 'L01820 ','L02030 ','N*++12 ','N*+ 12 ','N*012 ',
31322 & 'N*-12 ','N*++16 ','N*+16 ','N*016 ','N*-16 ',
31323 & 'N*+14 ','N*014 ','N*+15 ','N*015 ','N*+18 ',
31324 & 'N*018 ','AN--12 ','AN*-12 ','AN*012 ','AN*+12 ',
31325 & 'AN--16 ','AN*-16 ','AN*016 ','AN*+16 ','AN*-15 ',
31326 & 'AN*015 ','DE*=24 ','RPI+49 ','RPI049 ','RPI-49 ',
31327 & 'PIN++ ','PIN+0 ','PIN+- ','PIN-0 ','PPPI ' /
31328 DATA (ANAME(K),K=86,183) /
31329 & 'PNPI ','APPPI ','APNPI ','K+PPI ','K-PPI ',
31330 & 'K+NPI ','K-NPI ','S+1820 ','S-2030 ','ETA* ',
31331 & 'PHI ','TETA0 ','TETA- ','ASIG- ','ASIG0 ',
31332 & 'ASIG+ ','ATETA0 ','ATETA+ ','SIG*+ ','SIG*0 ',
31333 & 'SIG*- ','TETA*0 ','TETA* ','OMEGA- ','ASIG*- ',
31334 & 'ASIG*0 ','ASIG*+ ','ATET*0 ','ATET*+ ','OMEGA+ ',
31335 & 'D0 ','D+ ','D- ','AD0 ','F+ ',
31336 & 'F- ','ETAC ','D*0 ','D*+ ','D*- ',
31337 & 'AD*0 ','F*+ ','F*- ','PSI ','JPSI ',
31338 & 'TAU+ ','TAU- ','NUET ','ANUET ','NUEM ',
31339 & 'ANUEM ','C0+ ','A+ ','A0 ','C1++ ',
31340 & 'C1+ ','C10 ','S+ ','S0 ','T0 ',
31341 & 'XU++ ','XD+ ','XS+ ','AC0- ','AA- ',
31342 & 'AA0 ','AC1-- ','AC1- ','AC10 ','AS- ',
31343 & 'AS0 ','AT0 ','AXU-- ','AXD- ','AXS ',
31344 & 'C1*++ ','C1*+ ','C1*0 ','S*+ ','S*0 ',
31345 & 'T*0 ','XU*++ ','XD*+ ','XS*+ ','TETA++ ',
31346 & 'AC1*-- ','AC1*- ','AC1*0 ','AS*- ','AS*0 ',
31347 & 'AT*0 ','AXU*-- ','AXD*- ','AXS*- ','ATET-- ',
31348 & 'RO ','R+ ','R- ' /
31349 DATA ( ANAME ( I ), I = 184,210 ) /
31350 &'AN*-14 ','AN*014 ','PI+130 ','PI0130 ','PI-130 ','F01400 ',
31351 &'K*+146 ','K*-146 ','K*0146 ','AK0146 ','L01600 ','AL0160 ',
31352 &'S+1660 ','S01660 ','S-1660 ','AS-166 ','AS0166 ','AS+166 ',
31353 &'X01950 ','X-1950 ','AX0195 ','AX+195 ','OM-225 ','AOM+22 ',
31354 &'N*+14 ','N*014 ','BLANK '/
31355* Charge of particles and resonances
31356 DATA (IICH ( I ), I = 1,210 ) /
31357 & 1, -1, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1,
31358 & -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31359 & 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0,
31360 & -1, 0, 1, 0, -1, 0, 0, 2, 1, 0, -1, 2, 1, 0, -1,
31361 & 1, 0, 1, 0, 1, 0, -2, -1, 0, 1, -2, -1, 0, 1, -1,
31362 & 0, 1, 1, 0, -1, 2, 1, 0, -1, 2, 1, 0, -1, 2, 0,
31363 & 1, -1, 1, -1, 0, 0, 0, -1, -1, 0, 1, 0, 1, 1, 0,
31364 & -1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 0, 1, -1, 0, 1,
31365 & -1, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, -1, 0, 0, 0,
31366 & 0, 1, 1, 0, 2, 1, 0, 1, 0, 0, 2, 1, 1, -1, -1,
31367 & 0, -2, -1, 0, -1, 0, 0, -2, -1, -1, 2, 1, 0, 1, 0,
31368 & 0, 2, 1, 1, 2, -2, -1, 0, -1, 0, 0, -2, -1, -1, -2,
31369 & 0, 1, -1, -1, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0,
31370 & 1, 0, -1, -1, 0, 1, 0, -1, 0, 1, -1, 1, 1, 0, 0/
31371* Particle baryonic charges
31372 DATA (IIBAR ( I ), I = 1,210 ) /
31373 & 1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0,
31374 & 0, 1, -1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
31375 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31376 & 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
31377 & 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31378 & -1, 2, 0, 0, 0, 1, 1, 1, 1, 2, 2, 0, 0, 1, 1,
31379 & 1, 1, 1, 1, 0, 0, 1, 1, -1, -1, -1, -1, -1, 1, 1,
31380 & 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0,
31381 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31382 & 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1,
31383 & -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1,
31384 & 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31385 & 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1,
31386 & 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 0/
31387* First number of decay channels used for resonances
31388* and decaying particles
31389 DATA K1/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17,
31390 & 18, 24, 30, 34, 38, 40, 41, 43, 44, 136, 138, 330, 327, 328,
31391 & 2*330, 46, 51, 52, 54, 55, 58,
31392* 50
31393 & 60, 62, 64, 66, 68, 70, 72, 74, 82, 90, 98, 106, 109, 112, 114,
31394 & 123, 140, 141, 143, 145, 146, 150, 157, 164, 168, 174, 180, 187,
31395 & 194, 202, 210, 211, 213, 215, 216, 220, 227, 234, 238, 245, 252,
31396* 85
31397 & 254, 255, 256, 257, 259, 262, 265, 267, 269, 272, 276, 279, 282,
31398 & 286, 290, 293, 299, 331, 335, 339, 340, 341, 343, 344, 345, 346,
31399 & 347, 350, 353, 356, 358, 360, 363, 366, 369, 372, 374, 376, 379,
31400 & 383, 385, 387, 391, 394, 397, 400, 402, 405, 408, 410, 412, 414,
31401 & 417, 420, 425, 430, 431, 432, 433, 434, 448, 452, 457, 458, 459,
31402 & 460, 461, 462, 466, 468, 470, 472, 486, 490, 495, 496, 497, 498,
31403 & 499, 500, 504, 506, 508, 510, 511, 512, 513, 514, 515, 516, 517,
31404 & 518, 519, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 534,
31405 & 537, 539, 541, 547, 553, 558, 563, 568, 572, 573, 574, 575, 576,
31406 & 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
31407 & 590, 596, 602 /
31408* Last number of decay channels used for resonances
31409* and decaying particles
31410 DATA K2/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17,
31411 & 23, 29, 31, 35, 39, 40, 42, 43, 45, 137, 139, 330, 327, 328,
31412 & 2* 330, 50, 51, 53, 54, 57,
31413* 50
31414 & 59, 61, 63, 65, 67, 69, 71, 73, 81, 89, 97, 105, 108, 111, 113,
31415 & 122, 135, 140, 142, 144, 145, 149, 156, 163, 167, 173, 179, 186,
31416 & 193, 201, 209, 210, 212, 214, 215, 219, 226, 233, 237, 244, 251,
31417* 85
31418 & 253, 254, 255, 256, 258, 261, 264, 266, 268, 271, 275, 278, 281,
31419 & 285, 289, 292, 298, 307, 334, 338, 339, 340, 342, 343, 344, 345,
31420 & 346, 349, 352, 355, 357, 359, 362, 365, 368, 371, 373, 375, 378,
31421 & 382, 384, 386, 390, 393, 396, 399, 401, 404, 407, 409, 411, 413,
31422 & 416, 419, 424, 429, 430, 431, 432, 433, 447, 451, 456, 457, 458,
31423 & 459, 460, 461, 465, 467, 469, 471, 485, 489, 494, 495, 496, 497,
31424 & 498, 499, 503, 505, 507, 509, 510, 511, 512, 513, 514, 515, 516,
31425 & 517, 518, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 533,
31426 & 536, 538, 540, 546, 552, 557, 562, 567, 571, 572, 573, 574, 575,
31427 & 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
31428 & 589, 595, 601, 602 /
31429
31430 END
31431
31432*$ CREATE DT_BLKD47.FOR
31433*COPY DT_BLKD47
31434*
31435*===blkd47=============================================================*
31436*
31437 BLOCK DATA DT_BLKD47
31438
31439 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31440 SAVE
31441
31442* HADRIN: decay channel information
31443 PARAMETER (IDMAX9=602)
31444 CHARACTER*8 ZKNAME
31445 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
31446
31447* Name of decay channel
31448* Designation N*@ means N*@1(1236)
31449* @1=# means ++, @1 = = means --
31450* Designation P+/0/- means Pi+/Pi0/Pi- , respectively
31451 DATA (ZKNAME(K),K= 1, 85) /
31452 & 'P ','AP ','E- ','E+ ','NUE ',
31453 & 'ANUE ','GAM ','PE-NUE ','APEANU ','EANUNU ',
31454 & 'E-NUAN ','3PI0 ','PI+-0 ','PIMUNU ','PIE-NU ',
31455 & 'MU+NUE ','MU-NUE ','MU+NUE ','PI+PI0 ','PI++- ',
31456 & 'PI+00 ','M+P0NU ','E+P0NU ','MU-NU ','PI-0 ',
31457 & 'PI+-- ','PI-00 ','M-P0NU ','E-P0NU ','PPI- ',
31458 & 'NPI0 ','PD-NUE ','PM-NUE ','APPI+ ','ANPI0 ',
31459 & 'APE+NU ','APM+NU ','PI+PI- ','PI0PI0 ','NPI- ',
31460 & 'PPI0 ','NPI+ ','LAGA ','GAGA ','GAE+E- ',
31461 & 'GAGA ','GAGAP0 ','PI000 ','PI+-0 ','PI+-GA ',
31462 & 'PI+0 ','PI+- ','PI00 ','PI-0 ','PI+-0 ',
31463 & 'PI+- ','PI0GA ','K+PI0 ','K0PI+ ','KOPI0 ',
31464 & 'K+PI- ','K-PI0 ','AK0PI- ','AK0PI0 ','K-PI+ ',
31465 & 'K+PI0 ','K0PI+ ','K0PI0 ','K+PI- ','K-PI0 ',
31466 & 'K0PI- ','AK0PI0 ','K-PI+ ','K+PI0 ','K0PI+ ',
31467 & 'K+89P0 ','K08PI+ ','K+RO77 ','K0RO+7 ','K+OM07 ',
31468 & 'K+E055 ','K0PI0 ','K+PI+ ','K089P0 ','K+8PI- ' /
31469 DATA (ZKNAME(K),K= 86,170) /
31470 & 'K0R077 ','K+R-77 ','K+R-77 ','K0OM07 ','K0E055 ',
31471 & 'K-PI0 ','K0PI- ','K-89P0 ','AK08P- ','K-R077 ',
31472 & 'AK0R-7 ','K-OM07 ','K-E055 ','AK0PI0 ','K-PI+ ',
31473 & 'AK08P0 ','K-8PI+ ','AK0R07 ','AK0OM7 ','AK0E05 ',
31474 & 'LA0PI+ ','SI0PI+ ','SI+PI0 ','LA0PI0 ','SI+PI- ',
31475 & 'SI-PI+ ','LA0PI- ','SI0PI- ','NEUAK0 ','PK- ',
31476 & 'SI+PI- ','SI0PI0 ','SI-PI+ ','LA0ET0 ','S+1PI- ',
31477 & 'S-1PI+ ','SO1PI0 ','NEUAK0 ','PK- ','LA0PI0 ',
31478 & 'LA0OM0 ','LA0RO0 ','SI+RO- ','SI-RO+ ','SI0RO0 ',
31479 & 'LA0ET0 ','SI0ET0 ','SI+PI- ','SI-PI+ ','SI0PI0 ',
31480 & 'K0S ','K0L ','K0S ','K0L ','P PI+ ',
31481 & 'P PI0 ','N PI+ ','P PI- ','N PI0 ','N PI- ',
31482 & 'P PI+ ','N*#PI0 ','N*+PI+ ','PRHO+ ','P PI0 ',
31483 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31484 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31485 & 'N*-PI+ ','PRHO- ','NRHO0 ','N PI- ','N*0PI- ',
31486 & 'N*-PI0 ','NRHO- ','PETA0 ','N*#PI- ','N*+PI0 ' /
31487 DATA (ZKNAME(K),K=171,255) /
31488 & 'N*0PI+ ','PRHO0 ','NRHO+ ','NETA0 ','N*+PI- ',
31489 & 'N*0PI0 ','N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ',
31490 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31491 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31492 & 'N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ','N PI+ ',
31493 & 'PRHO0 ','NRHO+ ','LAMK+ ','S+ K0 ','S0 K+ ',
31494 & 'PETA0 ','P PI- ','N PI0 ','PRHO- ','NRHO0 ',
31495 & 'LAMK0 ','S0 K0 ','S- K+ ','NETA/ ','APPI- ',
31496 & 'APPI0 ','ANPI- ','APPI+ ','ANPI0 ','ANPI+ ',
31497 & 'APPI- ','AN*=P0 ','AN*-P- ','APRHO- ','APPI0 ',
31498 & 'ANPI- ','AN*=P+ ','AN*-P0 ','AN*0P- ','APRHO0 ',
31499 & 'ANRHO- ','APPI+ ','ANPI0 ','AN*-P+ ','AN*0P0 ',
31500 & 'AN*+P- ','APRHO+ ','ANRHO0 ','ANPI+ ','AN*0P+ ',
31501 & 'AN*+P0 ','ANRHO+ ','APPI0 ','ANPI- ','AN*=P+ ',
31502 & 'AN*-P0 ','AN*0P- ','APRHO0 ','ANRHO- ','APPI+, ',
31503 & 'ANPI0 ','AN*-P+ ','AN*0P0 ','AN*+P- ','APRHO+ ',
31504 & 'ANRHO0 ','PN*014 ','NN*=14 ','PI+0 ','PI+- ' /
31505 DATA (ZKNAME(K),K=256,340) /
31506 & 'PI-0 ','P+0 ','N++ ','P+- ','P00 ',
31507 & 'N+0 ','N+- ','N00 ','P-0 ','N-0 ',
31508 & 'P-- ','PPPI0 ','PNPI+ ','PNPI0 ','PPPI- ',
31509 & 'NNPI+ ','APPPI0 ','APNPI+ ','ANNPI0 ','ANPPI- ',
31510 & 'APNPI0 ','APPPI- ','ANNPI- ','K+PPI0 ','K+NPI+ ',
31511 & 'K0PPI0 ','K-PPI0 ','K-NPI+ ','AKPPI- ','AKNPI0 ',
31512 & 'K+NPI0 ','K+PPI- ','K0PPI0 ','K0NPI+ ','K-NPI0 ',
31513 & 'K-PPI- ','AKNPI- ','PAK0 ','SI+PI0 ','SI0PI+ ',
31514 & 'SI+ETA ','S+1PI0 ','S01PI+ ','NEUK- ','LA0PI- ',
31515 & 'SI-OM0 ','LA0RO- ','SI0RO- ','SI-RO0 ','SI-ET0 ',
31516 & 'SI0PI- ','SI-0 ','BLANC ','BLANC ','BLANC ',
31517 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31518 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31519 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31520 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31521 & 'EPI+- ','EPI00 ','GAPI+- ','GAGA* ','K+- ',
31522 & 'KLKS ','PI+-0 ','EGA ','LPI0 ','LPI ' /
31523 DATA (ZKNAME(K),K=341,425) /
31524 & 'APPI0 ','ANPI- ','ALAGA ','ANPI ','ALPI0 ',
31525 & 'ALPI+ ','LAPI+ ','SI+PI0 ','SI0PI+ ','LAPI0 ',
31526 & 'SI+PI- ','SI-PI+ ','LAPI- ','SI-PI0 ','SI0PI- ',
31527 & 'TE0PI0 ','TE-PI+ ','TE0PI- ','TE-PI0 ','TE0PI ',
31528 & 'TE-PI ','LAK- ','ALPI- ','AS-PI0 ','AS0PI- ',
31529 & 'ALPI0 ','AS+PI- ','AS-PI+ ','ALPI+ ','AS+PI0 ',
31530 & 'AS0PI+ ','AT0PI0 ','AT+PI- ','AT0PI+ ','AT+PI0 ',
31531 & 'AT0PI ','AT+PI ','ALK+ ','K-PI+ ','K-PI+0 ',
31532 & 'K0PI+- ','K0PI0 ','K-PI++ ','AK0PI+ ','K+PI-- ',
31533 & 'K0PI- ','K+PI- ','K+PI-0 ','AKPI-+ ','AK0PI0 ',
31534 & 'ETAPIF ','K++- ','K+AK0 ','ETAPI- ','K--+ ',
31535 & 'K-K0 ','PI00 ','PI+- ','GAGA ','D0PI0 ',
31536 & 'D0GA ','D0PI+ ','D+PI0 ','DFGA ','AD0PI- ',
31537 & 'D-PI0 ','D-GA ','AD0PI0 ','AD0GA ','F+GA ',
31538 & 'F+GA ','F-GA ','F-GA ','PSPI+- ','PSPI00 ',
31539 & 'PSETA ','E+E- ','MUE+- ','PI+-0 ','M+NN ',
31540 & 'E+NN ','RHO+NT ','PI+ANT ','K*+ANT ','M-NN ' /
31541 DATA (ZKNAME(K),K=426,510) /
31542 & 'E-NN ','RHO-NT ','PI-NT ','K*-NT ','NUET ',
31543 & 'ANUET ','NUEM ','ANUEM ','SI+ETA ','SI+ET* ',
31544 & 'PAK0 ','TET0K+ ','SI*+ET ','N*+AK0 ','N*++K- ',
31545 & 'LAMRO+ ','SI0RO+ ','SI+RO0 ','SI+OME ','PAK*0 ',
31546 & 'N*+AK* ','N*++K* ','SI+AK0 ','TET0PI ','SI+AK* ',
31547 & 'TET0RO ','SI0AK* ','SI+K*- ','TET0OM ','TET-RO ',
31548 & 'SI*0AK ','C0+PI+ ','C0+PI0 ','C0+PI- ','A+GAM ',
31549 & 'A0GAM ','TET0AK ','TET0K* ','OM-RO+ ','OM-PI+ ',
31550 & 'C1++AK ','A+PI+ ','C0+AK0 ','A0PI+ ','A+AK0 ',
31551 & 'T0PI+ ','ASI-ET ','ASI-E* ','APK0 ','ATET0K ',
31552 & 'ASI*-E ','AN*-K0 ','AN*--K ','ALAMRO ','ASI0RO ',
31553 & 'ASI-RO ','ASI-OM ','APK*0 ','AN*-K* ','AN*--K ',
31554 & 'ASI-K0 ','ATETPI ','ASI-K* ','ATETRO ','ASI0K* ',
31555 & 'ASI-K* ','ATE0OM ','ATE+RO ','ASI*0K ','AC-PI- ',
31556 & 'AC-PI0 ','AC-PI+ ','AA-GAM ','AA0GAM ','ATET0K ',
31557 & 'ATE0K* ','AOM+RO ','AOM+PI ','AC1--K ','AA-PI- ',
31558 & 'AC0-K0 ','AA0PI- ','AA-K0 ','AT0PI- ','C1++GA ' /
31559 DATA (ZKNAME(K),K=511,540) /
31560 & 'C1++GA ','C10GAM ','S+GAM ','S0GAM ','T0GAM ',
31561 & 'XU++GA ','XD+GAM ','XS+GAM ','A+AKPI ','T02PI+ ',
31562 & 'C1++2K ','AC1--G ','AC1-GA ','AC10GA ','AS-GAM ',
31563 & 'AS0GAM ','AT0GAM ','AXU--G ','AXD-GA ','AXS-GA ',
31564 & 'AA-KPI ','AT02PI ','AC1--K ','RH-PI+ ','RH+PI- ',
31565 & 'RH3PI0 ','RH0PI+ ','RH+PI0 ','RH0PI- ','RH-PI0 ' /
31566 DATA (ZKNAME(I),I=541,602)/
31567 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHO0','ANRHO-','ANETA ',
31568 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0','RH0PI+','RH+PI0',
31569 & '3PI+00','3PI-++','F0PI+ ','RH+PI-','RH0PI0','3PI000','3PI0+-',
31570 & 'F0PI0 ','RH0PI-','RH-PI0','3PI-00','3PI--+','F0PI- ','PI0PI0',
31571 & 'PI+PI-','K+K- ','K0AK0 ','L01600','AL0160','K*+146','K*-146',
31572 & 'K*0146','AK0146','S+1660','S01660','S-1660','AS-166','AS0166',
31573 & 'AS+166','X01690','X-1690','AX0169','AX+169','OM-225','AOM+22',
31574 & 'N*PPI0','N*NPI+','N*P2P0','N*PP+-','N*D+P0','N*D0P+','N*NPI0',
31575 & 'N*PPI-','N*N2P0','N*NP+-','N*D+P-','N*D0P0','BLANK '/
31576* Weight of decay channel
31577 DATA (WT(K),K= 1, 85) /
31578 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31579 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31580 & .1000D+01, .2100D+00, .1200D+00, .2700D+00, .4000D+00,
31581 & .1000D+01, .1000D+01, .6400D+00, .2100D+00, .6000D-01,
31582 & .2000D-01, .3000D-01, .4000D-01, .6400D+00, .2100D+00,
31583 & .6000D-01, .2000D-01, .3000D-01, .4000D-01, .6400D+00,
31584 & .3600D+00, .0000D+00, .0000D+00, .6400D+00, .3600D+00,
31585 & .0000D+00, .0000D+00, .6900D+00, .3100D+00, .1000D+01,
31586 & .5200D+00, .4800D+00, .1000D+01, .9900D+00, .1000D-01,
31587 & .3800D+00, .3000D-01, .3000D+00, .2400D+00, .5000D-01,
31588 & .1000D+01, .1000D+01, .0000D+00, .1000D+01, .9000D+00,
31589 & .1000D-01, .9000D-01, .3300D+00, .6700D+00, .3300D+00,
31590 & .6700D+00, .3300D+00, .6700D+00, .3300D+00, .6700D+00,
31591 & .3300D+00, .6700D+00, .3300D+00, .6700D+00, .3300D+00,
31592 & .6700D+00, .3300D+00, .6700D+00, .1900D+00, .3800D+00,
31593 & .9000D-01, .2000D+00, .3000D-01, .4000D-01, .5000D-01,
31594 & .2000D-01, .1900D+00, .3800D+00, .9000D-01, .2000D+00 /
31595 DATA (WT(K),K= 86,170) /
31596 & .3000D-01, .4000D-01, .5000D-01, .2000D-01, .1900D+00,
31597 & .3800D+00, .9000D-01, .2000D+00, .3000D-01, .4000D-01,
31598 & .5000D-01, .2000D-01, .1900D+00, .3800D+00, .9000D-01,
31599 & .2000D+00, .3000D-01, .4000D-01, .5000D-01, .2000D-01,
31600 & .8800D+00, .6000D-01, .6000D-01, .8800D+00, .6000D-01,
31601 & .6000D-01, .8800D+00, .1200D+00, .1900D+00, .1900D+00,
31602 & .1600D+00, .1600D+00, .1700D+00, .3000D-01, .3000D-01,
31603 & .3000D-01, .4000D-01, .1000D+00, .1000D+00, .2000D+00,
31604 & .1200D+00, .1000D+00, .4000D-01, .4000D-01, .5000D-01,
31605 & .7500D-01, .7500D-01, .3000D-01, .3000D-01, .4000D-01,
31606 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01,
31607 & .6700D+00, .3300D+00, .3300D+00, .6700D+00, .1000D+01,
31608 & .2500D+00, .2700D+00, .1800D+00, .3000D+00, .1700D+00,
31609 & .8000D-01, .1800D+00, .3000D-01, .2400D+00, .2000D+00,
31610 & .1000D+00, .8000D-01, .1700D+00, .2400D+00, .3000D-01,
31611 & .1800D+00, .1000D+00, .2000D+00, .2500D+00, .1800D+00,
31612 & .2700D+00, .3000D+00, .4000D+00, .2000D+00, .1250D+00 /
31613 DATA (WT(K),K=171,255) /
31614 & .7500D-01, .7500D-01, .1250D+00, .4000D+00, .7500D-01,
31615 & .1250D+00, .2000D+00, .1250D+00, .7500D-01, .1800D+00,
31616 & .3700D+00, .1300D+00, .8000D-01, .4000D-01, .7000D-01,
31617 & .1300D+00, .3700D+00, .1800D+00, .4000D-01, .8000D-01,
31618 & .1300D+00, .1300D+00, .7000D-01, .7000D-01, .1300D+00,
31619 & .2300D+00, .4700D+00, .5000D-01, .2000D-01, .1000D-01,
31620 & .2000D-01, .1300D+00, .7000D-01, .4700D+00, .2300D+00,
31621 & .5000D-01, .1000D-01, .2000D-01, .2000D-01, .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, .1800D+00, .3700D+00, .1300D+00,
31628 & .8000D-01, .4000D-01, .7000D-01, .1300D+00, .3700D+00,
31629 & .1800D+00, .4000D-01, .8000D-01, .1300D+00, .1300D+00,
31630 & .7000D-01, .5000D+00, .5000D+00, .1000D+01, .1000D+01 /
31631 DATA (WT(K),K=256,340) /
31632 & .1000D+01, .8000D+00, .2000D+00, .6000D+00, .3000D+00,
31633 & .1000D+00, .6000D+00, .3000D+00, .1000D+00, .8000D+00,
31634 & .2000D+00, .3300D+00, .6700D+00, .6600D+00, .1700D+00,
31635 & .1700D+00, .3200D+00, .1700D+00, .3200D+00, .1900D+00,
31636 & .3300D+00, .3300D+00, .3400D+00, .3000D+00, .5000D-01,
31637 & .6500D+00, .3800D+00, .1200D+00, .3800D+00, .1200D+00,
31638 & .3800D+00, .1200D+00, .3800D+00, .1200D+00, .3000D+00,
31639 & .5000D-01, .6500D+00, .3800D+00, .2500D+00, .2500D+00,
31640 & .2000D-01, .5000D-01, .5000D-01, .2000D+00, .2000D+00,
31641 & .1200D+00, .1000D+00, .7000D-01, .7000D-01, .1400D+00,
31642 & .5000D-01, .5000D-01, .1000D+01, .1000D+01, .1000D+01,
31643 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31644 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31645 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31646 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31647 & .4800D+00, .2400D+00, .2600D+00, .2000D-01, .4700D+00,
31648 & .3500D+00, .1500D+00, .3000D-01, .1000D+01, .1000D+01 /
31649 DATA (WT(K),K=341,425) /
31650 & .5200D+00, .4800D+00, .1000D+01, .1000D+01, .1000D+01,
31651 & .1000D+01, .9000D+00, .5000D-01, .5000D-01, .9000D+00,
31652 & .5000D-01, .5000D-01, .9000D+00, .5000D-01, .5000D-01,
31653 & .3300D+00, .6700D+00, .6700D+00, .3300D+00, .2500D+00,
31654 & .2500D+00, .5000D+00, .9000D+00, .5000D-01, .5000D-01,
31655 & .9000D+00, .5000D-01, .5000D-01, .9000D+00, .5000D-01,
31656 & .5000D-01, .3300D+00, .6700D+00, .6700D+00, .3300D+00,
31657 & .2500D+00, .2500D+00, .5000D+00, .1000D+00, .5000D+00,
31658 & .1600D+00, .2400D+00, .7000D+00, .3000D+00, .7000D+00,
31659 & .3000D+00, .1000D+00, .5000D+00, .1600D+00, .2400D+00,
31660 & .3000D+00, .4000D+00, .3000D+00, .3000D+00, .4000D+00,
31661 & .3000D+00, .4900D+00, .4900D+00, .2000D-01, .5500D+00,
31662 & .4500D+00, .6800D+00, .3000D+00, .2000D-01, .6800D+00,
31663 & .3000D+00, .2000D-01, .5500D+00, .4500D+00, .9000D+00,
31664 & .1000D+00, .9000D+00, .1000D+00, .6000D+00, .3000D+00,
31665 & .1000D+00, .1000D+00, .1000D+00, .8000D+00, .2800D+00,
31666 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .2800D+00 /
31667 DATA (WT(K),K=426,510) /
31668 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .1000D+01,
31669 & .1000D+01, .1000D+01, .1000D+01, .2000D-01, .3000D-01,
31670 & .7000D-01, .2000D-01, .2000D-01, .4000D-01, .1300D+00,
31671 & .7000D-01, .6000D-01, .6000D-01, .2000D+00, .1400D+00,
31672 & .4000D-01, .1000D+00, .2500D+00, .3000D-01, .3000D+00,
31673 & .4200D+00, .2200D+00, .3500D+00, .1900D+00, .1600D+00,
31674 & .8000D-01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31675 & .1000D+01, .3700D+00, .2000D+00, .3600D+00, .7000D-01,
31676 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00,
31677 & .5000D+00, .2000D-01, .3000D-01, .7000D-01, .2000D-01,
31678 & .2000D-01, .4000D-01, .1300D+00, .7000D-01, .6000D-01,
31679 & .6000D-01, .2000D+00, .1400D+00, .4000D-01, .1000D+00,
31680 & .2500D+00, .3000D-01, .3000D+00, .4200D+00, .2200D+00,
31681 & .3500D+00, .1900D+00, .1600D+00, .8000D-01, .1000D+01,
31682 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .3700D+00,
31683 & .2000D+00, .3600D+00, .7000D-01, .5000D+00, .5000D+00,
31684 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01 /
31685 DATA (WT(K),K=511,540) /
31686 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31687 & .1000D+01, .1000D+01, .1000D+01, .3000D+00, .3000D+00,
31688 & .4000D+00, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31689 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31690 & .3000D+00, .3000D+00, .4000D+00, .3300D+00, .3300D+00,
31691 & .3400D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00 /
31692C
31693 DATA (WT(I),I=541,602) / .0D+00, .3334D+00, .2083D+00, 2*.125D+00,
31694 & .2083D+00, .0D+00, .125D+00, .2083D+00, .3334D+00, .2083D+00,
31695 & .125D+00, 0.2D+00, 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00,
31696 & 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00, 0.2D+00, 0.3D+00,
31697 & 0.3D+00, 0.0D+00, 0.31D+00, 0.62D+00, 0.035D+00, 0.035D+00,
31698 & 18*1.D+00, 0.5D+00, 0.16D+00, 2*0.12D+00, 2*0.05D+00, 0.5D+00,
31699 & 0.16D+00, 2*0.12D+00, 2*0.05D+00, 1.D+00 /
31700* Particle numbers in decay channel
31701 DATA (NZK(K,1),K= 1,170) /
31702 & 1, 2, 3, 4, 5, 6, 7, 1, 2, 4,
31703 & 3, 23, 13, 13, 13, 10, 11, 10, 13, 13,
31704 & 13, 10, 4, 11, 14, 14, 14, 11, 3, 1,
31705 & 8, 1, 1, 2, 9, 2, 2, 13, 23, 8,
31706 & 1, 8, 17, 7, 7, 7, 23, 23, 13, 13,
31707 & 13, 13, 23, 14, 13, 13, 23, 15, 24, 24,
31708 & 15, 16, 25, 25, 16, 15, 24, 24, 15, 16,
31709 & 24, 25, 16, 15, 24, 36, 37, 15, 24, 15,
31710 & 15, 24, 15, 37, 36, 24, 15, 24, 24, 16,
31711 & 24, 38, 39, 16, 25, 16, 16, 25, 16, 39,
31712 & 38, 25, 16, 25, 25, 17, 22, 21, 17, 21,
31713 & 20, 17, 22, 8, 1, 21, 22, 20, 17, 48,
31714 & 50, 49, 8, 1, 17, 17, 17, 21, 20, 22,
31715 & 17, 22, 21, 20, 22, 19, 12, 19, 12, 1,
31716 & 1, 8, 1, 8, 8, 1, 53, 54, 1, 1,
31717 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31718 & 56, 1, 8, 8, 55, 56, 8, 1, 53, 54 /
31719 DATA (NZK(K,1),K=171,340) /
31720 & 55, 1, 8, 8, 54, 55, 56, 1, 8, 1,
31721 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31722 & 56, 1, 8, 1, 8, 1, 8, 17, 21, 22,
31723 & 1, 1, 8, 1, 8, 17, 22, 20, 8, 2,
31724 & 2, 9, 2, 9, 9, 2, 67, 68, 2, 2,
31725 & 9, 67, 68, 69, 2, 9, 2, 9, 68, 69,
31726 & 70, 2, 9, 9, 69, 70, 9, 2, 9, 67,
31727 & 68, 69, 2, 9, 2, 9, 68, 69, 70, 2,
31728 & 9, 1, 8, 13, 13, 14, 1, 8, 1, 1,
31729 & 8, 8, 8, 1, 8, 1, 1, 1, 1, 1,
31730 & 8, 2, 2, 9, 9, 2, 2, 9, 15, 15,
31731 & 24, 16, 16, 25, 25, 15, 15, 24, 24, 16,
31732 & 16, 25, 1, 21, 22, 21, 48, 49, 8, 17,
31733 & 20, 17, 22, 20, 20, 22, 20, 0, 0, 0,
31734 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31735 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31736 & 31, 31, 13, 7, 15, 12, 13, 31, 17, 17 /
31737 DATA (NZK(K,1),K=341,510) /
31738 & 2, 9, 18, 9, 18, 18, 17, 21, 22, 17,
31739 & 21, 20, 17, 20, 22, 97, 98, 97, 98, 97,
31740 & 98, 17, 18, 99, 100, 18, 101, 99, 18, 101,
31741 & 100, 102, 103, 102, 103, 102, 103, 18, 16, 16,
31742 & 24, 24, 16, 25, 15, 24, 15, 15, 25, 25,
31743 & 31, 15, 15, 31, 16, 16, 23, 13, 7, 116,
31744 & 116, 116, 117, 117, 119, 118, 118, 119, 119, 120,
31745 & 120, 121, 121, 130, 130, 130, 4, 10, 13, 10,
31746 & 4, 32, 13, 36, 11, 3, 34, 14, 38, 133,
31747 & 134, 135, 136, 21, 21, 1, 97, 104, 54, 53,
31748 & 17, 22, 21, 21, 1, 54, 53, 21, 97, 21,
31749 & 97, 22, 21, 97, 98, 105, 137, 137, 137, 138,
31750 & 139, 97, 97, 109, 109, 140, 138, 137, 139, 138,
31751 & 145, 99, 99, 2, 102, 110, 68, 67, 18, 100,
31752 & 99, 99, 2, 68, 67, 99, 102, 99, 102, 100,
31753 & 99, 102, 103, 111, 149, 149, 149, 150, 151, 113,
31754 & 113, 115, 115, 152, 150, 149, 151, 150, 157, 140 /
31755 DATA (NZK(K,1),K=511,540) /
31756 & 141, 142, 143, 144, 145, 146, 147, 148, 138, 145,
31757 & 140, 152, 153, 154, 155, 156, 157, 158, 159, 160,
31758 & 150, 157, 152, 34, 32, 33, 33, 32, 33, 34 /
31759 DATA (NZK(I,1),I=541,602) / 2, 67, 68, 69, 2, 9, 9, 68, 69,
31760 & 70, 2, 9, 33, 32, 13, 14, 189, 32, 34, 23, 23, 189, 33, 34, 14,
31761 & 14, 189, 23, 13, 15, 24, 36, 38, 37, 39, 194, 195, 196, 197,
31762 & 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 1, 8, 1, 1, 54,
31763 & 55, 8, 1, 8, 8, 54, 55, 210/
31764 DATA (NZK(K,2),K= 1,170) /
31765 & 0, 0, 0, 0, 0, 0, 0, 3, 4, 6,
31766 & 5, 23, 14, 11, 3, 5, 5, 5, 23, 13,
31767 & 23, 23, 23, 5, 23, 13, 23, 23, 23, 14,
31768 & 23, 3, 11, 13, 23, 4, 10, 14, 23, 14,
31769 & 23, 13, 7, 7, 4, 7, 7, 23, 14, 14,
31770 & 23, 14, 23, 23, 14, 14, 7, 23, 13, 23,
31771 & 14, 23, 14, 23, 13, 23, 13, 23, 14, 23,
31772 & 14, 23, 13, 23, 13, 23, 13, 33, 32, 35,
31773 & 31, 23, 14, 23, 14, 33, 34, 35, 31, 23,
31774 & 14, 23, 14, 33, 34, 35, 31, 23, 13, 23,
31775 & 13, 33, 32, 35, 31, 13, 13, 23, 23, 14,
31776 & 13, 14, 14, 25, 16, 14, 23, 13, 31, 14,
31777 & 13, 23, 25, 16, 23, 35, 33, 34, 32, 33,
31778 & 31, 31, 14, 13, 23, 0, 0, 0, 0, 13,
31779 & 23, 13, 14, 23, 14, 13, 23, 13, 78, 23,
31780 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31781 & 13, 80, 79, 14, 14, 23, 80, 31, 14, 23 /
31782 DATA (NZK(K,2),K=171,340) /
31783 & 13, 79, 78, 31, 14, 23, 13, 80, 79, 23,
31784 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31785 & 13, 80, 79, 23, 13, 33, 32, 15, 24, 15,
31786 & 31, 14, 23, 34, 33, 24, 24, 15, 31, 14,
31787 & 23, 14, 13, 23, 13, 14, 23, 14, 80, 23,
31788 & 14, 13, 23, 14, 79, 80, 13, 23, 13, 23,
31789 & 14, 78, 79, 13, 13, 23, 78, 23, 14, 13,
31790 & 23, 14, 79, 80, 13, 23, 13, 23, 14, 78,
31791 & 79, 62, 61, 23, 14, 23, 13, 13, 13, 23,
31792 & 13, 13, 23, 14, 14, 14, 1, 8, 8, 1,
31793 & 8, 1, 8, 8, 1, 8, 1, 8, 1, 8,
31794 & 1, 1, 8, 1, 8, 8, 1, 1, 8, 8,
31795 & 1, 8, 25, 23, 13, 31, 23, 13, 16, 14,
31796 & 35, 34, 34, 33, 31, 14, 23, 0, 0, 0,
31797 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31798 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31799 & 13, 23, 14, 7, 16, 19, 14, 7, 23, 14 /
31800 DATA (NZK(K,2),K=341,510) /
31801 & 23, 14, 7, 13, 23, 13, 13, 23, 13, 23,
31802 & 14, 13, 14, 23, 14, 23, 13, 14, 23, 14,
31803 & 23, 16, 14, 23, 14, 23, 14, 13, 13, 23,
31804 & 13, 23, 14, 13, 23, 13, 23, 15, 13, 13,
31805 & 13, 23, 13, 13, 14, 14, 14, 14, 14, 23,
31806 & 13, 16, 25, 14, 15, 24, 23, 14, 7, 23,
31807 & 7, 13, 23, 7, 14, 23, 7, 23, 7, 7,
31808 & 7, 7, 7, 13, 23, 31, 3, 11, 14, 135,
31809 & 5, 134, 134, 134, 136, 6, 133, 133, 133, 0,
31810 & 0, 0, 0, 31, 95, 25, 15, 31, 95, 16,
31811 & 32, 32, 33, 35, 39, 39, 38, 25, 13, 39,
31812 & 32, 39, 38, 35, 32, 39, 13, 23, 14, 7,
31813 & 7, 25, 37, 32, 13, 25, 13, 25, 13, 25,
31814 & 13, 31, 95, 24, 16, 31, 24, 15, 34, 34,
31815 & 33, 35, 37, 37, 36, 24, 14, 37, 34, 37,
31816 & 36, 35, 34, 37, 14, 23, 13, 7, 7, 24,
31817 & 39, 34, 14, 24, 14, 24, 14, 24, 14, 7 /
31818 DATA (NZK(K,2),K=511,540) /
31819 & 7, 7, 7, 7, 7, 7, 7, 7, 25, 13,
31820 & 25, 7, 7, 7, 7, 7, 7, 7, 7, 7,
31821 & 24, 14, 24, 13, 14, 23, 13, 23, 14, 23 /
31822 DATA (NZK(I,2),I=541,602) / 31, 13, 23, 14, 79, 80, 31, 13, 23,
31823 & 14, 78, 79, 13, 23, 23, 13, 13, 14, 13, 23, 13, 23, 14, 23, 23,
31824 & 14, 14, 23, 14, 16, 25,
31825 & 4*23, 14*0, 23, 13, 23, 13, 23, 13, 23, 14,
31826 & 23, 13, 14, 23, 0 /
31827 DATA (NZK(K,3),K= 1,170) /
31828 & 0, 0, 0, 0, 0, 0, 0, 5, 6, 5,
31829 & 6, 23, 23, 5, 5, 0, 0, 0, 0, 14,
31830 & 23, 5, 5, 0, 0, 14, 23, 5, 5, 0,
31831 & 0, 5, 5, 0, 0, 5, 5, 0, 0, 0,
31832 & 0, 0, 0, 0, 3, 0, 7, 23, 23, 7,
31833 & 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
31834 & 110*0 /
31835 DATA (NZK(K,3),K=171,340) /
31836 & 80*0,
31837 & 0, 0, 0, 0, 0, 0, 23, 13, 14, 23,
31838 & 23, 14, 23, 23, 23, 14, 23, 13, 23, 14,
31839 & 13, 23, 13, 23, 14, 23, 14, 14, 23, 13,
31840 & 13, 23, 13, 14, 23, 23, 14, 23, 13, 23,
31841 & 14, 14, 0, 0, 0, 0, 0, 0, 0, 0,
31842 & 30*0,
31843 & 14, 23, 7, 0, 0, 0, 23, 0, 0, 0 /
31844 DATA (NZK(K,3),K=341,510) /
31845 & 30*0,
31846 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
31847 & 14, 0, 13, 0, 14, 0, 0, 23, 13, 0,
31848 & 0, 15, 0, 0, 16, 0, 0, 0, 0, 0,
31849 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31850 & 0, 0, 0, 14, 23, 0, 0, 0, 23, 134,
31851 & 134, 0, 0, 0, 133, 133, 0, 0, 0, 0,
31852 & 80*0 /
31853 DATA (NZK(K,3),K=511,540) /
31854 & 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
31855 & 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31856 & 14, 14, 24, 0, 0, 0, 0, 0, 0, 0 /
31857 DATA (NZK(I,3),I=541,602) / 12*0, 2*0, 23, 13, 0, 2*0, 23, 14, 0,
31858 & 2*0, 23, 13, 0, 4*0, 18*0, 2*0, 23, 14, 2*0, 2*0, 23, 14, 2*0, 0/
31859
31860 END
31861
31862*$ CREATE DT_BDEVAP.FOR
31863*COPY DT_BDEVAP
31864*
31865*=== bdevap ===========================================================*
31866*
31867 BLOCK DATA DT_BDEVAP
31868
31869C INCLUDE '(DBLPRC)'
31870* DBLPRC.ADD
31871 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31872 SAVE
31873* (original name: GLOBAL)
31874 PARAMETER ( KALGNM = 2 )
31875 PARAMETER ( ANGLGB = 5.0D-16 )
31876 PARAMETER ( ANGLSQ = 2.5D-31 )
31877 PARAMETER ( AXCSSV = 0.2D+16 )
31878 PARAMETER ( ANDRFL = 1.0D-38 )
31879 PARAMETER ( AVRFLW = 1.0D+38 )
31880 PARAMETER ( AINFNT = 1.0D+30 )
31881 PARAMETER ( AZRZRZ = 1.0D-30 )
31882 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
31883 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
31884 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
31885 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
31886 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
31887 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
31888 PARAMETER ( CSNNRM = 2.0D-15 )
31889 PARAMETER ( DMXTRN = 1.0D+08 )
31890 PARAMETER ( ZERZER = 0.D+00 )
31891 PARAMETER ( ONEONE = 1.D+00 )
31892 PARAMETER ( TWOTWO = 2.D+00 )
31893 PARAMETER ( THRTHR = 3.D+00 )
31894 PARAMETER ( FOUFOU = 4.D+00 )
31895 PARAMETER ( FIVFIV = 5.D+00 )
31896 PARAMETER ( SIXSIX = 6.D+00 )
31897 PARAMETER ( SEVSEV = 7.D+00 )
31898 PARAMETER ( EIGEIG = 8.D+00 )
31899 PARAMETER ( ANINEN = 9.D+00 )
31900 PARAMETER ( TENTEN = 10.D+00 )
31901 PARAMETER ( HLFHLF = 0.5D+00 )
31902 PARAMETER ( ONETHI = ONEONE / THRTHR )
31903 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
31904 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
31905 PARAMETER ( THRTWO = THRTHR / TWOTWO )
31906 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
31907 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
31908 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
31909 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
31910 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
31911 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
31912 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
31913 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
31914 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
31915 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
31916 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
31917 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
31918 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
31919 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
31920 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
31921 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
31922 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
31923 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
31924 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
31925 PARAMETER ( CLIGHT = 2.99792458 D+10 )
31926 PARAMETER ( AVOGAD = 6.0221367 D+23 )
31927 PARAMETER ( BOLTZM = 1.380658 D-23 )
31928 PARAMETER ( AMELGR = 9.1093897 D-28 )
31929 PARAMETER ( PLCKBR = 1.05457266 D-27 )
31930 PARAMETER ( ELCCGS = 4.8032068 D-10 )
31931 PARAMETER ( ELCMKS = 1.60217733 D-19 )
31932 PARAMETER ( AMUGRM = 1.6605402 D-24 )
31933 PARAMETER ( AMMUMU = 0.113428913 D+00 )
31934 PARAMETER ( AMPRMU = 1.007276470 D+00 )
31935 PARAMETER ( AMNEMU = 1.008664904 D+00 )
31936 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
31937 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
31938 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
31939 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
31940 PARAMETER ( PLABRC = 0.197327053 D+00 )
31941 PARAMETER ( AMELCT = 0.51099906 D-03 )
31942 PARAMETER ( AMUGEV = 0.93149432 D+00 )
31943 PARAMETER ( AMMUON = 0.105658389 D+00 )
31944 PARAMETER ( AMPRTN = 0.93827231 D+00 )
31945 PARAMETER ( AMNTRN = 0.93956563 D+00 )
31946 PARAMETER ( AMDEUT = 1.87561339 D+00 )
31947 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
31948 & * 1.D-09 )
31949 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
31950 PARAMETER ( BLTZMN = 8.617385 D-14 )
31951 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
31952 PARAMETER ( GFOHB3 = 1.16639 D-05 )
31953 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
31954 PARAMETER ( SIN2TW = 0.2319 D+00 )
31955 PARAMETER ( GEVMEV = 1.0 D+03 )
31956 PARAMETER ( EMVGEV = 1.0 D-03 )
31957 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
31958 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
31959 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
31960 LOGICAL LGBIAS, LGBANA
31961 COMMON /FKGLOB/ LGBIAS, LGBANA
31962C INCLUDE '(DIMPAR)'
31963* DIMPAR.ADD
31964 PARAMETER ( MXXRGN = 5000 )
31965 PARAMETER ( MXXMDF = 82 )
31966 PARAMETER ( MXXMDE = 54 )
31967 PARAMETER ( MFSTCK = 1000 )
31968 PARAMETER ( MESTCK = 100 )
31969 PARAMETER ( NELEMX = 80 )
31970 PARAMETER ( MPDPDX = 8 )
31971 PARAMETER ( ICOMAX = 180 )
31972 PARAMETER ( NSTBIS = 304 )
31973 PARAMETER ( IDMAXP = 220 )
31974 PARAMETER ( IDMXDC = 640 )
31975 PARAMETER ( MKBMX1 = 1 )
31976 PARAMETER ( MKBMX2 = 1 )
31977C INCLUDE '(IOUNIT)'
31978* IOUNIT.ADD
31979 PARAMETER ( LUNIN = 5 )
31980 PARAMETER ( LUNOUT = 6 )
31981**sr 19.5. set error output-unit from 15 to 6
31982 PARAMETER ( LUNERR = 6 )
31983 PARAMETER ( LUNBER = 14 )
31984 PARAMETER ( LUNECH = 8 )
31985 PARAMETER ( LUNFLU = 13 )
31986 PARAMETER ( LUNGEO = 16 )
31987 PARAMETER ( LUNPMF = 12 )
31988 PARAMETER ( LUNRAN = 2 )
31989 PARAMETER ( LUNXSC = 9 )
31990 PARAMETER ( LUNDET = 17 )
31991 PARAMETER ( LUNRAY = 10 )
31992 PARAMETER ( LUNRDB = 1 )
31993 PARAMETER ( LUNPGO = 7 )
31994 PARAMETER ( LUNPGS = 4 )
31995 PARAMETER ( LUNSCR = 3 )
31996*
31997*----------------------------------------------------------------------*
31998* *
31999* Block Data for the EVAPoration routines: *
32000* *
32001* Created on 20 may 1990 by Alfredo Ferrari & Paola Sala *
32002* Infn - Milan *
32003* *
32004* Modified from the original version of J.M.Zazula *
32005* and, for cookcm, from a LAHET block data kindly provided by *
32006* R.E.Prael-LANL *
32007* *
32008* Last change on 20-feb-95 by Alfredo Ferrari *
32009* *
32010* *
32011*----------------------------------------------------------------------*
32012*
32013* (original name: COOKCM)
32014 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
32015 LOGICAL LDEFOZ, LDEFON
32016 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
32017 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
32018 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
32019 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
32020* (original name: EVA0)
32021 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
32022 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
32023 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
32024 * T (4,7), RMASS (297), ALPH (297), BET (297),
32025 * APRIME (250), IA (6), IZ (6)
32026* (original name: HETTP)
32027 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
32028* (original name: HETC7)
32029 COMMON /FKHET7/ COSKS,SINKS, COSTH,SINTH, COSPHI,SINPHI
32030* (original name: INPFLG)
32031 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
32032*
32033 DATA B0 / 8.D+00 /, Y0 / 1.5D+00 /
32034 DATA IANG / 1 /, IFISS / 1 /, IB0 / 2 /, IGEOM / 0 /
32035 DATA ISTRAG /0/, KEYDK /0/
32036 DATA NBERTP /LUNBER/
32037 DATA COSTH /ONEONE/, SINTH /ZERZER/, COSPHI /ONEONE/,
32038 & SINPHI/ZERZER/
32039* /cookcm/
32040 DATA ( PZCOOK(I),I = 1, IZCOOK ) /
32041 & 0.000D+00, 5.440D+00, 0.000D+00, 2.760D+00, 0.000D+00, 3.340D+00,
32042 & 0.000D+00, 2.700D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.460D+00,
32043 & 0.000D+00, 2.090D+00, 0.000D+00, 1.620D+00, 0.000D+00, 1.620D+00,
32044 & 0.000D+00, 1.830D+00, 0.000D+00, 1.730D+00, 0.000D+00, 1.350D+00,
32045 & 0.000D+00, 1.540D+00, 0.000D+00, 1.280D+00, 2.600D-01, 8.800D-01,
32046 & 1.900D-01, 1.350D+00,-5.000D-02, 1.520D+00,-9.000D-02, 1.170D+00,
32047 & 4.000D-02, 1.240D+00, 2.900D-01, 1.090D+00, 2.600D-01, 1.170D+00,
32048 & 2.300D-01, 1.150D+00,-8.000D-02, 1.350D+00, 3.400D-01, 1.050D+00,
32049 & 2.800D-01, 1.270D+00, 0.000D+00, 1.050D+00, 0.000D+00, 1.000D+00,
32050 & 9.000D-02, 1.200D+00, 2.000D-01, 1.400D+00, 9.300D-01, 1.000D+00,
32051 &-2.000D-01, 1.190D+00, 9.000D-02, 9.700D-01, 0.000D+00, 9.200D-01,
32052 & 1.100D-01, 6.800D-01, 5.000D-02, 6.800D-01,-2.200D-01, 7.900D-01,
32053 & 9.000D-02, 6.900D-01, 1.000D-02, 7.200D-01, 0.000D+00, 4.000D-01,
32054 & 1.600D-01, 7.300D-01, 0.000D+00, 4.600D-01, 1.700D-01, 8.900D-01,
32055 & 0.000D+00, 7.900D-01, 0.000D+00, 8.900D-01, 0.000D+00, 8.100D-01,
32056 &-6.000D-02, 6.900D-01,-2.000D-01, 7.100D-01,-1.200D-01, 7.200D-01,
32057 & 0.000D+00, 7.700D-01/
32058 DATA ( PNCOOK(I),I = 1, 90 ) /
32059 & 0.000D+00, 5.980D+00, 0.000D+00, 2.770D+00, 0.000D+00, 3.160D+00,
32060 & 0.000D+00, 3.010D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.670D+00,
32061 & 0.000D+00, 1.800D+00, 0.000D+00, 1.670D+00, 0.000D+00, 1.860D+00,
32062 & 0.000D+00, 2.040D+00, 0.000D+00, 1.640D+00, 0.000D+00, 1.440D+00,
32063 & 0.000D+00, 1.540D+00, 0.000D+00, 1.300D+00, 0.000D+00, 1.270D+00,
32064 & 0.000D+00, 1.290D+00, 8.000D-02, 1.410D+00,-8.000D-02, 1.500D+00,
32065 &-5.000D-02, 2.240D+00,-4.700D-01, 1.430D+00,-1.500D-01, 1.440D+00,
32066 & 6.000D-02, 1.560D+00, 2.500D-01, 1.570D+00,-1.600D-01, 1.460D+00,
32067 & 0.000D+00, 9.300D-01, 1.000D-02, 6.200D-01,-5.000D-01, 1.420D+00,
32068 & 1.300D-01, 1.520D+00,-6.500D-01, 8.000D-01,-8.000D-02, 1.290D+00,
32069 &-4.700D-01, 1.250D+00,-4.400D-01, 9.700D-01, 8.000D-02, 1.650D+00,
32070 &-1.100D-01, 1.260D+00,-4.600D-01, 1.060D+00, 2.200D-01, 1.550D+00,
32071 &-7.000D-02, 1.370D+00, 1.000D-01, 1.200D+00,-2.700D-01, 9.200D-01,
32072 &-3.500D-01, 1.190D+00, 0.000D+00, 1.050D+00,-2.500D-01, 1.610D+00,
32073 &-2.100D-01, 9.000D-01,-2.100D-01, 7.400D-01,-3.800D-01, 7.200D-01/
32074 DATA ( PNCOOK(I),I = 91, INCOOK ) /
32075 &-3.400D-01, 9.200D-01,-2.600D-01, 9.400D-01, 1.000D-02, 6.500D-01,
32076 &-3.600D-01, 8.300D-01, 1.100D-01, 6.700D-01, 5.000D-02, 1.000D+00,
32077 & 5.100D-01, 1.040D+00, 3.300D-01, 6.800D-01,-2.700D-01, 8.100D-01,
32078 & 9.000D-02, 7.500D-01, 1.700D-01, 8.600D-01, 1.400D-01, 1.100D+00,
32079 &-2.200D-01, 8.400D-01,-4.700D-01, 4.800D-01, 2.000D-02, 8.800D-01,
32080 & 2.400D-01, 5.200D-01, 2.700D-01, 4.100D-01,-5.000D-02, 3.800D-01,
32081 & 1.500D-01, 6.700D-01, 0.000D+00, 6.100D-01, 0.000D+00, 7.800D-01,
32082 & 0.000D+00, 6.700D-01, 0.000D+00, 6.700D-01, 0.000D+00, 7.900D-01,
32083 & 0.000D+00, 6.000D-01, 4.000D-02, 6.400D-01,-6.000D-02, 4.500D-01,
32084 & 5.000D-02, 2.600D-01,-2.200D-01, 3.900D-01, 0.000D+00, 3.900D-01/
32085 DATA ( SZCOOK(I),I = 1, 98) /
32086 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32087 & 0.000D+00, 0.000D+00,-1.100D-01,-8.100D-01,-2.910D+00,-4.170D+00,
32088 &-5.720D+00,-7.800D+00,-8.970D+00,-9.700D+00,-1.010D+01,-1.070D+01,
32089 &-1.138D+01,-1.207D+01,-1.255D+01,-1.324D+01,-1.393D+01,-1.471D+01,
32090 &-1.553D+01,-1.637D+01,-1.736D+01,-1.860D+01,-1.870D+01,-1.801D+01,
32091 &-1.787D+01,-1.708D+01,-1.660D+01,-1.675D+01,-1.650D+01,-1.635D+01,
32092 &-1.622D+01,-1.641D+01,-1.689D+01,-1.643D+01,-1.668D+01,-1.673D+01,
32093 &-1.745D+01,-1.729D+01,-1.744D+01,-1.782D+01,-1.862D+01,-1.827D+01,
32094 &-1.939D+01,-1.991D+01,-1.914D+01,-1.826D+01,-1.740D+01,-1.642D+01,
32095 &-1.577D+01,-1.437D+01,-1.391D+01,-1.310D+01,-1.311D+01,-1.143D+01,
32096 &-1.089D+01,-1.075D+01,-1.062D+01,-1.041D+01,-1.021D+01,-9.850D+00,
32097 &-9.470D+00,-9.030D+00,-8.610D+00,-8.130D+00,-7.460D+00,-7.480D+00,
32098 &-7.200D+00,-7.130D+00,-7.060D+00,-6.780D+00,-6.640D+00,-6.640D+00,
32099 &-7.680D+00,-7.890D+00,-8.410D+00,-8.490D+00,-7.880D+00,-6.300D+00,
32100 &-5.470D+00,-4.780D+00,-4.370D+00,-4.170D+00,-4.130D+00,-4.320D+00,
32101 &-4.550D+00,-5.040D+00,-5.280D+00,-6.060D+00,-6.280D+00,-6.870D+00,
32102 &-7.200D+00,-7.740D+00/
32103 DATA ( SNCOOK(I),I = 1, 90 ) /
32104 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32105 & 0.000D+00, 0.000D+00, 1.030D+01, 5.660D+00, 6.800D+00, 7.530D+00,
32106 & 7.550D+00, 7.210D+00, 7.440D+00, 8.070D+00, 8.940D+00, 9.810D+00,
32107 & 1.060D+01, 1.139D+01, 1.254D+01, 1.368D+01, 1.434D+01, 1.419D+01,
32108 & 1.383D+01, 1.350D+01, 1.300D+01, 1.213D+01, 1.260D+01, 1.326D+01,
32109 & 1.413D+01, 1.492D+01, 1.552D+01, 1.638D+01, 1.716D+01, 1.755D+01,
32110 & 1.803D+01, 1.759D+01, 1.903D+01, 1.871D+01, 1.880D+01, 1.899D+01,
32111 & 1.846D+01, 1.825D+01, 1.776D+01, 1.738D+01, 1.672D+01, 1.562D+01,
32112 & 1.438D+01, 1.288D+01, 1.323D+01, 1.381D+01, 1.490D+01, 1.486D+01,
32113 & 1.576D+01, 1.620D+01, 1.762D+01, 1.773D+01, 1.816D+01, 1.867D+01,
32114 & 1.969D+01, 1.951D+01, 2.017D+01, 1.948D+01, 1.998D+01, 1.983D+01,
32115 & 2.020D+01, 1.972D+01, 1.987D+01, 1.924D+01, 1.844D+01, 1.761D+01,
32116 & 1.710D+01, 1.616D+01, 1.590D+01, 1.533D+01, 1.476D+01, 1.354D+01,
32117 & 1.263D+01, 1.065D+01, 1.010D+01, 8.890D+00, 1.025D+01, 9.790D+00,
32118 & 1.139D+01, 1.172D+01, 1.243D+01, 1.296D+01, 1.343D+01, 1.337D+01/
32119 DATA ( SNCOOK(I),I = 91, INCOOK ) /
32120 & 1.296D+01, 1.211D+01, 1.192D+01, 1.100D+01, 1.080D+01, 1.042D+01,
32121 & 1.039D+01, 9.690D+00, 9.270D+00, 8.930D+00, 8.570D+00, 8.020D+00,
32122 & 7.590D+00, 7.330D+00, 7.230D+00, 7.050D+00, 7.420D+00, 6.750D+00,
32123 & 6.600D+00, 6.380D+00, 6.360D+00, 6.490D+00, 6.250D+00, 5.850D+00,
32124 & 5.480D+00, 4.530D+00, 4.300D+00, 3.390D+00, 2.350D+00, 1.660D+00,
32125 & 8.100D-01, 4.600D-01,-9.600D-01,-1.690D+00,-2.530D+00,-3.160D+00,
32126 &-1.870D+00,-4.100D-01, 7.100D-01, 1.660D+00, 2.620D+00, 3.220D+00,
32127 & 3.760D+00, 4.100D+00, 4.460D+00, 4.830D+00, 5.090D+00, 5.180D+00,
32128 & 5.170D+00, 5.100D+00, 5.010D+00, 4.970D+00, 5.090D+00, 5.030D+00,
32129 & 4.930D+00, 5.280D+00, 5.490D+00, 5.500D+00, 5.370D+00, 5.300D+00/
32130 DATA LDEFOZ / 53*.FALSE.,25*.TRUE.,7*.FALSE.,13*.TRUE. /
32131 DATA LDEFON / 85*.FALSE.,37*.TRUE.,7*.FALSE.,21*.TRUE. /
32132*=== End of Block Data Bdevap =========================================*
32133 END
32134
32135*$ CREATE DT_BDNOPT.FOR
32136*COPY DT_BDNOPT
32137*
32138*=== bdnopt ===========================================================*
32139*== *
32140 BLOCK DATA DT_BDNOPT
32141
32142C INCLUDE '(DBLPRC)'
32143* DBLPRC.ADD
32144 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32145 SAVE
32146* (original name: GLOBAL)
32147 PARAMETER ( KALGNM = 2 )
32148 PARAMETER ( ANGLGB = 5.0D-16 )
32149 PARAMETER ( ANGLSQ = 2.5D-31 )
32150 PARAMETER ( AXCSSV = 0.2D+16 )
32151 PARAMETER ( ANDRFL = 1.0D-38 )
32152 PARAMETER ( AVRFLW = 1.0D+38 )
32153 PARAMETER ( AINFNT = 1.0D+30 )
32154 PARAMETER ( AZRZRZ = 1.0D-30 )
32155 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32156 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32157 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32158 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32159 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32160 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32161 PARAMETER ( CSNNRM = 2.0D-15 )
32162 PARAMETER ( DMXTRN = 1.0D+08 )
32163 PARAMETER ( ZERZER = 0.D+00 )
32164 PARAMETER ( ONEONE = 1.D+00 )
32165 PARAMETER ( TWOTWO = 2.D+00 )
32166 PARAMETER ( THRTHR = 3.D+00 )
32167 PARAMETER ( FOUFOU = 4.D+00 )
32168 PARAMETER ( FIVFIV = 5.D+00 )
32169 PARAMETER ( SIXSIX = 6.D+00 )
32170 PARAMETER ( SEVSEV = 7.D+00 )
32171 PARAMETER ( EIGEIG = 8.D+00 )
32172 PARAMETER ( ANINEN = 9.D+00 )
32173 PARAMETER ( TENTEN = 10.D+00 )
32174 PARAMETER ( HLFHLF = 0.5D+00 )
32175 PARAMETER ( ONETHI = ONEONE / THRTHR )
32176 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32177 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32178 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32179 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32180 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32181 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32182 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32183 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32184 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32185 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32186 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32187 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32188 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32189 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32190 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32191 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32192 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32193 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32194 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32195 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32196 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32197 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32198 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32199 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32200 PARAMETER ( BOLTZM = 1.380658 D-23 )
32201 PARAMETER ( AMELGR = 9.1093897 D-28 )
32202 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32203 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32204 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32205 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32206 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32207 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32208 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32209 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32210 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32211 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32212 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32213 PARAMETER ( PLABRC = 0.197327053 D+00 )
32214 PARAMETER ( AMELCT = 0.51099906 D-03 )
32215 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32216 PARAMETER ( AMMUON = 0.105658389 D+00 )
32217 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32218 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32219 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32220 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32221 & * 1.D-09 )
32222 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32223 PARAMETER ( BLTZMN = 8.617385 D-14 )
32224 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32225 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32226 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32227 PARAMETER ( SIN2TW = 0.2319 D+00 )
32228 PARAMETER ( GEVMEV = 1.0 D+03 )
32229 PARAMETER ( EMVGEV = 1.0 D-03 )
32230 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32231 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32232 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32233 LOGICAL LGBIAS, LGBANA
32234 COMMON /FKGLOB/ LGBIAS, LGBANA
32235C INCLUDE '(DIMPAR)'
32236* DIMPAR.ADD
32237 PARAMETER ( MXXRGN = 5000 )
32238 PARAMETER ( MXXMDF = 82 )
32239 PARAMETER ( MXXMDE = 54 )
32240 PARAMETER ( MFSTCK = 1000 )
32241 PARAMETER ( MESTCK = 100 )
32242 PARAMETER ( NELEMX = 80 )
32243 PARAMETER ( MPDPDX = 8 )
32244 PARAMETER ( ICOMAX = 180 )
32245 PARAMETER ( NSTBIS = 304 )
32246 PARAMETER ( IDMAXP = 220 )
32247 PARAMETER ( IDMXDC = 640 )
32248 PARAMETER ( MKBMX1 = 1 )
32249 PARAMETER ( MKBMX2 = 1 )
32250C INCLUDE '(IOUNIT)'
32251* IOUNIT.ADD
32252 PARAMETER ( LUNIN = 5 )
32253 PARAMETER ( LUNOUT = 6 )
32254**sr 19.5. set error output-unit from 15 to 6
32255 PARAMETER ( LUNERR = 6 )
32256 PARAMETER ( LUNBER = 14 )
32257 PARAMETER ( LUNECH = 8 )
32258 PARAMETER ( LUNFLU = 13 )
32259 PARAMETER ( LUNGEO = 16 )
32260 PARAMETER ( LUNPMF = 12 )
32261 PARAMETER ( LUNRAN = 2 )
32262 PARAMETER ( LUNXSC = 9 )
32263 PARAMETER ( LUNDET = 17 )
32264 PARAMETER ( LUNRAY = 10 )
32265 PARAMETER ( LUNRDB = 1 )
32266 PARAMETER ( LUNPGO = 7 )
32267 PARAMETER ( LUNPGS = 4 )
32268 PARAMETER ( LUNSCR = 3 )
32269*
32270*----------------------------------------------------------------------*
32271* *
32272* Created on 20 september 1989 by Alfredo Ferrari - Infn Milan *
32273* *
32274* Last change on 20-apr-95 by Alfredo Ferrari *
32275* *
32276*----------------------------------------------------------------------*
32277*
32278C INCLUDE '(BLNKCM)'
32279* BLNKCM.ADD
32280**sr 17.5. commented since not used here
32281C PARAMETER ( NBLNMX = 1100000 )
32282C DIMENSION GMSTOR ( NBLNMX ), BRMBRR ( NBLNMX ), BRMEXP ( NBLNMX ),
32283C & BRMSIG ( NBLNMX ), SIGGTT ( KALGNM*NBLNMX ),
32284C & COMSCO ( NBLNMX ), LBSTOR ( KALGNM*NBLNMX )
32285C REAL SIGGTT
32286C LOGICAL LBSTOR
32287C COMMON NSTOR ( KALGNM*NBLNMX )
32288**
32289**sr 18.5. commented since not used for evap.
32290C COMMON / ADDRCM / MBLNMX, KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST,
32291C & KISBGN, KISLST, KDTBGN, KDTLST, KUBBGN, KUBLST,
32292C & KUXBGN, KUXLST, KTCBGN, KTCLST, KRNBGN, KRNLST,
32293C & KYLBGN, KYLLST, KXSBGN, KXSLST, KIHBGN, KIHLST,
32294C & KINBGN, KINLST, KIEBGN, KIELST, KETBGN, KETLST,
32295C & KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32296C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST,
32297C & KWLBGN, KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST,
32298C & KWSBGN, KWSLST, KNDBGN, KNDLST, KDPBGN, KDPLST,
32299C & KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN, KBRLST,
32300C & KTMBGN
32301**
32302
32303C EQUIVALENCE ( NSTOR (1), GMSTOR (1) )
32304C EQUIVALENCE ( NSTOR (1), BRMBRR (1) )
32305C EQUIVALENCE ( NSTOR (1), BRMEXP (1) )
32306C EQUIVALENCE ( NSTOR (1), BRMSIG (1) )
32307C EQUIVALENCE ( NSTOR (1), COMSCO (1) )
32308C EQUIVALENCE ( NSTOR (1), SIGGTT (1) )
32309C EQUIVALENCE ( NSTOR (1), LBSTOR (1) )
32310C INCLUDE '(BLNTMP)'
32311* BLNTMP.ADD
32312**sr 18.5. commented since not used for evap.
32313C COMMON / BLNTMP / KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM,
32314C & KGCBTM, KGDWTM, KBDWTM, KWLOTM, KWHITM, KWMUTM,
32315C & KWSHTM, KEXTTM, KSTXTM, KSTNTM, KECTTM, KPCTTM,
32316C & KLPBTM, NXXRGN
32317**
32318C INCLUDE '(CMMDNR)'
32319* CMMDNR.ADD
32320**sr 18.5. commented since not used for evap.
32321C LOGICAL LFLDNR
32322C COMMON / CMMDNR / DDNEAR, LFLDNR
32323**
32324C INCLUDE '(CTITLE)'
32325* CTITLE.ADD
32326**sr 18.5. commented since not used for evap.
32327C CHARACTER RUNTIT*80, RUNTIM*32, RUNKEY*10
32328C COMMON / CTITLE / RUNTIT, RUNTIM, RUNKEY
32329C COMMON / CEXPCK / ITEXPI, ITEXMX
32330**
32331C INCLUDE '(DETECT)'
32332* DETECT.ADD
32333**sr 18.5. commented since not used for evap.
32334C PARAMETER (NRGNMX = 10)
32335C PARAMETER (NDTCMX = 10)
32336C PARAMETER (NSCRMX = 10)
32337C PARAMETER (NDTBIN = 1024)
32338C CHARACTER*10 TITDET,TITSCO
32339C LOGICAL LDTCTR
32340C COMMON /DETCT/ EDTMIN(NDTCMX), EDTBIN(NDTCMX), EDTCUT(NDTCMX),
32341C & KDTREG(NRGNMX,NDTCMX), KDTDET(NDTCMX,NSCRMX),
32342C & NDTSCO, NDTDET, LDTCTR, IDTREG(MXXRGN),
32343C & KDTSCD(NSCRMX)
32344C COMMON /DETCH/ TITDET(NDTCMX), TITSCO(NSCRMX)
32345**
32346C INCLUDE '(DETLOC)'
32347* DETLOC.ADD
32348**sr 18.5. commented since not used for evap.
32349C PARAMETER (NDTCM2 = 10)
32350C COMMON /DETLOC/ ACCUMP (NDTCM2), ACCUMN (NDTCM2),
32351C & ICOINC(NDTCM2), NCLAS
32352**
32353C INCLUDE '(EMGTRN)'
32354* EMGTRN.ADD
32355**sr 18.5. commented since not used for evap.
32356C LOGICAL LMCSMG
32357C COMMON / EMGTRN / UMCSMG, VMCSMG, WMCSMG, LMCSMG
32358**
32359C INCLUDE '(EMSHO)'
32360* EMSHO.ADD
32361**sr 18.5. commented since not used for evap.
32362C LOGICAL EMFLO, EMFHLO, EMFELO, LIMPRE, LEXPTE
32363C COMMON /EMSHO/ EMFETH, EMFPTH, EMFHET, EMFHPT, EMFBIA, EMFLO,
32364C & EMFHLO, EMFELO, LIMPRE, LEXPTE
32365**
32366C INCLUDE '(EPISOR)'
32367* EPISOR.ADD
32368**sr 18.5. commented since not used for evap.
32369C LOGICAL LUSSRC
32370C COMMON/EPISOR/TKESUM,LUSSRC
32371**
32372* (original name: FHEAVY,FHEAVC)
32373 PARAMETER ( MXHEAV = 100 )
32374 CHARACTER*8 ANHEAV
32375 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
32376 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
32377 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
32378 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
32379 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
32380 & IBHEAV ( 12 ) , NPHEAV
32381 COMMON /FKFHVC/ ANHEAV ( 12 )
32382* (original name: FINUC)
32383 PARAMETER (MXP=999)
32384 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
32385 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
32386 & TKI (MXP), PLR (MXP), WEI (MXP),
32387 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
32388 & KPART (MXP)
32389C INCLUDE '(GENTHR)'
32390* GENTHR.ADD
32391**sr 18.5. commented since not used for evap.
32392C COMMON / GENTHR / PEANCT, PEAPIT, PLDNCT, PTHRSH (NALLWP),
32393C & PTHDFF (NALLWP), IJNUCR (NALLWP)
32394**
32395C INCLUDE '(LOWNEU)'
32396* LOWNEU.ADD
32397**sr 18.5. commented since not used for evap.
32398C PARAMETER ( MXGTHN = 15 )
32399C PARAMETER ( MXGLWN = 200 )
32400C PARAMETER ( MXSHPP = 5 )
32401C LOGICAL LCOMPN, LIMPRN, LBIASN, LDOWNN, LRECPR, LLOWWW, LLOWET
32402C CHARACTER*10 TITLOW
32403C COMMON / LOWNEU / ATOLOW (MXXMDF), WSHPLN (MXGLWN,MXSHPP), EXTWWL,
32404C & SHPIMP (MXGLWN), EXTETL (MXGLWN), WWAMFL,
32405C & VLLNTH (MXGTHN,MXXMDF), ABLNTH (MXGTHN,MXXMDF),
32406C & STLNTH (MXGTHN,MXXMDF), TMRTLN (MXXMDF),
32407C & TMNMLN (MXXMDF), ICHCPT (MXXMDF),
32408C & IGTMRT (MXXMDF), NEUMED (MXXMDF),
32409C & ID1MED (MXXMDF), ID2MED (MXXMDF),
32410C & ID3MED (MXXMDF), MGTMED (MXXMDF),
32411C & LCOMPN (MXXMDF), LRECPR (MXXMDF), KPRLOW, NMGP,
32412C & NMTG , IGRTHN, LIMPRN, LBIASN, LDOWNN, LLOWWW,
32413C & LLOWET, ICLMED, IKRBGN, INABGN, IDWBGN, IETBGN,
32414C & I0XSEC, IDXSEC, ISENAV, ISVELN, ISPNAV, IWWLWB,
32415C & IWWLWT, IPXBGN, NPXSEC
32416C COMMON / CHLWNT / TITLOW (MXXMDF)
32417**
32418C INCLUDE '(LTCLCM)'
32419* LTCLCM.ADD
32420**sr 18.5. commented since not used for evap.
32421C COMMON / LTCLCM / MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1
32422**
32423C INCLUDE '(MULBOU)'
32424* MULBOU.ADD
32425**sr 18.5. commented since not used for evap.
32426C LOGICAL LLDA , LAGAIN, LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32427C COMMON / MULBOU / UOLD , VOLD , WOLD , UMAG , VMAG , WMAG ,
32428C & UNORML, VNORML, WNORML, USENSE, VSENSE, WSENSE,
32429C & TSENSE, DDSENS, DSMALL, NSSENS, LLDA , LAGAIN,
32430C & LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32431**
32432C INCLUDE '(MULHD)'
32433* MULHD.ADD
32434**sr 18.5. commented since not used for evap.
32435C PARAMETER ( MXXPT1 = 1 )
32436C PARAMETER ( TIMESS = 2.00D+00 )
32437C PARAMETER ( TMSRLX = 1.50D+00 )
32438C PARAMETER ( EPSINS = 0.15D+00 )
32439C PARAMETER ( EPSRLX = 0.50D+00 )
32440C PARAMETER ( SQEPSN = 0.3872983346207417 D+00 )
32441C PARAMETER ( SQEPSR = 0.7071067811865475 D+00 )
32442C PARAMETER ( PARNSI = 1.732050807568877 D+00 * SQEPSN )
32443C PARAMETER ( PRNSR0 = 1.732050807568877 D+00 * SQEPSR )
32444C PARAMETER ( R0NCMS = 1.20 D+00 )
32445C LOGICAL LTOPT, LSRCRH, LNSCRH
32446C COMMON / MULHD / BLCC ( MXXMDF ), BLCCRA ( MXXMDF ),
32447C & XCC ( MXXMDF ), ZTILDE ( MXXMDF, 0:MXXPT1 ),
32448C & ALPZTL ( MXXMDF, 0:MXXPT1 ), RLDU ( MXXMDF ),
32449C & ALPZT2 ( MXXMDF, 0:MXXPT1 ), TEFF0 ( MXXMDF ),
32450C & XR0 ( MXXMDF ), ECUTM ( MXXMDF, 39, 2 ),
32451C & ESTEPF ( MXXMDF ), HTHNSZ ( MXXMDF, 39 ),
32452C & AE1O3 ( MXXMDF ), PARNSR ( MXXMDF ),
32453C & HEESLI ( MXXMDF ), THMSPR, THMSSC, HMSAMP,
32454C & HMREJE, LSRCRH ( MXXMDF ), LNSCRH ( MXXMDF ),
32455C & LTOPT ( MXXMDF ), NFSCAT
32456**
32457* (original name: PAREVT)
32458 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
32459 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
32460 PARAMETER ( NALLWP = 39 )
32461 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
32462 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
32463 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
32464 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
32465* (original name: RESNUC)
32466 LOGICAL LRNFSS, LFRAGM
32467 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
32468 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
32469 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
32470 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
32471 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
32472 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
32473 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
32474 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
32475 & LFRAGM
32476C INCLUDE '(SCOHLP)'
32477* SCOHLP.ADD
32478**sr 18.5. commented since not used for evap.
32479C LOGICAL LSCZER
32480C COMMON / SCOHLP / ISCRNG, JSCRNG, LSCZER
32481**
32482C INCLUDE '(TRACKR)'
32483* TRACKR.ADD
32484**sr 18.5. commented since not used for evap.
32485C PARAMETER ( MXTRCK = 2500 )
32486C LOGICAL LFSSSC
32487C COMMON / TRACKR / XTRACK ( 0:MXTRCK ), YTRACK ( 0:MXTRCK ),
32488C & ZTRACK ( 0:MXTRCK ), TTRACK ( MXTRCK ),
32489C & DTRACK ( MXTRCK ), ETRACK, PTRACK, WTRACK,
32490C & ATRACK, CTRACK, AKSHRT, AKLONG, WSCRNG,
32491C & NTRACK, MTRACK, JTRACK, KTRACK, MMTRCK,
32492C & LT1TRK, LT2TRK, LTRACK, LLOUSE, LFSSSC
32493**
32494C INCLUDE '(USRBDX)'
32495* USRBDX.ADD
32496**sr 18.5. commented since not used for evap.
32497C PARAMETER ( MXUSBX = 600 )
32498C LOGICAL LUSBDX, LFUSBX, LWUSBX, LLNUSX
32499C CHARACTER*10 TITUSX
32500C COMMON /USRBX/ EBXLOW(MXUSBX), EBXHGH(MXUSBX), ABXLOW(MXUSBX),
32501C & ABXHGH(MXUSBX), DEBXBN(MXUSBX), DABXBN(MXUSBX),
32502C & AUSBDX(MXUSBX),
32503C & NEBXBN(MXUSBX), NABXBN(MXUSBX), NR1USX(MXUSBX),
32504C & NR2USX(MXUSBX), ITUSBX(MXUSBX), IDUSBX(MXUSBX),
32505C & KBUSBX(MXUSBX), IPUSBX(MXUSBX), IGMUSX(MXUSBX),
32506C & LFUSBX(MXUSBX), LWUSBX(MXUSBX), LLNUSX(MXUSBX),
32507C & NUSRBX, LUSBDX
32508C COMMON /USXCH/ TITUSX(MXUSBX)
32509**
32510C INCLUDE '(USRBIN)'
32511* USRBIN.ADD
32512**sr 18.5. commented since not used for evap.
32513C PARAMETER ( MXUSBN = 100 )
32514C LOGICAL LUSBIN, LEVTBN, LNTZER, LUSEVT, LUSTKB, LTRKBN
32515C CHARACTER*10 TITUSB
32516C COMMON /USRBN/ XLOW (MXUSBN), XHIGH (MXUSBN), YLOW (MXUSBN),
32517C & YHIGH (MXUSBN), ZLOW (MXUSBN), ZHIGH (MXUSBN),
32518C & DXUSBN(MXUSBN), DYUSBN(MXUSBN), DZUSBN(MXUSBN),
32519C & TCUSBN(MXUSBN), BKUSBN(MXUSBN), B2USBN(MXUSBN),
32520C & NXBIN (MXUSBN), NYBIN (MXUSBN), NZBIN (MXUSBN),
32521C & ITUSBN(MXUSBN), IDUSBN(MXUSBN), KBUSBN(MXUSBN),
32522C & IPUSBN(MXUSBN), LEVTBN(MXUSBN), LNTZER(MXUSBN),
32523C & LTRKBN(MXUSBN), NUSRBN, LUSBIN, LUSEVT, LUSTKB
32524C COMMON /USRCH/ TITUSB(MXUSBN)
32525**
32526C INCLUDE '(USRSNC)'
32527* USRSNC.ADD
32528**sr 18.5. commented since not used for evap.
32529C PARAMETER ( MXRSNC = 400 )
32530C PARAMETER ( NMZMIN = -5 )
32531C LOGICAL LURSNC
32532C CHARACTER*10 TIURSN
32533C COMMON /USRSNC/ VURSNC(MXRSNC), IZRHGH(MXRSNC), IMRHGH(MXRSNC),
32534C & NRURSN(MXRSNC), ITURSN(MXRSNC), KBURSN(MXRSNC),
32535C & IPURSN(MXRSNC), NURSNC, LURSNC
32536C COMMON /USRSCH/ TIURSN(MXRSNC)
32537C INCLUDE '(USRTRC)'
32538* USRTRC.ADD
32539**sr 18.5. commented since not used for evap.
32540C PARAMETER ( MXUSTC = 400 )
32541C LOGICAL LUSRTC, LUSTRK, LUSCLL, LLNUTC
32542C CHARACTER*10 TITUTC
32543C COMMON /USRTC/ ETCLOW(MXUSTC), ETCHGH(MXUSTC), DETCBN(MXUSTC),
32544C & VUSRTC(MXUSTC),
32545C & IUSTRK(MXUSTC), IUSCLL(MXUSTC), NETCBN(MXUSTC),
32546C & NRUSTC(MXUSTC), ITUSTC(MXUSTC), IDUSTC(MXUSTC),
32547C & KBUSTC(MXUSTC), IPUSTC(MXUSTC), IGMUTC(MXUSTC),
32548C & LLNUTC(MXUSTC), NUSRTC, NUSTRK, NUSCLL, LUSRTC,
32549C & LUSTRK, LUSCLL
32550C COMMON /USTCH/ TITUTC(MXUSTC)
32551**
32552C INCLUDE '(USRYLD)'
32553* USRYLD.ADD
32554**sr 18.5. commented since not used for evap.
32555C PARAMETER ( MXUSYL = 500 )
32556C LOGICAL LUSRYL, LLNUYL, LSCUYL
32557C CHARACTER*10 TITUYL
32558C COMMON /USRYL/ EYLLOW(MXUSYL), EYLHGH(MXUSYL), DEYLBN(MXUSYL),
32559C & USNRYL(MXUSYL), SGUSYL(MXUSYL), AYLLOW(MXUSYL),
32560C & AYLHGH(MXUSYL), PUSRYL, UUSRYL, VUSRYL, WUSRYL,
32561C & ETXUYL, ETYUYL, ETZUYL, GAMUYL, SQSUYL, UCMUYL,
32562C & VCMUYL, WCMUYL, IJUSYL, JTUSYL,
32563C & NEYLBN(MXUSYL), NR1UYL(MXUSYL), NR2UYL(MXUSYL),
32564C & IXUSYL(MXUSYL), ITUSYL(MXUSYL), IDUSYL(MXUSYL),
32565C & KBUSYL(MXUSYL), IPUSYL(MXUSYL), IGMUYL(MXUSYL),
32566C & IEUSYL(MXUSYL), IAUSYL(MXUSYL), LLNUYL(MXUSYL),
32567C & NUSRYL, LUSRYL, LSCUYL
32568C COMMON /USYCH/ TITUYL(MXUSYL)
32569**
32570C INCLUDE '(WWINDW)'
32571* WWINDW.ADD
32572**sr 18.5. commented since not used for evap.
32573C PARAMETER ( MXWWSP = 3 )
32574C PARAMETER ( WWSPMX = 50.D+00 )
32575C LOGICAL LWWNDW, LWWPRM
32576C COMMON / WWINDW / ETHWW1 (NALLWP), ETHWW2 (NALLWP),
32577C & WWEXWD (NALLWP), EXTWWN (NALLWP),
32578C & IWLBGN, IWHBGN, IWMBGN, LWWNDW, LWWPRM
32579**
32580
32581* /blnkcm/
32582* *** If blank common dimension has to be superseded substitute in the
32583* *** following two lines the new dimension in real*8 units to Nblnmx
32584**sr 18.5. commented since not used for evap.
32585C PARAMETER (MXDUMM = KALGNM * NBLNMX)
32586C DATA KTMBGN / NBLNMX /
32587C DATA MBLNMX / MXDUMM /
32588C DATA KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST, KISBGN, KISLST,
32589C & KDTBGN, KDTLST, KUBBGN, KUBLST, KUXBGN, KUXLST, KTCBGN,
32590C & KTCLST, KRNBGN, KRNLST, KYLBGN, KYLLST, KXSBGN, KXSLST,
32591C & KIHBGN, KIHLST, KINBGN, KINLST, KIEBGN, KIELST, KETBGN,
32592C & KETLST, KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32593C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST, KWLBGN,
32594C & KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST, KWSBGN, KWSLST,
32595C & KDPBGN, KDPLST, KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN,
32596C & KBRLST / 57*0 /
32597
32598* /blntmp/
32599**sr 18.5. commented since not used for evap.
32600C DATA KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM, KGDWTM,
32601C & KBDWTM, KGCBTM, KWLOTM, KWHITM, KWMUTM, KWSHTM, KEXTTM,
32602C & KSTXTM, KSTNTM, KECTTM, KPCTTM, KLPBTM / 19*0 /
32603
32604* /cmmdnr/
32605**sr 18.5. commented since not used for evap.
32606C DATA DDNEAR / 0.D+00 /, LFLDNR / .FALSE. /
32607
32608* /ctitle/
32609**sr 18.5. commented since not used for evap.
32610C DATA RUNTIT (1:40) / '****************************************' /
32611C DATA RUNTIT(41:80) / '****************************************' /
32612C DATA ITEXPI, ITEXMX / 100000000, 150 /
32613* /detect/
32614**sr 18.5. commented since not used for evap.
32615C PARAMETER (NNN1 = NRGNMX*NDTCMX)
32616C PARAMETER (NNN2 = NSCRMX*NDTCMX)
32617C DATA LDTCTR /.FALSE./, NDTSCO /0/, NDTDET /0/
32618C DATA EDTMIN/NDTCMX*0.D0/, EDTBIN/NDTCMX*0.D0/, EDTCUT/NDTCMX*0.D0/
32619C DATA KDTREG/NNN1*0/, KDTDET/NNN2*0/, KDTSCD/NSCRMX*0/
32620C DATA TITDET/NDTCMX*' '/, TITSCO/NSCRMX*' '/
32621
32622* /detloc/
32623**sr 18.5. commented since not used for evap.
32624C DATA ACCUMP /NDTCM2*0.D0/, ACCUMN /NDTCM2*0.D0/, ICOINC /NDTCM2*0/
32625C DATA NCLAS /0/
32626
32627* /emgtrn/
32628**sr 18.5. commented since not used for evap.
32629C DATA LMCSMG / .FALSE. /
32630
32631* /emsho/
32632**sr 18.5. commented since not used for evap.
32633C DATA LIMPRE, LEXPTE / 2 * .FALSE. /
32634
32635* /episor/
32636**sr 18.5. commented since not used for evap.
32637C DATA TKESUM / 0.D+00 /, LUSSRC / .FALSE. /
32638
32639* /fheavy/
32640 DATA AMHEAV / 12 * 0.D+00 /
32641 DATA ANHEAV / 'NEUTRON ', 'PROTON ', 'DEUTERON', '3-H ',
32642 & '3-He ', '4-He ', 'H-FRAG-1', 'H-FRAG-2',
32643 & 'H-FRAG-3', 'H-FRAG-4', 'H-FRAG-5', 'H-FRAG-6'/
32644 DATA ICHEAV / 0, 1, 1, 1, 2, 2, 6*0 /,
32645 & IBHEAV / 1, 1, 2, 3, 3, 4, 6*0 /
32646 DATA NPHEAV / 0 /
32647
32648* /finuc/
32649 DATA NP / 0 /, TV / 0.D+00 /, TVCMS / 0.D+00 /, TVRECL / 0.D+00/,
32650 & TVHEAV / 0.D+00 /, TVBIND / 0.D+00 /
32651
32652* /genthr/
32653* Up to 20-apr-'95
32654* DATA PEANCT, PEAPIT / 2*1.D+00 /
32655* DATA PTHRSH / 16*5.D+00,2*2.5D+00,5.D+00,3*2.5D+00,8*5.D+00,
32656* & 9*2.5D+00 /
32657* DATA PTHDFF / 39*5.D+00 /
32658* & 9*2.5D+00 /
32659* New values:
32660**sr 18.5. commented since not used for evap.
32661C DATA PEANCT, PEAPIT / 1.3D+00, 1.1D+00 /
32662C DATA PTHRSH / 12*5.D+00, 2*3.5D+00, 2*5.D+00, 2*2.5D+00, 5.D+00,
32663C & 3*2.5D+00, 3.5D+00, 2*5.D+00, 3.5D+00, 4*5.D+00,
32664C & 9*2.5D+00 /
32665C DATA PTHDFF / 12*5.D+00, 2*3.5D+00, 8*5.D+00, 3.5D+00, 2*5.D+00,
32666C & 3.5D+00, 13*5.D+00 /
32667C DATA PLDNCT / 0.26D+00 /
32668C DATA IJNUCR / 16*1, 2*0, 1, 3*0, 8*1, 9*0 /
32669
32670* /lowneu/
32671**sr 18.5. commented since not used for evap.
32672C DATA WWAMFL / 10.D+00 /, EXTWWL / 1.D+00 /
32673C DATA IWWLWB, IWWLWT / 2 * 100000000 /
32674C DATA ICLMED, INABGN, IDWBGN, IETBGN / 4*0 /
32675C DATA IGRTHN / 1 /
32676C DATA LIMPRN / .FALSE. /, LBIASN / .FALSE. /, LDOWNN / .FALSE. /,
32677C & LLOWWW / .FALSE. /, LLOWET / .FALSE. /
32678
32679* /ltclcm/
32680**sr 18.5. commented since not used for evap.
32681C DATA MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1 / 6*0 /
32682
32683* /mulbou/
32684**sr 18.5. commented since not used for evap.
32685C DATA LLDA, LAGAIN, LSTNEW, LARTEF, LSENSE, LNORML, LMGNOR
32686C & / 7 * .FALSE. /
32687C DATA TSENSE / AINFNT /, NSSENS / -1 /
32688C DATA DSMALL / ANGLGB /
32689
32690* /mulhd/
32691**sr 18.5. commented since not used for evap.
32692C DATA LTOPT / MXXMDF * .FALSE. /, NFSCAT / 0 /
32693C DATA ESTEPF / MXXMDF * 0.1D+00 /
32694C DATA LSRCRH / MXXMDF * .FALSE. /, LNSCRH / MXXMDF * .FALSE. /
32695C DATA THMSPR / 0.02D+00 /, THMSSC / 1.D+00 /
32696
32697* /parevt/
32698 DATA DPOWER /-13.D+00 /, FSPRD0 / 0.6D+00 /, FSHPFN / 0.0D+00 /,
32699 & RN1GSC /-1.0D+00 /, RN2GSC /-1.0D+00 /
32700 DATA LDIFFR / .TRUE., .TRUE., 6 * .TRUE., .TRUE., 8 * .TRUE.,
32701 & .TRUE., 4 * .TRUE., .TRUE., 3 * .TRUE.,
32702 & 4 * .FALSE., 9 * .TRUE./
32703**sr 17.5.95
32704* default value for LEVPRT changed (reset sr 25.7.97)
32705* default value for LHEAVY changed 25.7.97
32706C DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32707C & LHEAVY / .FALSE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32708C & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32709C & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32710 DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32711 & LHEAVY / .TRUE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32712 & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32713 & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32714**
32715**sr 27.5.97
32716* default value for ILVMOD changed
32717C DATA ILVMOD / 0 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32718 DATA ILVMOD / 1 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32719**
32720
32721* /resnuc/
32722 DATA IPREEH / 0 /, IPRTRI / 0 /, IPRDEU / 0 /, IPR3HE / 0 /,
32723 & IPR4HE / 0 /
32724 DATA IEVAPL / 0 /, IEVAPH / 0 /, IEVNEU / 0 /, IEVPRO / 0 /,
32725 & IEVTRI / 0 /, IEVDEU / 0 /, IEV3HE / 0 /, IEV4HE / 0 /,
32726 & IDEEXG / 0 /
32727 DATA LRNFSS / .FALSE. /
32728
32729* /scohlp/
32730**sr 18.5. commented since not used for evap.
32731C DATA ISCRNG, JSCRNG / 2*0 /, LSCZER / .FALSE. /
32732
32733* /trackr/
32734**sr 18.5. commented since not used for evap.
32735C DATA ETRACK /0.D+00/, WTRACK /0.D+00/, ATRACK /0.D+00/,
32736C & CTRACK /0.D+00/, NTRACK /0/, MTRACK /0/, JTRACK /0/
32737
32738* /usrbin/
32739**sr 18.5. commented since not used for evap.
32740C DATA LUSBIN, LUSEVT, LUSTKB /3*.FALSE./, NUSRBN /0/
32741
32742* /usrbdx/
32743**sr 18.5. commented since not used for evap.
32744C DATA LUSBDX /.FALSE./, NUSRBX /0/
32745
32746* /usrsnc/
32747**sr 18.5. commented since not used for evap.
32748C DATA LURSNC /.FALSE./, NURSNC /0/
32749
32750* /usrtrc/
32751**sr 18.5. commented since not used for evap.
32752C DATA LUSRTC, LUSTRK, LUSCLL / 3*.FALSE. /
32753C DATA NUSRTC, NUSTRK, NUSCLL / 3*0 /
32754
32755* /usryld/
32756**sr 18.5. commented since not used for evap.
32757C DATA LUSRYL / .FALSE./, LSCUYL / .FALSE. /, NUSRYL /0/,
32758C & IJUSYL /0/, JTUSYL /0/
32759C DATA PUSRYL, UUSRYL, VUSRYL, WUSRYL / 4*ZERZER /
32760
32761* /wwindw/
32762**sr 18.5. commented since not used for evap.
32763C DATA IWLBGN, IWHBGN, IWMBGN / 3*0 /
32764C DATA LWWPRM / .TRUE. /
32765
32766*= end*block.bdnopt *
32767 END
32768
32769*$ CREATE DT_BDPREE.FOR
32770*COPY DT_BDPREE
32771*
32772*=== bdpree ===========================================================*
32773*
32774 BLOCK DATA DT_BDPREE
32775
32776C INCLUDE '(DBLPRC)'
32777* DBLPRC.ADD
32778 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32779 SAVE
32780* (original name: GLOBAL)
32781 PARAMETER ( KALGNM = 2 )
32782 PARAMETER ( ANGLGB = 5.0D-16 )
32783 PARAMETER ( ANGLSQ = 2.5D-31 )
32784 PARAMETER ( AXCSSV = 0.2D+16 )
32785 PARAMETER ( ANDRFL = 1.0D-38 )
32786 PARAMETER ( AVRFLW = 1.0D+38 )
32787 PARAMETER ( AINFNT = 1.0D+30 )
32788 PARAMETER ( AZRZRZ = 1.0D-30 )
32789 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32790 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32791 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32792 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32793 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32794 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32795 PARAMETER ( CSNNRM = 2.0D-15 )
32796 PARAMETER ( DMXTRN = 1.0D+08 )
32797 PARAMETER ( ZERZER = 0.D+00 )
32798 PARAMETER ( ONEONE = 1.D+00 )
32799 PARAMETER ( TWOTWO = 2.D+00 )
32800 PARAMETER ( THRTHR = 3.D+00 )
32801 PARAMETER ( FOUFOU = 4.D+00 )
32802 PARAMETER ( FIVFIV = 5.D+00 )
32803 PARAMETER ( SIXSIX = 6.D+00 )
32804 PARAMETER ( SEVSEV = 7.D+00 )
32805 PARAMETER ( EIGEIG = 8.D+00 )
32806 PARAMETER ( ANINEN = 9.D+00 )
32807 PARAMETER ( TENTEN = 10.D+00 )
32808 PARAMETER ( HLFHLF = 0.5D+00 )
32809 PARAMETER ( ONETHI = ONEONE / THRTHR )
32810 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32811 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32812 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32813 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32814 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32815 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32816 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32817 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32818 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32819 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32820 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32821 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32822 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32823 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32824 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32825 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32826 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32827 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32828 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32829 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32830 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32831 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32832 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32833 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32834 PARAMETER ( BOLTZM = 1.380658 D-23 )
32835 PARAMETER ( AMELGR = 9.1093897 D-28 )
32836 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32837 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32838 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32839 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32840 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32841 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32842 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32843 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32844 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32845 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32846 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32847 PARAMETER ( PLABRC = 0.197327053 D+00 )
32848 PARAMETER ( AMELCT = 0.51099906 D-03 )
32849 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32850 PARAMETER ( AMMUON = 0.105658389 D+00 )
32851 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32852 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32853 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32854 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32855 & * 1.D-09 )
32856 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32857 PARAMETER ( BLTZMN = 8.617385 D-14 )
32858 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32859 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32860 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32861 PARAMETER ( SIN2TW = 0.2319 D+00 )
32862 PARAMETER ( GEVMEV = 1.0 D+03 )
32863 PARAMETER ( EMVGEV = 1.0 D-03 )
32864 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32865 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32866 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32867 LOGICAL LGBIAS, LGBANA
32868 COMMON /FKGLOB/ LGBIAS, LGBANA
32869C INCLUDE '(DIMPAR)'
32870* DIMPAR.ADD
32871 PARAMETER ( MXXRGN = 5000 )
32872 PARAMETER ( MXXMDF = 82 )
32873 PARAMETER ( MXXMDE = 54 )
32874 PARAMETER ( MFSTCK = 1000 )
32875 PARAMETER ( MESTCK = 100 )
32876 PARAMETER ( NALLWP = 39 )
32877 PARAMETER ( NELEMX = 80 )
32878 PARAMETER ( MPDPDX = 8 )
32879 PARAMETER ( ICOMAX = 180 )
32880 PARAMETER ( NSTBIS = 304 )
32881 PARAMETER ( IDMAXP = 220 )
32882 PARAMETER ( IDMXDC = 640 )
32883 PARAMETER ( MKBMX1 = 1 )
32884 PARAMETER ( MKBMX2 = 1 )
32885C INCLUDE '(IOUNIT)'
32886* IOUNIT.ADD
32887 PARAMETER ( LUNIN = 5 )
32888 PARAMETER ( LUNOUT = 6 )
32889**sr 19.5. set error output-unit from 15 to 6
32890 PARAMETER ( LUNERR = 6 )
32891 PARAMETER ( LUNBER = 14 )
32892 PARAMETER ( LUNECH = 8 )
32893 PARAMETER ( LUNFLU = 13 )
32894 PARAMETER ( LUNGEO = 16 )
32895 PARAMETER ( LUNPMF = 12 )
32896 PARAMETER ( LUNRAN = 2 )
32897 PARAMETER ( LUNXSC = 9 )
32898 PARAMETER ( LUNDET = 17 )
32899 PARAMETER ( LUNRAY = 10 )
32900 PARAMETER ( LUNRDB = 1 )
32901 PARAMETER ( LUNPGO = 7 )
32902 PARAMETER ( LUNPGS = 4 )
32903 PARAMETER ( LUNSCR = 3 )
32904*
32905*----------------------------------------------------------------------*
32906* *
32907* Created on 16 september 1991 by Alfredo Ferrari & Paola Sala *
32908* Infn - Milan *
32909* *
32910* Last change on 03-feb-94 by Alfredo Ferrari *
32911* *
32912* *
32913*----------------------------------------------------------------------*
32914*
32915* (original name: CMPISG,CHPISG)
32916 PARAMETER ( TPPPI0 = 0.279656044337515D+00 )
32917 PARAMETER ( TNNPI0 = 0.279642680857450D+00 )
32918 PARAMETER ( TPPPIP = 0.292295207182790D+00 )
32919 PARAMETER ( TPPDEP = 0.287514778898469D+00 )
32920 PARAMETER ( TNNPIM = 0.286723140900975D+00 )
32921 PARAMETER ( TNNDEM = 0.281949292916434D+00 )
32922 PARAMETER ( TPNPI0 = 0.279456888147740D+00 )
32923 PARAMETER ( TPNDE0 = 0.274693916135245D+00 )
32924 PARAMETER ( TPNPIP = 0.292086756473890D+00 )
32925 PARAMETER ( TNPPI0 = 0.279842093144975D+00 )
32926 PARAMETER ( TNPDE0 = 0.275072555824202D+00 )
32927 PARAMETER ( TNPPIP = 0.292489370554958D+00 )
32928 PARAMETER ( PIRSMX = 1.2D+00 )
32929 PARAMETER ( NPIREA = 10 )
32930 PARAMETER ( NPIRTA = 68 )
32931 PARAMETER ( NPIRLN = 21 )
32932 PARAMETER ( NPIRLG = NPIRTA - NPIRLN )
32933 PARAMETER ( NPISIS = NPIRLN + 20 )
32934 PARAMETER ( NPISEX = NPIRLN + 21 )
32935 PARAMETER ( NPIIMN = 14 )
32936 PARAMETER ( NPIIRC = 6 )
32937 PARAMETER ( DELWLL = 0.035D+00 )
32938 CHARACTER CHPIRE*8
32939 LOGICAL LDLRES
32940 COMMON /FKCMPI/ PMNPIS, PMMPIS, PISPIS, PEXPIS, PMXPIS, DPPISG,
32941 & RTPISG, AMNPIS, AMMPIS, AISPIS, AEXPIS, AMXPIS,
32942 & ARPISG, BPISLO (NPIRLN:NPIRTA,NPIREA),
32943 & CPISLO (NPIRLN:NPIRTA,NPIREA), PPITHR (NPIREA),
32944 & SPISLO (NPIRLN:NPIRTA,NPIREA), APITHR (NPIREA),
32945 & SGPIIN (NPIIMN:NPIRTA,NPIIRC), RHPICR (1:5) ,
32946 & SGPICU (0:20,NPIRTA,NPIREA) , SGRTRS (NPIREA),
32947 & SGPIDF (0:20,NPIRTA,NPIREA) , BRREIN (NPIREA),
32948 & SGPIIS (NPIRTA,NPIREA) , BRREOU (NPIREA),
32949 & BRD3OU (2,2,-1:2), BRDEOU (2,-1:2),
32950 & SGABSR (2,2,4) , PRRSDL,
32951 & IPIREA (2,2,3:5) , IPIINE (2,3:5) , NPIRVR ,
32952 & KPIIRE (2,NPIREA), KPIORE (2,NPIREA) ,
32953 & JSTOKP (5), KPTOJS (23), ITTRRS (3:5), LDLRES
32954 COMMON /FKCHPI/ CHPIRE (NPIREA)
32955 DIMENSION SG2BRS (2,2), SGABSW (2,2), SG3BRS (2,2,2)
32956 EQUIVALENCE ( SG2BRS (1,1), SGABSR (1,1,1) )
32957 EQUIVALENCE ( SGABSW (1,1), SGABSR (1,1,2) )
32958 EQUIVALENCE ( SG3BRS (1,1,1), SGABSR (1,1,3) )
32959* (original name: FRBKCM)
32960 PARAMETER ( MXFFBK = 6 )
32961 PARAMETER ( MXZFBK = 9 )
32962 PARAMETER ( MXNFBK = 10 )
32963 PARAMETER ( MXAFBK = 16 )
32964 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
32965 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
32966 PARAMETER ( NXAFBK = MXAFBK + 1 )
32967 PARAMETER ( MXPSST = 300 )
32968 PARAMETER ( MXPSFB = 41000 )
32969 LOGICAL LFRMBK, LNCMSS
32970 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
32971 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
32972 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
32973 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
32974 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
32975 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
32976 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
32977 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
32978 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
32979* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
32980 PARAMETER ( PI = PIPIPI )
32981 PARAMETER ( PISQ = PIPISQ )
32982 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
32983 PARAMETER ( RZNUCL = 1.12 D+00 )
32984 PARAMETER ( RMSPRO = 0.8 D+00 )
32985 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
32986 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
32987 & / R0PROT )
32988 PARAMETER ( RLLE04 = RZNUCL )
32989 PARAMETER ( RLLE16 = RZNUCL )
32990 PARAMETER ( RLGT16 = RZNUCL )
32991 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
32992 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
32993 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
32994 PARAMETER ( SKLE04 = 1.4D+00 )
32995 PARAMETER ( SKLE16 = 1.9D+00 )
32996 PARAMETER ( SKGT16 = 2.4D+00 )
32997 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
32998 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
32999 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
33000 PARAMETER ( ALPHA0 = 0.1D+00 )
33001 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
33002 PARAMETER ( GAMSK0 = 0.9D+00 )
33003 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
33004 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
33005 PARAMETER ( POTBA0 = 1.D+00 )
33006 PARAMETER ( PNFRAT = 1.533D+00 )
33007 PARAMETER ( RADPIM = 0.035D+00 )
33008 PARAMETER ( RDPMHL = 14.D+00 )
33009 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
33010 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
33011 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
33012 PARAMETER ( AP0PFS = 0.5D+00 )
33013 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
33014 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
33015 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
33016 PARAMETER ( MXSCIN = 50 )
33017 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
33018 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
33019 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
33020 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
33021 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
33022 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
33023 & PFRTAB (2:260)
33024 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
33025 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
33026 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
33027 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
33028 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
33029 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
33030 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
33031 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
33032 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
33033 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
33034 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
33035 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
33036 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
33037 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
33038 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
33039 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
33040 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
33041 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
33042 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
33043 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
33044 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
33045 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
33046 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
33047 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
33048 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
33049 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
33050 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
33051 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
33052 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
33053 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
33054 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
33055 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
33056 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
33057 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
33058 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
33059 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
33060 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
33061 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
33062 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
33063 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
33064 & LNCDCY, LNUSCT
33065 DIMENSION AWSTAB (2:260), SIGMAB (3)
33066 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
33067 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
33068 EQUIVALENCE ( RHOIPP, RHONCP (1) )
33069 EQUIVALENCE ( RHOINP, RHONCP (2) )
33070 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
33071 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
33072 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
33073 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
33074 EQUIVALENCE ( RHOIPT, RHONCT (1) )
33075 EQUIVALENCE ( RHOINT, RHONCT (2) )
33076 EQUIVALENCE ( OMALHL, SK3PAR )
33077 EQUIVALENCE ( ALPHAL, HABPAR )
33078 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
33079 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
33080 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
33081 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
33082 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
33083 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
33084 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
33085 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
33086 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
33087 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
33088 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
33089 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
33090 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
33091* (original name: NUCLEV)
33092 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
33093 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
33094 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
33095 & CUMRAD (0:160,2), RUSNUC (2),
33096 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
33097 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
33098 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
33099 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
33100 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
33101 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
33102 & LFLVSL, LRLVSL, LEQSBL
33103 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
33104 & MGSSPR (19) , MGSSNE (25)
33105 EQUIVALENCE ( RUSNUC (1), RUSPRO )
33106 EQUIVALENCE ( RUSNUC (2), RUSNEU )
33107 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
33108 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
33109 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
33110 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
33111 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
33112 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
33113 EQUIVALENCE ( NTANUC (1), NTAPRO )
33114 EQUIVALENCE ( NTANUC (2), NTANEU )
33115 EQUIVALENCE ( NAVNUC (1), NAVPRO )
33116 EQUIVALENCE ( NAVNUC (2), NAVNEU )
33117 EQUIVALENCE ( NLSNUC (1), NLSPRO )
33118 EQUIVALENCE ( NLSNUC (2), NLSNEU )
33119 EQUIVALENCE ( NCONUC (1), NCOPRO )
33120 EQUIVALENCE ( NCONUC (2), NCONEU )
33121 EQUIVALENCE ( NSKNUC (1), NSKPRO )
33122 EQUIVALENCE ( NSKNUC (2), NSKNEU )
33123 EQUIVALENCE ( NHANUC (1), NHAPRO )
33124 EQUIVALENCE ( NHANUC (2), NHANEU )
33125 EQUIVALENCE ( NUSNUC (1), NUSPRO )
33126 EQUIVALENCE ( NUSNUC (2), NUSNEU )
33127 EQUIVALENCE ( NACNUC (1), NACPRO )
33128 EQUIVALENCE ( NACNUC (2), NACNEU )
33129 EQUIVALENCE ( JMXNUC (1), JMXPRO )
33130 EQUIVALENCE ( JMXNUC (2), JMXNEU )
33131 EQUIVALENCE ( MAGNUC (1), MAGPRO )
33132 EQUIVALENCE ( MAGNUC (2), MAGNEU )
33133* (original name: PARNUC)
33134 PARAMETER ( PIGRK = PIPIPI )
33135 PARAMETER ( ALEVEL = 8.D-03 )
33136 PARAMETER ( RCNUCL = 1.12D+00 )
33137 PARAMETER ( R0SIG = 1.3D+00 )
33138 PARAMETER ( R0SIGK = 1.5D+00 )
33139 PARAMETER ( RCOULB = 1.5D+00 )
33140 PARAMETER ( COULBH = 0.88235D-03 )
33141 PARAMETER ( RHONU0 = 0.75D+00 / PIGRK / RCNUCL / RCNUCL / RCNUCL )
33142 PARAMETER ( TAUFO0 = 10.0D+00 )
33143 PARAMETER ( EKEEXP = 0.03D+00 )
33144 PARAMETER ( EKREXP = 0.05D+00 )
33145 PARAMETER ( EKEMNM = 0.01D+00 )
33146 PARAMETER ( NCPMX = 120 )
33147 COMMON /FKPARN/ EKORI , PXORI , PYORI , PZORI , PTORI , TAUFOR,
33148 & ENNUC (NCPMX), PNUCL (NCPMX), EKFNUC (NCPMX),
33149 & XSTNUC (NCPMX), YSTNUC (NCPMX), ZSTNUC (NCPMX),
33150 & PXNUCL (NCPMX), PYNUCL (NCPMX), PZNUCL (NCPMX),
33151 & RSTNUC (NCPMX), FREEPA (NCPMX), CRRPAN (NCPMX),
33152 & CRRPAP (NCPMX), BSTNUC (NCPMX), AGENUC (NCPMX),
33153 & TAUFPA (NCPMX), RHNUCL(NCPMX,2), BNDGAV, DEFMIN,
33154 & KPNUCL (NCPMX), KRFNUC (NCPMX), ILINUC (NCPMX),
33155 & INUCTS (NCPMX), ISFNUC (NCPMX), KPORI , IBORI ,
33156 & IBNUCL, NPNUC , NNUCTS
33157*
33158 DATA LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH / 6*.FALSE. /
33159 DATA POTBAR / POTBA0 /, POTMES / POTME0 /, WLLRES / 0.D+00 /
33160 DATA JUSNUC / 320 * 0 /, INUCLV / 1 /, IEVPRE / 0 /
33161 DATA MAGNUM / 2, 8, 20, 28, 50, 82, 126, 160 /
33162 DATA LPREEQ / .FALSE. /
33163* /cmpisg/
33164 DATA JSTOKP / 1, 8, 13, 14, 23 /
33165 DATA KPTOJS / 1, 6*0, 2, 4*0, 3, 4, 8*0, 5 /
33166 DATA CHPIRE / 'PI+PPI+P','PI-PPI-P','PI-PPI0N','PI0PPI0P',
33167 & 'PI0PPI+N','PI-NPI-N','PI+NPI+N','PI+NPI0P',
33168 & 'PI0NPI0N','PI0NPI-P' /
33169 DATA KPIIRE / 13, 1, 14, 1, 14, 1, 23, 1, 23, 1, 14, 8,
33170 & 13, 8, 13, 8, 23, 8, 23, 8 /
33171 DATA KPIORE / 13, 1, 14, 1, 23, 8, 23, 1, 13, 8, 14, 8,
33172 & 13, 8, 23, 1, 23, 8, 14, 1 /
33173 DATA IPIREA / 1, 0, 7, 8, 2, 3, 6, 0, 4, 5, 9, 10 /
33174 DATA IPIINE / 1, 2, 3, 4, 5, 6 /
33175* /frbkcm/
33176 DATA LFRMBK / .FALSE. /
33177 DATA NBUFBK / 500 /
33178 DATA EXMXFB / 80.0 D+00 /
33179 DATA R0FRBK / 1.18 D+00 /
33180 DATA R0CFBK / 2.173D+00 /
33181 DATA C1CFBK / 6.103D-03 /
33182 DATA C2CFBK / 9.443D-03 /
33183* /parnuc/
33184 DATA TAUFOR / TAUFO0 /
33185*=== End of Block Data Bdpree =========================================*
33186 END
33187
33188*$ CREATE DT_XHOINI.FOR
33189*COPY DT_XHOINI
33190*
33191*====phoini============================================================*
33192*
33193 SUBROUTINE DT_XHOINI
33194C SUBROUTINE DT_PHOINI
33195
33196 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33197 SAVE
33198 PARAMETER ( LINP = 10 ,
33199 & LOUT = 6 ,
33200 & LDAT = 9 )
33201
33202 RETURN
33203 END
33204
33205*$ CREATE DT_XVENTB.FOR
33206*COPY DT_XVENTB
33207*
33208*====eventb============================================================*
33209*
33210 SUBROUTINE DT_XVENTB(NCSY,IREJ)
33211C SUBROUTINE DT_EVENTB(NCSY,IREJ)
33212
33213 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33214 SAVE
33215 PARAMETER ( LINP = 10 ,
33216 & LOUT = 6 ,
33217 & LDAT = 9 )
33218
33219 WRITE(LOUT,1000)
33220 1000 FORMAT(1X,'EVENTB: PHOJET-package requested but not linked!')
33221 STOP
33222
33223 END
33224
33225*$ CREATE DT_XVENT.FOR
33226*COPY DT_XVENT
33227*
33228*===event==============================================================*
33229*
33230 SUBROUTINE DT_XVENT(IDUM,PP,PT,DUM,IREJ)
33231C SUBROUTINE EVENT(IDUM,PP,PT,DUM,IREJ)
33232
33233 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33234 SAVE
33235
33236 DIMENSION PP(4),PT(4)
33237
33238 RETURN
33239 END
33240
33241*$ CREATE DT_XOHISX.FOR
33242*COPY DT_XOHISX
33243*
33244*===pohisx=============================================================*
33245*
33246 SUBROUTINE DT_XOHISX(I,X)
33247C SUBROUTINE POHISX(I,X)
33248
33249 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33250 SAVE
33251
33252 RETURN
33253 END
33254
33255*$ CREATE PHO_LHIST.FOR
33256*COPY PHO_LHIST
33257*
33258*===poluhi=============================================================*
33259*
33260 SUBROUTINE PHO_LHIST(I,X)
33261**
33262
33263 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33264 SAVE
33265
33266 RETURN
33267 END
33268
33269*$ CREATE PDFSET.FOR
33270*COPY PDFSET
33271*
33272C**********************************************************************
33273C
33274C dummy subroutines, remove to link PDFLIB
33275C
33276C**********************************************************************
33277 SUBROUTINE PDFSET(PARAM,VALUE)
33278 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33279 DIMENSION PARAM(20),VALUE(20)
33280 CHARACTER*20 PARAM
33281 END
33282
33283*$ CREATE STRUCTM.FOR
33284*COPY STRUCTM
33285*
33286 SUBROUTINE STRUCTM(XI,SCALE2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33287 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33288 END
33289
33290*$ CREATE STRUCTP.FOR
33291*COPY STRUCTP
33292*
33293 SUBROUTINE STRUCTP(XI,SCALE2,P2,IP2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33294 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33295 END
33296
33297*$ CREATE DT_DIQBRK.FOR
33298*COPY DT_DIQBRK
33299*
33300*===diqbrk=============================================================*
33301*
33302 SUBROUTINE DT_XIQBRK
33303C SUBROUTINE DT_DIQBRK
33304
33305 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33306 SAVE
33307
33308 STOP 'diquark-breaking not implemeted !'
33309
33310 RETURN
33311 END
33312
33313*$ CREATE DT_ELHAIN.FOR
33314*COPY DT_ELHAIN
33315*
33316*===elhain=============================================================*
33317*
33318 SUBROUTINE DT_ELHAIN(IP,PLA,ELAB,CX,CY,CZ,IT,IREJ)
33319
33320************************************************************************
33321* Elastic hadron-hadron scattering. *
33322* This is a revised version of the original. *
33323* This version dated 03.04.98 is written by S. Roesler *
33324************************************************************************
33325
33326 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33327 SAVE
33328 PARAMETER ( LINP = 10 ,
33329 & LOUT = 6 ,
33330 & LDAT = 9 )
33331 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33332 & TINY10=1.0D-10)
33333
33334 PARAMETER (ENNTHR = 3.5D0)
33335 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0,
33336 & BLOWB=0.05D0,BHIB=0.2D0,
33337 & BLOWM=0.1D0, BHIM=2.0D0)
33338
33339* particle properties (BAMJET index convention)
33340 CHARACTER*8 ANAME
33341 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33342 & IICH(210),IIBAR(210),K1(210),K2(210)
33343* final state from HADRIN interaction
33344 PARAMETER (MAXFIN=10)
33345 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33346 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33347
33348C DATA TSLOPE /10.0D0/
33349
33350 IREJ = 0
33351
33352 1 CONTINUE
33353
33354 PLAB = SQRT( (ELAB-AAM(IP))*(ELAB+AAM(IP)) )
33355 EKIN = ELAB-AAM(IP)
33356* kinematical quantities in cms of the hadrons
33357 AMP2 = AAM(IP)**2
33358 AMT2 = AAM(IT)**2
33359 S = AMP2+AMT2+TWO*ELAB*AAM(IT)
33360 ECM = SQRT(S)
33361 ECMP = OHALF*ECM+(AMP2-AMT2)/(TWO*ECM)
33362 PCM = SQRT( (ECMP-AAM(IP))*(ECMP+AAM(IP)) )
33363
33364* nucleon-nucleon scattering at E_kin<3.5: use DT_TSAMCS(HETC-KFA)
33365 IF ( ((IP.EQ.1).OR.(IP.EQ.8)).AND.
33366 & ((IT.EQ.1).OR.(IT.EQ.8)).AND.(EKIN.LT.ENNTHR) ) THEN
33367* TSAMCS treats pp and np only, therefore change pn into np and
33368* nn into pp
33369 IF (IT.EQ.1) THEN
33370 KPROJ = IP
33371 ELSE
33372 KPROJ = 8
33373 IF (IP.EQ.8) KPROJ = 1
33374 ENDIF
33375 CALL DT_TSAMCS(KPROJ,EKIN,CTCMS)
33376 T = TWO*PCM**2*(CTCMS-ONE)
33377
33378* very crude treatment otherwise: sample t from exponential dist.
33379 ELSE
33380* momentum transfer t
33381 TMAX = TWO*TWO*PCM**2
33382 RR = (PLAB-PLOWH)/(PHIH-PLOWH)
33383 IF (IIBAR(IP).NE.0) THEN
33384 TSLOPE = BLOWB+RR*(BHIB-BLOWB)
33385 ELSE
33386 TSLOPE = BLOWM+RR*(BHIM-BLOWM)
33387 ENDIF
33388 FMAX = EXP(-TSLOPE*TMAX)-ONE
33389 R = DT_RNDM(RR)
33390 T = LOG(ONE+R*FMAX+TINY10)/TSLOPE
33391 IF (T.GT.ZERO) T = LOG(ONE+R*FMAX)/TSLOPE
33392 ENDIF
33393
33394* target hadron in Lab after scattering
33395 ELRH(2) = (TWO*AMT2-T)/(TWO*AAM(IT))
33396 PLRH(2) = SQRT( ABS(ELRH(2)-AAM(IT))*(ELRH(2)+AAM(IT)) )
33397 IF (PLRH(2).LE.TINY10) THEN
33398C WRITE(*,*)'ELHAIN: T,PLRH(2) ',T,PLRH(2)
33399 GOTO 1
33400 ENDIF
33401* projectile hadron in Lab after scattering
33402 ELRH(1) = ELAB+AAM(IT)-ELRH(2)
33403 PLRH(1) = SQRT( ABS(ELRH(1)-AAM(IP))*(ELRH(1)+AAM(IP)) )
33404* scattering angle of projectile in Lab
33405 CTLABP = (T-TWO*AMP2+TWO*ELAB*ELRH(1))/(TWO*PLAB*PLRH(1))
33406 STLABP = SQRT( (ONE-CTLABP)*(ONE+CTLABP) )
33407 CALL DT_DSFECF(SPLABP,CPLABP)
33408* direction cosines of projectile in Lab
33409 CALL DT_STTRAN(CX,CY,CZ,CTLABP,STLABP,SPLABP,CPLABP,
33410 & CXRH(1),CYRH(1),CZRH(1))
33411* scattering angle of target in Lab
33412 PLLABT = PLAB-CTLABP*PLRH(1)
33413 CTLABT = PLLABT/PLRH(2)
33414 STLABT = SQRT( (ONE-CTLABT)*(ONE+CTLABT) )
33415* direction cosines of target in Lab
33416 CALL DT_STTRAN(CX,CY,CZ,CTLABT,STLABT,-SPLABP,-CPLABP,
33417 & CXRH(2),CYRH(2),CZRH(2))
33418* fill /HNFSPA/
33419 IRH = 2
33420 ITRH(1) = IP
33421 ITRH(2) = IT
33422
33423 RETURN
33424 END
33425
33426*$ CREATE DT_TSAMCS.FOR
33427*COPY DT_TSAMCS
33428*
33429*===tsamcs=============================================================*
33430*
33431 SUBROUTINE DT_TSAMCS(KPROJ,EKIN,CST)
33432
33433************************************************************************
33434* Sampling of cos(theta) for nucleon-proton scattering according to *
33435* hetkfa2/bertini parametrization. *
33436* This is a revised version of the original (HJM 24/10/88) *
33437* This version dated 28.10.95 is written by S. Roesler *
33438************************************************************************
33439
33440 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33441 SAVE
33442 PARAMETER ( LINP = 10 ,
33443 & LOUT = 6 ,
33444 & LDAT = 9 )
33445 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33446 & TINY10=1.0D-10)
33447
33448 DIMENSION DCLIN(195),DCHN(143),DCHNA(36),DCHNB(60)
33449 DIMENSION PDCI(60),PDCH(55)
33450
33451 DATA (DCLIN(I),I=1,80) /
33452 & 5.000D-01, 1.000D+00, 0.000D+00, 1.000D+00, 0.000D+00,
33453 & 4.993D-01, 9.881D-01, 5.963D-02, 9.851D-01, 5.945D-02,
33454 & 4.936D-01, 8.955D-01, 5.224D-01, 8.727D-01, 5.091D-01,
33455 & 4.889D-01, 8.228D-01, 8.859D-01, 7.871D-01, 8.518D-01,
33456 & 4.874D-01, 7.580D-01, 1.210D+00, 7.207D-01, 1.117D+00,
33457 & 4.912D-01, 6.969D-01, 1.516D+00, 6.728D-01, 1.309D+00,
33458 & 5.075D-01, 6.471D-01, 1.765D+00, 6.667D-01, 1.333D+00,
33459 & 5.383D-01, 6.054D-01, 1.973D+00, 7.059D-01, 1.176D+00,
33460 & 5.397D-01, 5.990D-01, 2.005D+00, 7.023D-01, 1.191D+00,
33461 & 5.336D-01, 6.083D-01, 1.958D+00, 6.959D-01, 1.216D+00,
33462 & 5.317D-01, 6.075D-01, 1.962D+00, 6.897D-01, 1.241D+00,
33463 & 5.300D-01, 6.016D-01, 1.992D+00, 6.786D-01, 1.286D+00,
33464 & 5.281D-01, 6.063D-01, 1.969D+00, 6.786D-01, 1.286D+00,
33465 & 5.280D-01, 5.960D-01, 2.020D+00, 6.667D-01, 1.333D+00,
33466 & 5.273D-01, 5.920D-01, 2.040D+00, 6.604D-01, 1.358D+00,
33467 & 5.273D-01, 5.862D-01, 2.069D+00, 6.538D-01, 1.385D+00/
33468 DATA (DCLIN(I),I=81,160) /
33469 & 5.223D-01, 5.980D-01, 2.814D+00, 6.538D-01, 1.385D+00,
33470 & 5.202D-01, 5.969D-01, 2.822D+00, 6.471D-01, 1.412D+00,
33471 & 5.183D-01, 5.881D-01, 2.883D+00, 6.327D-01, 1.469D+00,
33472 & 5.159D-01, 5.866D-01, 2.894D+00, 6.250D-01, 1.500D+00,
33473 & 5.133D-01, 5.850D-01, 2.905D+00, 6.170D-01, 1.532D+00,
33474 & 5.106D-01, 5.833D-01, 2.917D+00, 6.087D-01, 1.565D+00,
33475 & 5.084D-01, 5.801D-01, 2.939D+00, 6.000D-01, 1.600D+00,
33476 & 5.063D-01, 5.763D-01, 2.966D+00, 5.909D-01, 1.636D+00,
33477 & 5.036D-01, 5.730D-01, 2.989D+00, 5.814D-01, 1.674D+00,
33478 & 5.014D-01, 5.683D-01, 3.022D+00, 5.714D-01, 1.714D+00,
33479 & 4.986D-01, 5.641D-01, 3.051D+00, 5.610D-01, 1.756D+00,
33480 & 4.964D-01, 5.580D-01, 3.094D+00, 5.500D-01, 1.800D+00,
33481 & 4.936D-01, 5.573D-01, 3.099D+00, 5.431D-01, 1.827D+00,
33482 & 4.909D-01, 5.509D-01, 3.144D+00, 5.313D-01, 1.875D+00,
33483 & 4.885D-01, 5.512D-01, 3.142D+00, 5.263D-01, 1.895D+00,
33484 & 4.857D-01, 5.437D-01, 3.194D+00, 5.135D-01, 1.946D+00/
33485 DATA (DCLIN(I),I=161,195) /
33486 & 4.830D-01, 5.353D-01, 3.253D+00, 5.000D-01, 2.000D+00,
33487 & 4.801D-01, 5.323D-01, 3.274D+00, 4.915D-01, 2.034D+00,
33488 & 4.770D-01, 5.228D-01, 3.341D+00, 4.767D-01, 2.093D+00,
33489 & 4.738D-01, 5.156D-01, 3.391D+00, 4.643D-01, 2.143D+00,
33490 & 4.701D-01, 5.010D-01, 3.493D+00, 4.444D-01, 2.222D+00,
33491 & 4.672D-01, 4.990D-01, 3.507D+00, 4.375D-01, 2.250D+00,
33492 & 4.634D-01, 4.856D-01, 3.601D+00, 4.194D-01, 2.323D+00/
33493
33494 DATA PDCI /
33495 & 4.400D+02, 1.896D-01, 1.931D-01, 1.982D-01, 1.015D-01,
33496 & 1.029D-01, 4.180D-02, 4.228D-02, 4.282D-02, 4.350D-02,
33497 & 2.204D-02, 2.236D-02, 5.900D+02, 1.433D-01, 1.555D-01,
33498 & 1.774D-01, 1.000D-01, 1.128D-01, 5.132D-02, 5.600D-02,
33499 & 6.158D-02, 6.796D-02, 3.660D-02, 3.820D-02, 6.500D+02,
33500 & 1.192D-01, 1.334D-01, 1.620D-01, 9.527D-02, 1.141D-01,
33501 & 5.283D-02, 5.952D-02, 6.765D-02, 7.878D-02, 4.796D-02,
33502 & 6.957D-02, 8.000D+02, 4.872D-02, 6.694D-02, 1.152D-01,
33503 & 9.348D-02, 1.368D-01, 6.912D-02, 7.953D-02, 9.577D-02,
33504 & 1.222D-01, 7.755D-02, 9.525D-02, 1.000D+03, 3.997D-02,
33505 & 5.456D-02, 9.804D-02, 8.084D-02, 1.208D-01, 6.520D-02,
33506 & 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02, 1.093D-01/
33507
33508 DATA PDCH /
33509 & 1.000D+03, 9.453D-02, 9.804D-02, 8.084D-02, 1.208D-01,
33510 & 6.520D-02, 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02,
33511 & 1.093D-01, 1.400D+03, 1.072D-01, 7.450D-02, 6.645D-02,
33512 & 1.136D-01, 6.750D-02, 8.580D-02, 1.110D-01, 1.530D-01,
33513 & 1.010D-01, 1.350D-01, 2.170D+03, 4.004D-02, 3.013D-02,
33514 & 2.664D-02, 5.511D-02, 4.240D-02, 7.660D-02, 1.364D-01,
33515 & 2.300D-01, 1.670D-01, 2.010D-01, 2.900D+03, 1.870D-02,
33516 & 1.804D-02, 1.320D-02, 2.970D-02, 2.860D-02, 5.160D-02,
33517 & 1.020D-01, 2.400D-01, 2.250D-01, 3.370D-01, 4.400D+03,
33518 & 1.196D-03, 8.784D-03, 1.517D-02, 2.874D-02, 2.488D-02,
33519 & 4.464D-02, 8.330D-02, 2.008D-01, 2.360D-01, 3.567D-01/
33520
33521 DATA (DCHN(I),I=1,90) /
33522 & 4.770D-01, 4.750D-01, 4.715D-01, 4.685D-01, 4.650D-01,
33523 & 4.610D-01, 4.570D-01, 4.550D-01, 4.500D-01, 4.450D-01,
33524 & 4.405D-01, 4.350D-01, 4.300D-01, 4.250D-01, 4.200D-01,
33525 & 4.130D-01, 4.060D-01, 4.000D-01, 3.915D-01, 3.840D-01,
33526 & 3.760D-01, 3.675D-01, 3.580D-01, 3.500D-01, 3.400D-01,
33527 & 3.300D-01, 3.200D-01, 3.100D-01, 3.000D-01, 2.900D-01,
33528 & 2.800D-01, 2.700D-01, 2.600D-01, 2.500D-01, 2.400D-01,
33529 & 2.315D-01, 2.240D-01, 2.150D-01, 2.060D-01, 2.000D-01,
33530 & 1.915D-01, 1.850D-01, 1.780D-01, 1.720D-01, 1.660D-01,
33531 & 1.600D-01, 1.550D-01, 1.500D-01, 1.450D-01, 1.400D-01,
33532 & 1.360D-01, 1.320D-01, 1.280D-01, 1.250D-01, 1.210D-01,
33533 & 1.180D-01, 1.150D-01, 1.120D-01, 1.100D-01, 1.070D-01,
33534 & 1.050D-01, 1.030D-01, 1.010D-01, 9.900D-02, 9.700D-02,
33535 & 9.550D-02, 9.480D-02, 9.400D-02, 9.200D-02, 9.150D-02,
33536 & 9.100D-02, 9.000D-02, 8.990D-02, 8.900D-02, 8.850D-02,
33537 & 8.750D-02, 8.700D-02, 8.650D-02, 8.550D-02, 8.500D-02,
33538 & 8.499D-02, 8.450D-02, 8.350D-02, 8.300D-02, 8.250D-02,
33539 & 8.150D-02, 8.100D-02, 8.030D-02, 8.000D-02, 7.990D-02/
33540 DATA (DCHN(I),I=91,143) /
33541 & 7.980D-02, 7.950D-02, 7.900D-02, 7.860D-02, 7.800D-02,
33542 & 7.750D-02, 7.650D-02, 7.620D-02, 7.600D-02, 7.550D-02,
33543 & 7.530D-02, 7.500D-02, 7.499D-02, 7.498D-02, 7.480D-02,
33544 & 7.450D-02, 7.400D-02, 7.350D-02, 7.300D-02, 7.250D-02,
33545 & 7.230D-02, 7.200D-02, 7.100D-02, 7.050D-02, 7.020D-02,
33546 & 7.000D-02, 6.999D-02, 6.995D-02, 6.993D-02, 6.991D-02,
33547 & 6.990D-02, 6.870D-02, 6.850D-02, 6.800D-02, 6.780D-02,
33548 & 6.750D-02, 6.700D-02, 6.650D-02, 6.630D-02, 6.600D-02,
33549 & 6.550D-02, 6.525D-02, 6.510D-02, 6.500D-02, 6.499D-02,
33550 & 6.498D-02, 6.496D-02, 6.494D-02, 6.493D-02, 6.490D-02,
33551 & 6.488D-02, 6.485D-02, 6.480D-02/
33552
33553 DATA DCHNA /
33554 & 6.300D+02, 7.810D-02, 1.421D-01, 1.979D-01, 2.479D-01,
33555 & 3.360D-01, 5.400D-01, 7.236D-01, 1.000D+00, 1.540D+03,
33556 & 2.225D-01, 3.950D-01, 5.279D-01, 6.298D-01, 7.718D-01,
33557 & 9.405D-01, 9.835D-01, 1.000D+00, 2.560D+03, 2.625D-01,
33558 & 4.550D-01, 5.963D-01, 7.020D-01, 8.380D-01, 9.603D-01,
33559 & 9.903D-01, 1.000D+00, 3.520D+03, 4.250D-01, 6.875D-01,
33560 & 8.363D-01, 9.163D-01, 9.828D-01, 1.000D+00, 1.000D+00,
33561 & 1.000D+00/
33562
33563 DATA DCHNB /
33564 & 6.300D+02, 3.800D-02, 7.164D-02, 1.275D-01, 2.171D-01,
33565 & 3.227D-01, 4.091D-01, 5.051D-01, 6.061D-01, 7.074D-01,
33566 & 8.434D-01, 1.000D+00, 2.040D+03, 1.200D-01, 2.115D-01,
33567 & 3.395D-01, 5.295D-01, 7.251D-01, 8.511D-01, 9.487D-01,
33568 & 9.987D-01, 1.000D+00, 1.000D+00, 1.000D+00, 2.200D+03,
33569 & 1.344D-01, 2.324D-01, 3.754D-01, 5.674D-01, 7.624D-01,
33570 & 8.896D-01, 9.808D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33571 & 1.000D+00, 2.850D+03, 2.330D-01, 4.130D-01, 6.610D-01,
33572 & 9.010D-01, 9.970D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33573 & 1.000D+00, 1.000D+00, 1.000D+00, 3.500D+03, 3.300D-01,
33574 & 5.450D-01, 7.950D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33575 & 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00/
33576
33577 CST = ONE
33578 IF (EKIN.GT.3.5D0) RETURN
33579C
33580 IF(KPROJ.EQ.8) GOTO 101
33581 IF(KPROJ.EQ.1) GOTO 102
33582C* INVALID REACTION
33583 WRITE(LOUT,'(A,I5/A)')
33584 & ' INVALID PARTICLE TYPE IN DNUPRE - KPROJ=',KPROJ,
33585 & ' COS(THETA) = 1D0 RETURNED'
33586 RETURN
33587C-------------------------------- NP ELASTIC SCATTERING----------
33588101 CONTINUE
33589 IF (EKIN.GT.0.740D0)GOTO 1000
33590 IF (EKIN.LT.0.300D0)THEN
33591C EKIN .LT. 300 MEV
33592 IDAT=1
33593 ELSE
33594C 300 MEV < EKIN < 740 MEV
33595 IDAT=6
33596 END IF
33597C
33598 ENER=EKIN
33599 IE=INT(ABS(ENER/0.020D0))
33600 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33601C FORWARD/BACKWARD DECISION
33602 K=IDAT+5*IE
33603 BWFW=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33604 IF (DT_RNDM(CST).LT.BWFW)THEN
33605 VALUE2=-1D0
33606 K=K+1
33607 ELSE
33608 VALUE2=1D0
33609 K=K+3
33610 END IF
33611C
33612 COEF=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33613 RND=DT_RNDM(COEF)
33614C
33615 IF(RND.LT.COEF)THEN
33616 CST=DT_RNDM(RND)
33617 CST=CST*VALUE2
33618 ELSE
33619 R1=DT_RNDM(CST)
33620 R2=DT_RNDM(R1)
33621 R3=DT_RNDM(R2)
33622 R4=DT_RNDM(R3)
33623C
33624 IF(VALUE2.GT.0.0)THEN
33625 CST=MAX(R1,R2,R3,R4)
33626 GOTO 1500
33627 ELSE
33628 R5=DT_RNDM(R4)
33629C
33630 IF (IDAT.EQ.1)THEN
33631 CST=-MAX(R1,R2,R3,R4,R5)
33632 ELSE
33633 R6=DT_RNDM(R5)
33634 R7=DT_RNDM(R6)
33635 CST=-MAX(R1,R2,R3,R4,R5,R6,R7)
33636 END IF
33637C
33638 END IF
33639C
33640 END IF
33641C
33642 GOTO 1500
33643C
33644C******** EKIN .GT. 0.74 GEV
33645C
336461000 ENER=EKIN - 0.66D0
33647C IE=ABS(ENER/0.02)
33648 IE=INT(ENER/0.02D0)
33649 EMEV=EKIN*1D3
33650C
33651 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33652 K=IE
33653 BWFW=(DCHN(K+1)-DCHN(K))*UNIV + DCHN(K)
33654 RND=DT_RNDM(BWFW)
33655C FORWARD NEUTRON
33656 IF (RND.GE.BWFW)THEN
33657 DO 1200 K=10,36,9
33658 IF (DCHNA(K).GT.EMEV) THEN
33659 UNIVE=(EMEV-DCHNA(K-9))/(DCHNA(K)-DCHNA(K-9))
33660 UNIV=DT_RNDM(UNIVE)
33661 DO 1100 I=1,8
33662 II=K+I
33663 P=(DCHNA(II)-DCHNA(II-9))*UNIVE + DCHNA(II-9)
33664C
33665 IF (P.GT.UNIV)THEN
33666 UNIV=DT_RNDM(UNIVE)
33667 FLTI=DBLE(I)-UNIV
33668 GOTO(290,290,290,290,330,340,350,360) I
33669 END IF
33670 1100 CONTINUE
33671 END IF
33672 1200 CONTINUE
33673C
33674 ELSE
33675C BACKWARD NEUTRON
33676 DO 1400 K=13,60,12
33677 IF (DCHNB(K).GT.EMEV) THEN
33678 UNIVE=(EMEV-DCHNB(K-12))/(DCHNB(K)-DCHNB(K-12))
33679 UNIV=DT_RNDM(UNIVE)
33680 DO 1300 I=1,11
33681 II=K+I
33682 P=(DCHNB(II)-DCHNB(II-12))*UNIVE + DCHNB(II-12)
33683C
33684 IF (P.GT.UNIV)THEN
33685 UNIV=DT_RNDM(P)
33686 FLTI=DBLE(I)-UNIV
33687 GOTO(120,120,140,150,160,160,180,190,200,210,220) I
33688 END IF
33689 1300 CONTINUE
33690 END IF
33691 1400 CONTINUE
33692 END IF
33693C
33694120 CST=1.0D-2*FLTI-1.0D0
33695 GOTO 1500
33696140 CST=2.0D-2*UNIV-0.98D0
33697 GOTO 1500
33698150 CST=4.0D-2*UNIV-0.96D0
33699 GOTO 1500
33700160 CST=6.0D-2*FLTI-1.16D0
33701 GOTO 1500
33702180 CST=8.0D-2*UNIV-0.80D0
33703 GOTO 1500
33704190 CST=1.0D-1*UNIV-0.72D0
33705 GOTO 1500
33706200 CST=1.2D-1*UNIV-0.62D0
33707 GOTO 1500
33708210 CST=2.0D-1*UNIV-0.50D0
33709 GOTO 1500
33710220 CST=3.0D-1*(UNIV-1.0D0)
33711 GOTO 1500
33712C
33713290 CST=1.0D0-2.5d-2*FLTI
33714 GOTO 1500
33715330 CST=0.85D0+0.5D-1*UNIV
33716 GOTO 1500
33717340 CST=0.70D0+1.5D-1*UNIV
33718 GOTO 1500
33719350 CST=0.50D0+2.0D-1*UNIV
33720 GOTO 1500
33721360 CST=0.50D0*UNIV
33722C
337231500 RETURN
33724C
33725C----------------------------------- PP ELASTIC SCATTERING -------
33726C
33727 102 CONTINUE
33728 EMEV=EKIN*1D3
33729C
33730 IF (EKIN.LE.0.500D0) THEN
33731 RND=DT_RNDM(EMEV)
33732 CST=2.0D0*RND-1.0D0
33733 RETURN
33734C
33735 ELSEIF (EKIN.LT.1.0D0) THEN
33736 DO 2200 K=13,60,12
33737 IF (PDCI(K).GT.EMEV) THEN
33738 UNIVE=(EMEV-PDCI(K-12))/(PDCI(K)-PDCI(K-12))
33739 UNIV=DT_RNDM(UNIVE)
33740 SUM=0
33741 DO 2100 I=1,11
33742 II=K+I
33743 SUM=SUM + (PDCI(II)-PDCI(II-12))*UNIVE + PDCI(II-12)
33744C
33745 IF (UNIV.LT.SUM)THEN
33746 UNIV=DT_RNDM(SUM)
33747 FLTI=DBLE(I)-UNIV
33748 GOTO(55,55,55,60,60,65,65,65,65,70,70) I
33749 END IF
33750 2100 CONTINUE
33751 END IF
33752 2200 CONTINUE
33753 ELSE
33754 DO 2400 K=12,55,11
33755 IF (PDCH(K).GT.EMEV) THEN
33756 UNIVE=(EMEV-PDCH(K-11))/(PDCH(K)-PDCH(K-11))
33757 UNIV=DT_RNDM(UNIVE)
33758 SUM=0.0D0
33759 DO 2300 I=1,10
33760 II=K+I
33761 SUM=SUM + (PDCH(II)-PDCH(II-11))*UNIVE + PDCH(II-11)
33762C
33763 IF (UNIV.LT.SUM)THEN
33764 UNIV=DT_RNDM(SUM)
33765 FLTI=UNIV+DBLE(I)
33766 GOTO(50,55,60,60,65,65,65,65,70,70) I
33767 END IF
33768 2300 CONTINUE
33769 END IF
33770 2400 CONTINUE
33771 END IF
33772C
3377350 CST=0.4D0*UNIV
33774 GOTO 2500
3377555 CST=0.2D0*FLTI
33776 GOTO 2500
3377760 CST=0.3D0+0.1D0*FLTI
33778 GOTO 2500
3377965 CST=0.6D0+0.04D0*FLTI
33780 GOTO 2500
3378170 CST=0.78D0+0.02D0*FLTI
33782C
337832500 CONTINUE
33784 IF (DT_RNDM(CST).GT.0.5D0) CST=-CST
33785C
33786 RETURN
33787 END
33788
33789*$ CREATE DT_DHADRI.FOR
33790*COPY DT_DHADRI
33791*
33792*===dhadri=============================================================*
33793*
33794 SUBROUTINE DT_DHADRI(N,PLAB,ELAB,CX,CY,CZ,ITTA)
33795
33796 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33797 SAVE
33798
33799 PARAMETER ( LINP = 10 ,
33800 & LOUT = 6 ,
33801 & LDAT = 9 )
33802C
33803C-----------------------------
33804C*** INPUT VARIABLES LIST:
33805C*** SAMPLING OF HADRON NUCLEON INTERACTION FOR (ABOUT) 0.1 LE PLAB LE 6
33806C*** GEV/C LABORATORY MOMENTUM REGION
33807C*** N - PROJECTILE HADRON INDEX
33808C*** PLAB - LABORATORY MOMENTUM OF N (GEV/C)
33809C*** ELAB - LABORATORY ENERGY OF N (GEV)
33810C*** CX,CY,CZ - DIRECTION COSINES OF N IN THE LABORATORY SYSTEM
33811C*** ITTA - TARGET NUCLEON INDEX
33812C*** OUTPUT VARIABLES LIST OF PARTICLE CHARACTERISTICS IN /FINLSP/
33813C IR COUNTS THE NUMBER OF PRODUCED PARTICLES
33814C*** ITR - PARTICLE INDEX, CXR,CYR,CZR - DIRECTION COSINES (LAB. SYST.)
33815C*** ELR,PLR LAB. ENERGY AND LAB. MOMENTUM OF THE SAMPLED PARTICLE
33816C*** RESPECT., UNITS (GEV/C AND GEV)
33817C----------------------------
33818
33819 COMMON /HNGAMR/ REDU,AMO,AMM(15)
33820 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
33821 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
33822 & NRK(2,268),NURE(30,2)
33823* particle properties (BAMJET index convention),
33824* (dublicate of DTPART for HADRIN)
33825 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
33826 & K1H(110),K2H(110)
33827 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
33828 COMMON /HNMETL/ CXS(149),CYS(149),CZS(149),ELS(149),PLS(149),
33829 & ITS(149),IS
33830 COMMON /HNDRUN/ RUNTES,EFTES
33831* particle properties (BAMJET index convention)
33832 CHARACTER*8 ANAME
33833 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33834 & IICH(210),IIBAR(210),K1(210),K2(210)
33835* final state from HADRIN interaction
33836 PARAMETER (MAXFIN=10)
33837 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33838 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33839
33840 DIMENSION ITPRF(110)
33841 DATA NNN/0/
33842 DATA UMODA/0./
33843 DATA ITPRF/-1,-1,5*1,-1,-1,1,1,1,-1,-1,-1,-1,6*1,-1,-1,-1,85*1/
33844 LOWP=0
33845 IF (N.LE.0.OR.N.GE.111)N=1
33846 IF (ITPRF( N ).GT.0 .OR. ITTA.GT.8) THEN
33847 GOTO 280
33848* WRITE (6,1000)
33849* + ' FALSE USE OF THE PARTICLE TYPE INDEX: N, ITTA', N, ITTA
33850* STOP
33851*1000 FORMAT (3(5H ****/),A,2I4,3(5H ****/))
33852* + 45H FALSE USE OF THE PARTICLE TYPE INDEX, N,LUE ,I4,3(5H ****/))
33853 ENDIF
33854 IATMPT=0
33855 IF (ABS(PLAB-5.0D0).LT.4.99999D0) GO TO 20
33856C IF(IPRI.GE.1) WRITE (6,1010) PLAB
33857C STOP
33858 1010 FORMAT ( ' PROJECTILE HADRON MOMENTUM OUTSIDE OF THE
33859 + ALLOWED REGION, PLAB=',1E15.5)
33860
33861 20 CONTINUE
33862 UMODAT=N*1.11111D0+ITTA*2.19291D0
33863 IF(UMODAT.NE.UMODA) CALL DT_DCALUM(N,ITTA)
33864 UMODA=UMODAT
33865 30 IATMPT=0
33866 LOWP=LOWP+1
33867 40 CONTINUE
33868 IMACH=0
33869 REDU=2.0D0
33870 IF (LOWP.GT.20) THEN
33871C WRITE(LOUT,*) ' jump 1'
33872 GO TO 280
33873 ENDIF
33874 NNN=N
33875 IF (NNN.EQ.N) GO TO 50
33876 RUNTES=0.0D0
33877 EFTES=0.0D0
33878 50 CONTINUE
33879 IS=1
33880 IRH=0
33881 IST=1
33882 NSTAB=23
33883 IRE=NURE(N,1)
33884 IF(ITTA.GT.1) IRE=NURE(N,2)
33885C
33886C-----------------------------
33887C*** IE,AMT,ECM,SI DETERMINATION
33888C----------------------------
33889 CALL DT_DSIGIN(IRE,PLAB,N,IE,AMT ,AMN,ECM,SI,ITTA)
33890 IANTH=-1
33891**sr
33892C IF (AMH(1).NE.0.93828D0) IANTH=1
33893 IF (AMH(1).NE.0.9383D0) IANTH=1
33894**
33895 IF (IANTH.GE.0) SI=1.0D0
33896 ECMMH=ECM
33897C
33898C-----------------------------
33899C ENERGY INDEX
33900C IRE CHARACTERIZES THE REACTION
33901C IE IS THE ENERGY INDEX
33902C----------------------------
33903 IF (SI.LT.1.D-6) THEN
33904C WRITE(LOUT,*) ' jump 2'
33905 GO TO 280
33906 ENDIF
33907 IF (N.LE.NSTAB) GO TO 60
33908 RUNTES=RUNTES+1.0D0
33909 IF (RUNTES.LT.20.D0) WRITE(LOUT,1020)N
33910 1020 FORMAT(3H N=,I10,30H THE PROEKTILE IS A RESONANCE )
33911 IF(IBARH(N).EQ.1) N=8
33912 IF(IBARH(N).EQ.-1) N=9
33913 60 CONTINUE
33914 IMACH=IMACH+1
33915**sr 19.2.97: loop for direct channel suppression
33916C IF (IMACH.GT.10) THEN
33917 IF (IMACH.GT.1000) THEN
33918**
33919C WRITE(LOUT,*) ' jump 3'
33920 GO TO 280
33921 ENDIF
33922 ECM =ECMMH
33923 AMN2=AMN**2
33924 AMT2=AMT**2
33925 ECMN=(ECM**2+AMN2-AMT2)/(2.0D0*ECM )
33926 IF(ECMN.LE.AMN) ECMN=AMN
33927 PCMN=SQRT(ECMN**2-AMN2)
33928 GAM=(ELAB+AMT)/ECM
33929 BGAM=PLAB/ECM
33930 IF (IANTH.GE.0) ECM=2.1D0
33931C
33932C-----------------------------
33933C*** RANDOM CHOICE OF REACTION CHANNEL
33934C----------------------------
33935 IST=0
33936 VV=DT_RNDM(AMN2)
33937 VV=VV-1.D-17
33938C
33939C-----------------------------
33940C*** PLACE REDUCED VERSION
33941C----------------------------
33942 IIEI=IEII(IRE)
33943 IDWK=IEII(IRE+1)-IIEI
33944 IIWK=IRII(IRE)
33945 IIKI=IKII(IRE)
33946C
33947C-----------------------------
33948C*** SHRINKAGE TO THE CONSIDERED ENERGY REGION FOR THE USE OF WEIGHTS
33949C----------------------------
33950 HECM=ECM
33951 HUMO=2.0D0*UMO(IIEI+IDWK)-UMO(IIEI+IDWK-1)
33952 IF (HUMO.LT.ECM) ECM=HUMO
33953C
33954C-----------------------------
33955C*** INTERPOLATION PREPARATION
33956C----------------------------
33957 ECMO=UMO(IE)
33958 ECM1=UMO(IE-1)
33959 DECM=ECMO-ECM1
33960 DEC=ECMO-ECM
33961C
33962C-----------------------------
33963C*** RANDOM LOOP
33964C----------------------------
33965 IK=0
33966 WKK=0.0D0
33967 WICOR=0.0D0
33968 70 IK=IK+1
33969 IWK=IIWK+(IK-1)*IDWK+IE-IIEI
33970 WOK=WK(IWK)
33971 WDK=WOK-WK(IWK-1)
33972C
33973C-----------------------------
33974C*** TESTVARIABLE WICO/WICOR: IF CHANNEL IK HAS THE SAME WEIGHTS LIKE IK
33975C GO TO NEXT CHANNEL, BECAUSE WKK((IK))-WKK((IK-1))=0, IK CAN NOT
33976C CONTRIBUTE
33977C----------------------------
33978 IF (PLAB.LT.PLABF(IIEI+2)) WDK=0.0D0
33979 WICO=WOK*1.23459876D0+WDK*1.735218469D0
33980 IF (WICO.EQ.WICOR) GO TO 70
33981 IF (UMO(IIEI+IDWK).LT.HECM) WDK=0.0D0
33982 WICOR=WICO
33983C
33984C-----------------------------
33985C*** INTERPOLATION IN CHANNEL WEIGHTS
33986C----------------------------
33987 EKLIM=-THRESH(IIKI+IK)
33988 IELIM=IDT_IEFUND(EKLIM,IRE)
33989 DELIM=UMO(IELIM)+EKLIM
33990 *+1.D-16
33991 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
33992 IF (DELIM*DELIM-DETE*DETE) 90,90,80
33993 80 DECC=DELIM
33994 GO TO 100
33995 90 DECC=DECM
33996 100 CONTINUE
33997 WKK=WOK-WDK*DEC/(DECC+1.D-9)
33998C
33999C-----------------------------
34000C*** RANDOM CHOICE
34001C----------------------------
34002C
34003 IF (VV.GT.WKK) GO TO 70
34004C
34005C***IK IS THE REACTION CHANNEL
34006C----------------------------
34007 INRK=IKII(IRE)+IK
34008 ECM=HECM
34009 I1001 =0
34010C
34011 110 CONTINUE
34012 IT1=NRK(1,INRK)
34013 AM1=DT_DAMG(IT1)
34014 IT2=NRK(2,INRK)
34015 AM2=DT_DAMG(IT2)
34016 AMS=AM1+AM2
34017 I1001=I1001+1
34018 IF (I1001.GT.50) GO TO 60
34019C
34020 IF (IT2*AMS.GT.IT2*ECM) GO TO 110
34021 IT11=IT1
34022 IT22=IT2
34023 IF (IANTH.GE.0) ECM=ELAB+AMT+0.00001D0
34024 AM11=AM1
34025 AM22=AM2
34026 IF (IT2.GT.0) GO TO 120
34027**sr 19.2.97: supress direct channel for pp-collisions
34028 IF ((N.EQ.1).AND.(ITTA.EQ.1).AND.(IT2.LE.0)) THEN
34029 RR = DT_RNDM(AM11)
34030 IF (RR.LE.0.75D0) GOTO 60
34031 ENDIF
34032**
34033C
34034C-----------------------------
34035C INCLUSION OF DIRECT RESONANCES
34036C RANDOM CHOICE OF DECAY CHANNELS OF THE DIRECT RESONANCE IT1
34037C------------------------
34038 KZ1=K1H(IT1)
34039 IST=IST+1
34040 IECO=0
34041 ECO=ECM
34042 GAM=(ELAB+AMT)/ECO
34043 BGAM=PLAB/ECO
34044 CXS(1)=CX
34045 CYS(1)=CY
34046 CZS(1)=CZ
34047 GO TO 170
34048 120 CONTINUE
34049 WW=DT_RNDM(ECO)
34050 IF(WW.LT. 0.5D0) GO TO 130
34051 IT1=IT22
34052 IT2=IT11
34053 AM1=AM22
34054 AM2=AM11
34055 130 CONTINUE
34056C
34057C-----------------------------
34058C THE FIRST PARTICLE IS DEFINED TO BE THE FORWARD GOING ONE AT SMALL T
34059 IBN=IBARH(N)
34060 IB1=IBARH(IT1)
34061 IT11=IT1
34062 IT22=IT2
34063 AM11=AM1
34064 AM22=AM2
34065 IF(IB1.EQ.IBN) GO TO 140
34066 IT1=IT22
34067 IT2=IT11
34068 AM1=AM22
34069 AM2=AM11
34070 140 CONTINUE
34071C-----------------------------
34072C***IT1,IT2 ARE THE CREATED PARTICLES
34073C***MOMENTA AND DIRECTION COSINA IN THE CM - SYSTEM
34074C------------------------
34075 CALL DT_DTWOPA(ECM1,ECM2,PCM1,PCM2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34076 *IT1,IT2,ECM,ECMN,PCMN,N,AM1,AM2)
34077 IST=IST+1
34078 ITS(IST)=IT1
34079 AMM(IST)=AM1
34080C
34081C-----------------------------
34082C***TRANSFORMATION INTO LAB SYSTEM AND ROTATION
34083C----------------------------
34084 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD1,COF1,SIF1,
34085 &PCM1,ECM1,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34086 IST=IST+1
34087 ITS(IST)=IT2
34088 AMM(IST)=AM2
34089 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD2,COF2,SIF2,
34090 *PCM2,ECM2,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34091 150 CONTINUE
34092C
34093C-----------------------------
34094C***TEST STABLE OR UNSTABLE
34095C----------------------------
34096 IF(ITS(IST).GT.NSTAB) GO TO 160
34097 IRH=IRH+1
34098C
34099C-----------------------------
34100C***IRH IS THE NUMBER OF THE FINAL STABLE PARTICLE
34101C----------------------------
34102C* IF (REDU.LT.0.D0) GO TO 1009
34103 ITRH(IRH)=ITS(IST)
34104 PLRH(IRH)=PLS(IST)
34105 CXRH(IRH)=CXS(IST)
34106 CYRH(IRH)=CYS(IST)
34107 CZRH(IRH)=CZS(IST)
34108 ELRH(IRH)=ELS(IST)
34109 IST=IST-1
34110 IF(IST.GE.1) GO TO 150
34111 GO TO 260
34112 160 CONTINUE
34113C
34114C RANDOM CHOICE OF DECAY CHANNELS
34115C----------------------------
34116C
34117 IT=ITS(IST)
34118 ECO=AMM(IST)
34119 GAM=ELS(IST)/ECO
34120 BGAM=PLS(IST)/ECO
34121 IECO=0
34122 KZ1=K1H(IT)
34123 170 CONTINUE
34124 IECO=IECO+1
34125 VV=DT_RNDM(GAM)
34126 VV=VV-1.D-17
34127 IIK=KZ1-1
34128 180 IIK=IIK+1
34129 IF (VV.GT.WTI(IIK)) GO TO 180
34130C
34131C IIK IS THE DECAY CHANNEL
34132C----------------------------
34133 IT1=NZKI(IIK,1)
34134 I310=0
34135 190 CONTINUE
34136 I310=I310+1
34137 AM1=DT_DAMG(IT1)
34138 IT2=NZKI(IIK,2)
34139 AM2=DT_DAMG(IT2)
34140 IF (IT2-1.LT.0) GO TO 240
34141 IT3=NZKI(IIK,3)
34142 AM3=DT_DAMG(IT3)
34143 AMS=AM1+AM2+AM3
34144C
34145C IF IIK-KIN.LIM.GT.ACTUAL TOTAL CM-ENERGY, DO AGAIN RANDOM IIK-CHOICE
34146C----------------------------
34147 IF (IECO.LE.10) GO TO 200
34148 IATMPT=IATMPT+1
34149 IF(IATMPT.GT.3) THEN
34150C WRITE(LOUT,*) ' jump 4'
34151 GO TO 280
34152 ENDIF
34153 GO TO 40
34154 200 CONTINUE
34155 IF (I310.GT.50) GO TO 170
34156 IF (AMS.GT.ECO) GO TO 190
34157C
34158C FOR THE DECAY CHANNEL
34159C IT1,IT2, IT3 ARE THE PRODUCED PARTICLES FROM IT
34160C----------------------------
34161 IF (REDU.LT.0.D0) GO TO 30
34162 ITWTHC=0
34163 REDU=2.0D0
34164 IF(IT3.EQ.0) GO TO 220
34165 210 CONTINUE
34166 ITWTH=1
34167 CALL DT_DTHREP(ECO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,SIF1,
34168 *COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
34169 GO TO 230
34170 220 CALL DT_DTWOPD(ECO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,
34171 &COD2,COF2,SIF2,AM1,AM2)
34172 ITWTH=-1
34173 IT3=0
34174 230 CONTINUE
34175 ITWTHC=ITWTHC+1
34176 IF (REDU.GT.0.D0) GO TO 240
34177 REDU=2.0D0
34178 IF (ITWTHC.GT.100) GO TO 30
34179 IF (ITWTH) 220,220,210
34180 240 CONTINUE
34181 ITS(IST )=IT1
34182 IF (IT2-1.LT.0) GO TO 250
34183 ITS(IST+1) =IT2
34184 ITS(IST+2)=IT3
34185 RX=CXS(IST)
34186 RY=CYS(IST)
34187 RZ=CZS(IST)
34188 AMM(IST)=AM1
34189 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD1,COF1,SIF1,PCM1,ECM1,
34190 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34191 IST=IST+1
34192 AMM(IST)=AM2
34193 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD2,COF2,SIF2,PCM2,ECM2,
34194 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34195 IF (IT3.LE.0) GO TO 250
34196 IST=IST+1
34197 AMM(IST)=AM3
34198 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD3,COF3,SIF3,PCM3,ECM3,
34199 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34200 250 CONTINUE
34201 GO TO 150
34202 260 CONTINUE
34203 270 CONTINUE
34204 RETURN
34205 280 CONTINUE
34206C
34207C----------------------------
34208C
34209C ZERO CROSS SECTION CASE
34210C----------------------------
34211C
34212 IRH=1
34213 ITRH(1)=N
34214 CXRH(1)=CX
34215 CYRH(1)=CY
34216 CZRH(1)=CZ
34217 ELRH(1)=ELAB
34218 PLRH(1)=PLAB
34219 RETURN
34220 END
34221
34222*$ CREATE DT_RUNTT.FOR
34223*COPY DT_RUNTT
34224*
34225*===runtt==============================================================*
34226*
34227 BLOCK DATA DT_RUNTT
34228
34229 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34230 SAVE
34231
34232 COMMON /HNDRUN/ RUNTES,EFTES
34233
34234 DATA RUNTES,EFTES /100.D0,100.D0/
34235
34236 END
34237
34238*$ CREATE DT_NONAME.FOR
34239*COPY DT_NONAME
34240*
34241*===noname=============================================================*
34242*
34243 BLOCK DATA DT_NONAME
34244
34245 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34246 SAVE
34247
34248* slope parameters for HADRIN interactions
34249 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34250 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34251
34252C DATAS DATAS DATAS DATAS DATAS
34253C****** *********
34254 DATA IKII/ 0, 15, 41, 67, 82, 93, 110, 133, 148, 159, 172, 183,
34255 & 207, 224, 241, 252, 268 /
34256 DATA IEII/ 0, 21, 46, 71, 92, 109, 126, 143, 160, 173, 186, 199,
34257 & 220, 241, 262, 279, 296 /
34258 DATA IRII/ 0, 315, 965, 1615, 1930, 2117, 2406, 2797, 3052, 3195,
34259 & 3364, 3507, 4011, 4368, 4725, 4912, 5184/
34260
34261C
34262C MASSES FOR THE SLOPE B(M) IN GEV
34263C SLOPE B(M) FOR AN MESONIC SYSTEM
34264C SLOPE B(M) FOR A BARYONIC SYSTEM
34265
34266*
34267 DATA SM,BBM,BBB/ 0.8D0, 0.85D0, 0.9D0, 0.95D0, 1.D0,
34268 & 1.05D0, 1.1D0, 1.15D0, 1.2D0, 1.25D0,
34269 & 1.3D0, 1.35D0, 1.4D0, 1.45D0, 1.5D0,
34270 & 1.55D0, 1.6D0, 1.65D0, 1.7D0, 1.75D0,
34271 & 1.8D0, 1.85D0, 1.9D0, 1.95D0, 2.D0,
34272 & 15.6D0, 14.95D0, 14.3D0, 13.65D0, 13.D0,
34273 & 12.35D0, 11.7D0, 10.85D0, 10.D0, 9.15D0,
34274 & 8.3D0, 7.8D0, 7.3D0, 7.25D0, 7.2D0,
34275 & 6.95D0, 6.7D0, 6.6D0, 6.5D0, 6.3D0,
34276 & 6.1D0, 5.85D0, 5.6D0, 5.35D0, 5.1D0,
34277 & 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0,
34278 & 14.2D0, 13.4D0, 12.6D0,
34279 & 11.8D0, 11.2D0, 10.6D0, 9.8D0, 9.D0,
34280 & 8.25D0, 7.5D0, 6.25D0, 5.D0, 4.5D0, 5*4.D0 /
34281*
34282 END
34283
34284*$ CREATE DT_DAMG.FOR
34285*COPY DT_DAMG
34286*
34287*===damg===============================================================*
34288*
34289 DOUBLE PRECISION FUNCTION DT_DAMG(IT)
34290
34291 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34292 SAVE
34293
34294* particle properties (BAMJET index convention),
34295* (dublicate of DTPART for HADRIN)
34296 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34297 & K1H(110),K2H(110)
34298
34299 DIMENSION GASUNI(14)
34300 DATA GASUNI/
34301 *-1.D0,-.98D0,-.95D0,-.87D0,-.72D0,-.48D0,
34302 *-.17D0,.17D0,.48D0,.72D0,.87D0,.95D0,.98D0,1.D0/
34303 DATA GAUNO/2.352D0/
34304 DATA GAUNON/2.4D0/
34305 DATA IO/14/
34306 DATA NSTAB/23/
34307
34308 I=1
34309 IF (IT.LE.0) GO TO 30
34310 IF (IT.LE.NSTAB) GO TO 20
34311 DGAUNI=GAUNO*GAUNON/DBLE(IO-1)
34312 VV=DT_RNDM(DGAUNI)
34313 VV=VV*2.0D0-1.0D0+1.D-16
34314 10 CONTINUE
34315 VO=GASUNI(I)
34316 I=I+1
34317 V1=GASUNI(I)
34318 IF (VV.GT.V1) GO TO 10
34319 UNIGA=DGAUNI*(DBLE(I)-2.0D0+(VV-VO+1.D-16)/
34320 & (V1-VO)-(DBLE(IO)-1.0D0)*0.5D0)
34321 DAM=GAH(IT)*UNIGA/GAUNO
34322 AAM=AMH(IT)+DAM
34323 DT_DAMG=AAM
34324 RETURN
34325 20 CONTINUE
34326 DT_DAMG=AMH(IT)
34327 RETURN
34328 30 CONTINUE
34329 DT_DAMG=0.0D0
34330 RETURN
34331 END
34332
34333*$ CREATE DT_DCALUM.FOR
34334*COPY DT_DCALUM
34335*
34336*===dcalum=============================================================*
34337*
34338 SUBROUTINE DT_DCALUM(N,ITTA)
34339
34340 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34341 SAVE
34342
34343C*** C.M.S.-ENERGY AND REACTION CHANNEL THRESHOLD CALCULATION
34344
34345* particle properties (BAMJET index convention),
34346* (dublicate of DTPART for HADRIN)
34347 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34348 & K1H(110),K2H(110)
34349 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34350 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34351 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34352 & NRK(2,268),NURE(30,2)
34353
34354 IRE=NURE(N,ITTA/8+1)
34355 IEO=IEII(IRE)+1
34356 IEE=IEII(IRE +1)
34357 AM1=AMH(N )
34358 AM12=AM1**2
34359 AM2=AMH(ITTA)
34360 AM22=AM2**2
34361 DO 10 IE=IEO,IEE
34362 PLAB2=PLABF(IE)**2
34363 ELAB=SQRT(AM12+AM22+2.0D0*SQRT(PLAB2+AM12)*AM2)
34364 UMO(IE)=ELAB
34365 10 CONTINUE
34366 IKO=IKII(IRE)+1
34367 IKE=IKII(IRE +1)
34368 UMOO=UMO(IEO)
34369 DO 30 IK=IKO,IKE
34370 IF(NRK(2,IK).GT.0) GO TO 30
34371 IKI=NRK(1,IK)
34372 AMSS=5.0D0
34373 K11=K1H(IKI)
34374 K22=K2H(IKI)
34375 DO 20 IK1=K11,K22
34376 IN=NZKI(IK1,1)
34377 AMS=AMH(IN)
34378 IN=NZKI(IK1,2)
34379 IF(IN.GT.0)AMS=AMS+AMH(IN)
34380 IN=NZKI(IK1,3)
34381 IF(IN.GT.0) AMS=AMS+AMH(IN)
34382 IF (AMS.LT.AMSS) AMSS=AMS
34383 20 CONTINUE
34384 IF(UMOO.LT.AMSS) UMOO=AMSS
34385 THRESH(IK)=UMOO
34386 30 CONTINUE
34387 RETURN
34388 END
34389
34390*$ CREATE DT_DCHANH.FOR
34391*COPY DT_DCHANH
34392*
34393*===dchanh=============================================================*
34394*
34395 SUBROUTINE DT_DCHANH
34396
34397 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34398 SAVE
34399
34400 PARAMETER ( LINP = 10 ,
34401 & LOUT = 6 ,
34402 & LDAT = 9 )
34403* particle properties (BAMJET index convention),
34404* (dublicate of DTPART for HADRIN)
34405 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34406 & K1H(110),K2H(110)
34407 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34408 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34409 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34410 & NRK(2,268),NURE(30,2)
34411
34412 DIMENSION HWT(460),HWK(40),SI(5184)
34413 EQUIVALENCE (WK(1),SI(1))
34414C--------------------
34415C*** USE ONLY FOR DATAPREPARATION OF PURE HADRIN
34416C*** CALCULATION OF REACTION- AND DECAY-CHANNEL-WEIGHTS,
34417C*** THRESHOLD ENERGIES+MOMENTA OF REACTION CHNLS.
34418C*** CHANGE OF WT- AND WK-INPUTDATA INTO WEIGHTS FOR THE M.-C.-PROCEDURE
34419C*** (ADDED ONE TO EACH OTHER FOR CORRESPONDING CHANNELS)
34420C--------------------------
34421 IREG=16
34422 DO 90 IRE=1,IREG
34423 IWKO=IRII(IRE)
34424 IEE=IEII(IRE+1)-IEII(IRE)
34425 IKE=IKII(IRE+1)-IKII(IRE)
34426 IEO=IEII(IRE)+1
34427 IIKA=IKII(IRE)
34428* modifications to suppress elestic scattering 24/07/91
34429 DO 80 IE=1,IEE
34430 SIS=1.D-14
34431 SINORC=0.0D0
34432 DO 10 IK=1,IKE
34433 IWK=IWKO+IEE*(IK-1)+IE
34434 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34435 SIS=SIS+SI(IWK)*SINORC
34436 10 CONTINUE
34437 SIIN(IEO+IE-1)=SIS
34438 SIO=0.D0
34439 IF (SIS.GE.1.D-12) GO TO 20
34440 SIS=1.D0
34441 SIO=1.D0
34442 20 CONTINUE
34443 SINORC=0.0D0
34444 DO 30 IK=1,IKE
34445 IWK=IWKO+IEE*(IK-1)+IE
34446 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34447 SIO=SIO+SI(IWK)*SINORC/SIS
34448 HWK(IK)=SIO
34449 30 CONTINUE
34450 DO 40 IK=1,IKE
34451 IWK=IWKO+IEE*(IK-1)+IE
34452 40 WK(IWK)=HWK(IK)
34453 IIKI=IKII(IRE)
34454 DO 70 IK=1,IKE
34455 AM111=0.D0
34456 INRK1=NRK(1,IIKI+IK)
34457 IF (INRK1.GT.0) AM111=AMH(INRK1)
34458 AM222=0.D0
34459 INRK2=NRK(2,IIKI+IK)
34460 IF (INRK2.GT.0) AM222=AMH(INRK2)
34461 THRESH(IIKI+IK)=AM111 +AM222
34462 IF (INRK2-1.GE.0) GO TO 60
34463 INRKK=K1H(INRK1)
34464 AMSS=5.D0
34465 INRKO=K2H(INRK1)
34466 DO 50 INRK1=INRKK,INRKO
34467 INZK1=NZKI(INRK1,1)
34468 INZK2=NZKI(INRK1,2)
34469 INZK3=NZKI(INRK1,3)
34470 IF (INZK1.LE.0.OR.INZK1.GT.110) GO TO 50
34471 IF (INZK2.LE.0.OR.INZK2.GT.110) GO TO 50
34472 IF (INZK3.LE.0.OR.INZK3.GT.110) GO TO 50
34473C WRITE (6,310)INRK1,INZK1,INZK2,INZK3
34474 1000 FORMAT (4I10)
34475 AMS=AMH(INZK1)+AMH(INZK2)
34476 IF (INZK3-1.GE.0) AMS=AMS+AMH(INZK3)
34477 IF (AMSS.GT.AMS) AMSS=AMS
34478 50 CONTINUE
34479 AMS=AMSS
34480 IF (AMS.LT.UMO(IEO)) AMS=UMO(IEO)
34481 THRESH(IIKI+IK)=AMS
34482 60 CONTINUE
34483 70 CONTINUE
34484 80 CONTINUE
34485 90 CONTINUE
34486 DO 100 J=1,460
34487 100 HWT(J)=0.D0
34488 DO 120 I=1,110
34489 IK1=K1H(I)
34490 IK2=K2H(I)
34491 HV=0.D0
34492 IF (IK2.GT.460)IK2=460
34493 IF (IK1.LE.0)IK1=1
34494 DO 110 J=IK1,IK2
34495 HV=HV+WTI(J)
34496 HWT(J)=HV
34497 JI=J
34498 110 CONTINUE
34499 IF (ABS(HV-1.0D0).GT.1.D-4) WRITE(LOUT,1010)I,JI,HV
34500 1010 FORMAT (35H ERROR IN HWT, FALSE USE OF CHANWH ,2I6,F10.2)
34501 120 CONTINUE
34502 DO 130 J=1,460
34503 130 WTI(J)=HWT(J)
34504 RETURN
34505 END
34506
34507*$ CREATE DT_DHADDE.FOR
34508*COPY DT_DHADDE
34509*
34510*===dhadde=============================================================*
34511*
34512 SUBROUTINE DT_DHADDE
34513
34514 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34515 SAVE
34516
34517* particle properties (BAMJET index convention)
34518 CHARACTER*8 ANAME
34519 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
34520 & IICH(210),IIBAR(210),K1(210),K2(210)
34521* HADRIN: decay channel information
34522 PARAMETER (IDMAX9=602)
34523 CHARACTER*8 ZKNAME
34524 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
34525* particle properties (BAMJET index convention),
34526* (dublicate of DTPART for HADRIN)
34527 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34528 & K1H(110),K2H(110)
34529 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34530* decay channel information for HADRIN
34531 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34532 & K1Z(16),K2Z(16),WTZ(153),II22,
34533 & NZK1(153),NZK2(153),NZK3(153)
34534
34535 DATA IRETUR/0/
34536
34537 IRETUR=IRETUR+1
34538 AMH(31)=0.48D0
34539 IF (IRETUR.GT.1) RETURN
34540 DO 10 I=1,94
34541 AMH(I) = AAM(I)
34542 GAH(I) = GA(I)
34543 TAUH(I) = TAU(I)
34544 ICHH(I) = IICH(I)
34545 IBARH(I) = IIBAR(I)
34546 K1H(I) = K1(I)
34547 K2H(I) = K2(I)
34548 10 CONTINUE
34549**sr
34550C AMH(1)=0.93828D0
34551 AMH(1)=0.9383D0
34552**
34553 AMH(2)=AMH(1)
34554 DO 20 I=26,30
34555 K1H(I)=452
34556 K2H(I)=452
34557 20 CONTINUE
34558 DO 30 I=1,307
34559 WTI(I) = WT(I)
34560 NZKI(I,1) = NZK(I,1)
34561 NZKI(I,2) = NZK(I,2)
34562 NZKI(I,3) = NZK(I,3)
34563 30 CONTINUE
34564 DO 40 I=1,16
34565 L=I+94
34566 AMH(L)=AMZ(I)
34567 GAH( L)=GAZ(I)
34568 TAUH( L)=TAUZ(I)
34569 ICHH( L)=ICHZ(I)
34570 IBARH( L)=IBARZ(I)
34571 K1H( L)=K1Z(I)
34572 K2H( L)=K2Z(I)
34573 40 CONTINUE
34574 DO 50 I=1,153
34575 L=I+307
34576 WTI(L) = WTZ(I)
34577 NZKI(L,3) = NZK3(I)
34578 NZKI(L,2) = NZK2(I)
34579 NZKI(L,1) = NZK1(I)
34580 50 CONTINUE
34581 RETURN
34582 END
34583
34584*$ CREATE IDT_IEFUND.FOR
34585*COPY IDT_IEFUND
34586*
34587*===iefund=============================================================*
34588*
34589 INTEGER FUNCTION IDT_IEFUND(PL,IRE)
34590
34591 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34592 SAVE
34593
34594C*****IEFUN CALCULATES A MOMENTUM INDEX
34595
34596 PARAMETER ( LINP = 10 ,
34597 & LOUT = 6 ,
34598 & LDAT = 9 )
34599 COMMON /HNDRUN/ RUNTES,EFTES
34600 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34601 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34602 & NRK(2,268),NURE(30,2)
34603
34604 IPLA=IEII(IRE)+1
34605 *+1
34606 IPLE=IEII(IRE+1)
34607 IF (PL.LT.0.) GO TO 30
34608 DO 10 I=IPLA,IPLE
34609 J=I-IPLA+1
34610 IF (PL.LE.PLABF(I)) GO TO 60
34611 10 CONTINUE
34612 I=IPLE
34613 IF ( EFTES.GT.40.D0) GO TO 20
34614 EFTES=EFTES+1.0D0
34615 WRITE(LOUT,1000)PL,J
34616 20 CONTINUE
34617 GO TO 70
34618 30 CONTINUE
34619 DO 40 I=IPLA,IPLE
34620 J=I-IPLA+1
34621 IF (-PL.LE.UMO(I)) GO TO 60
34622 40 CONTINUE
34623 I=IPLE
34624 IF ( EFTES.GT.40.D0) GO TO 50
34625 EFTES=EFTES+1.0D0
34626 WRITE(LOUT,1000)PL,I
34627 50 CONTINUE
34628 60 CONTINUE
34629 70 CONTINUE
34630 IDT_IEFUND=I
34631 RETURN
34632 1000 FORMAT(14H PLAB OR -ECM=,E12.4,27H IS OUT OF CONSIDERED RANGE ,
34633 +7H IEFUN=,I5)
34634 END
34635
34636*$ CREATE DT_DSIGIN.FOR
34637*COPY DT_DSIGIN
34638*
34639*===dsigin=============================================================*
34640*
34641 SUBROUTINE DT_DSIGIN(IRE ,PLAB,N,IE ,AMT ,AMN,ECM ,SI ,ITAR)
34642
34643 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34644 SAVE
34645
34646* particle properties (BAMJET index convention),
34647* (dublicate of DTPART for HADRIN)
34648 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34649 & K1H(110),K2H(110)
34650 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34651 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34652 & NRK(2,268),NURE(30,2)
34653
34654 IE=IDT_IEFUND(PLAB,IRE)
34655 IF (IE.LE.IEII(IRE)) IE=IE+1
34656 AMT=AMH(ITAR)
34657 AMN=AMH(N)
34658 AMN2=AMN*AMN
34659 AMT2=AMT*AMT
34660 ECM=SQRT(AMN2+AMT2+2.0D0*AMT*SQRT(AMN2+PLAB**2))
34661C*** INTERPOLATION PREPARATION
34662 ECMO=UMO(IE)
34663 ECM1=UMO(IE-1)
34664 DECM=ECMO-ECM1
34665 DEC=ECMO-ECM
34666 IIKI=IKII(IRE)+1
34667 EKLIM=-THRESH(IIKI)
34668 WOK=SIIN(IE)
34669 WDK=WOK-SIIN(IE-1)
34670 IF (ECM.GT.ECMO) WDK=0.0D0
34671C*** INTERPOLATION IN CHANNEL WEIGHTS
34672 IELIM=IDT_IEFUND(EKLIM,IRE)
34673 DELIM=UMO(IELIM)+EKLIM
34674 *+1.D-16
34675 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
34676 IF (DELIM*DELIM-DETE*DETE) 20,20,10
34677 10 DECC=DELIM
34678 GO TO 30
34679 20 DECC=DECM
34680 30 CONTINUE
34681 WKK=WOK-WDK*DEC/(DECC+1.D-9)
34682 IF (WKK.LT.0.0D0) WKK=0.0D0
34683 SI=WKK+1.D-12
34684 IF (-EKLIM.GT.ECM) SI=1.D-14
34685 RETURN
34686 END
34687
34688*$ CREATE DT_DTCHOI.FOR
34689*COPY DT_DTCHOI
34690*
34691*===dtchoi=============================================================*
34692*
34693 SUBROUTINE DT_DTCHOI(T,P,PP,E,EE,I,II,N,AM1,AM2)
34694
34695 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34696 SAVE
34697
34698C ****************************
34699C TCHOIC CALCULATES A RANDOM VALUE
34700C FOR THE FOUR-MOMENTUM-TRANSFER T
34701C ****************************
34702
34703* particle properties (BAMJET index convention),
34704* (dublicate of DTPART for HADRIN)
34705 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34706 & K1H(110),K2H(110)
34707* slope parameters for HADRIN interactions
34708 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34709
34710 AMA=AM1
34711 AMB=AM2
34712 IF (I.GT.30.AND.II.GT.30) GO TO 20
34713 III=II
34714 AM3=AM2
34715 IF (I.LE.30) GO TO 10
34716 III=I
34717 AM3=AM1
34718 10 CONTINUE
34719 GO TO 30
34720 20 CONTINUE
34721 III=II
34722 AM3=AM2
34723 IF (AMA.LE.AMB) GO TO 30
34724 III=I
34725 AM3=AM1
34726 30 CONTINUE
34727 IB=IBARH(III)
34728 AMA=AM3
34729 K=INT((AMA-0.75D0)/0.05D0)
34730 IF (K-2.LT.0) K=1
34731 IF (K-26.GE.0) K=25
34732 IF (IB)50,40,50
34733 40 BM=BBM(K)
34734 GO TO 60
34735 50 BM=BBB(K)
34736 60 CONTINUE
34737C NORMALIZATION
34738 TMIN=-2.0D0*(E*EE-P*PP)+AMH(N)**2+AM1 **2
34739 TMAX=-2.0D0*(E*EE+P*PP)+AMH(N)**2+AM1 **2
34740 VB=DT_RNDM(TMIN)
34741**sr test
34742C IF (VB.LT.0.2D0) BM=BM*0.1
34743C **0.5
34744 BM = BM*5.05D0
34745**
34746 TMI=BM*TMIN
34747 TMA=BM*TMAX
34748 ETMA=0.D0
34749 IF (ABS(TMA).GT.120.D0) GO TO 70
34750 ETMA=EXP(TMA)
34751 70 CONTINUE
34752 AN=(1.0D0/BM)*(EXP(TMI)-ETMA)
34753C*** RANDOM CHOICE OF THE T - VALUE
34754 R=DT_RNDM(TMI)
34755 T=(1.0D0/BM)*LOG(ETMA+R*AN*BM)
34756 RETURN
34757 END
34758
34759*$ CREATE DT_DTWOPA.FOR
34760*COPY DT_DTWOPA
34761*
34762*===dtwopa=============================================================*
34763*
34764 SUBROUTINE DT_DTWOPA(E1,E2,P1,P2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34765 &IT1,IT2,UMOO,ECM,P,N,AM1,AM2)
34766
34767 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34768 SAVE
34769
34770C ******************************************************
34771C QUASI TWO PARTICLE PRODUCTION
34772C TWOPAR CALCULATES THE ENERGYS AND THE MOMENTA
34773C FOR THE CREATED PARTICLES OR RESONANCES IT1 AND IT2
34774C IN THE CM - SYSTEM
34775C COD1,COD2,COF1,COF2,SIF1,SIF2 ARE THE ANGLES FOR
34776C SPHERICAL COORDINATES
34777C ******************************************************
34778
34779* particle properties (BAMJET index convention),
34780* (dublicate of DTPART for HADRIN)
34781 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34782 & K1H(110),K2H(110)
34783
34784 AMA=AM1
34785 AMB=AM2
34786 AMA2=AMA*AMA
34787 E1=((UMOO-AMB)*(UMOO+AMB) + AMA2)/(2.0D0*UMOO)
34788 E2=UMOO - E1
34789 IF (E1.LT.AMA*1.00001D0) E1=AMA*1.00001D0
34790 AMTE=(E1-AMA)*(E1+AMA)
34791 AMTE=AMTE+1.D-18
34792 P1=SQRT(AMTE)
34793 P2=P1
34794C / P2 / = / P1 / BUT OPPOSITE DIRECTIONS
34795C DETERMINATION OF THE ANGLES
34796C COS(THETA1)=COD1 COS(THETA2)=COD2
34797C SIN(PHI1)=SIF1 SIN(PHI2)=SIF2
34798C COS(PHI1)=COF1 COS(PHI2)=COF2
34799C PHI IS UNIFORMLY DISTRIBUTED IN ( 0,2*PI )
34800 CALL DT_DSFECF(COF1,SIF1)
34801 COF2=-COF1
34802 SIF2=-SIF1
34803C CALCULATION OF THETA1
34804 CALL DT_DTCHOI(TR,P,P1,ECM,E1,IT1,IT2,N,AM1,AM2)
34805 COD1=(TR-AMA2-AMH(N)*AMH(N)+2.0D0*ECM*E1)/(2.0D0*P*P1+1.D-18)
34806 IF (COD1.GT.0.9999999D0) COD1=0.9999999D0
34807 COD2=-COD1
34808 RETURN
34809 END
34810
34811*$ CREATE DT_ZK.FOR
34812*COPY DT_ZK
34813*
34814*===zk=================================================================*
34815*
34816 BLOCK DATA DT_ZK
34817
34818 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34819 SAVE
34820
34821* decay channel information for HADRIN
34822 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34823 & K1Z(16),K2Z(16),WTZ(153),II22,
34824 & NZK1(153),NZK2(153),NZK3(153)
34825* decay channel information for HADRIN
34826 CHARACTER*8 ANAMZ,ZKNAM4,ZKNAM5,ZKNAM6
34827 COMMON /HNADDN/ ANAMZ(16),ZKNAM4(9),ZKNAM5(90),ZKNAM6(54)
34828
34829* Particle masses in GeV *
34830 DATA AMZ/ 3*2.2D0, 0.9576D0, 3*1.887D0, 2.4D0, 2.03D0, 2*1.44D0,
34831 & 2*1.7D0, 3*0.D0/
34832* Resonance width Gamma in GeV *
34833 DATA GAZ/ 3*.2D0, .1D0, 4*.2D0, .18D0, 2*.2D0, 2*.15D0, 3*0.D0 /
34834* Mean life time in seconds *
34835 DATA TAUZ / 16*0.D0 /
34836* Charge of particles and resonances *
34837 DATA ICHZ/ 0, 1, 3*0, 1, -1, 0, 1, -1, 0, 0, 1 , 3*0 /
34838* Baryonic charge *
34839 DATA IBARZ/ 2, 7*0, 1, -1, -1, 1, 1, 3*0 /
34840* First number of decay channels used for resonances *
34841* and decaying particles *
34842 DATA K1Z/ 308,310,313,317,322,365,393,421,425,434,440,446,449,
34843 & 3*460/
34844* Last number of decay channels used for resonances *
34845* and decaying particles *
34846 DATA K2Z/ 309,312,316,321,364,392,420,424,433,439,445,448,451,
34847 & 3*460/
34848* Weight of decay channel *
34849 DATA WTZ/ .17D0, .83D0, 2*.33D0, .34D0, .17D0, 2*.33D0, .17D0,
34850 & .01D0, .13D0, .36D0, .27D0, .23D0, .0014D0, .0029D0, .0014D0,
34851 & .0029D0, 4*.0007D0, .0517D0, .0718D0, .0144D0, .0431D0, .0359D0,
34852 & .0718D0, .0014D0, .0273D0, .0014D0, .0431D0, 2*.0129D0, .0259D0,
34853 & .0517D0, .0359D0, .0014D0, 2*.0144D0, .0129D0, .0014D0, .0259D0,
34854 & .0359D0, .0072D0, .0474D0, .0948D0, .0259D0, .0072D0, .0144D0,
34855 & .0287D0, .0431D0, .0144D0, .0287D0, .0474D0, .0144D0, .0075D0,
34856 & .0057D0, .0019D0, .0038D0, .0095D0, 2*.0014D0, .0191D0, .0572D0,
34857 & .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0, .0686D0,.0172D0,
34858 & .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0, .0190D0,
34859 & .0057D0, .0019D0, .0038D0, .0095D0, .0014D0, .0014D0, .0191D0,
34860 & .0572D0, .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0,.0686D0,
34861 & .0172D0, .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0,
34862 & .0190D0, 4*.25D0, 2*.2D0, .12D0, .1D0, .07D0, .07D0, .14D0,
34863 & 2*.05D0, .0D0, .3334D0, .2083D0, 2*.125D0, .2083D0, .0D0, .125D0,
34864 & .2083D0, .3334D0, .2083D0, .125D0, .3D0, .05D0, .65D0, .3D0,
34865 & .05D0, .65D0, 9*1.D0 /
34866* Particle numbers in decay channel *
34867 DATA NZK1/ 8, 1, 2, 9, 1, 2, 9, 2, 9, 7, 13, 31, 15, 24, 23, 13,
34868 & 23, 13, 2*23, 14, 13, 23, 31, 98, 2*33, 32, 23, 14, 13, 35, 2*23,
34869 & 14, 13, 33, 23, 98, 31, 23, 14, 13, 35, 2*33, 32, 23, 35, 33, 32,
34870 & 98, 5*35, 4*13, 23, 13, 98, 32, 33, 23, 13, 23, 13, 14, 13, 32,
34871 & 13, 98, 23, 13, 2*32, 13, 33, 32, 98, 2*35, 4*14, 23, 14, 98,
34872 & 2*34, 23, 14, 23, 2*14, 13, 34, 14, 98, 23, 14, 2*34, 14, 33, 32,
34873 & 98, 2*35, 104, 61, 105, 62, 1, 17, 21, 17, 22, 2*21, 22, 21, 2,
34874 & 67, 68, 69, 2, 2*9, 68, 69, 70, 2, 9, 2*24, 15, 2*25, 16, 9*0/
34875 DATA NZK2/ 2*8, 1, 8, 9, 2*8, 2*1, 7, 14, 13, 16, 25, 23, 14, 23,
34876 & 14, 31, 33, 32, 34, 35, 31, 23, 31, 33, 34, 31, 32, 34, 31, 33,
34877 & 32, 2*33, 35, 31, 33, 31, 33, 32, 34, 35, 31, 33, 34, 35, 31,
34878 & 4*33, 32, 3*35, 2*23, 13, 31, 32, 33, 13, 31, 32, 2*31, 32, 33,
34879 & 32, 32, 35, 31, 2*32, 33, 31, 33, 35, 33, 3*32, 35, 2*23, 14,
34880 & 31, 34, 33, 14, 31, 33, 2*31, 34, 32, 33, 34, 35, 31, 2*34, 33,
34881 & 31, 33, 35, 33, 2*34, 33, 35, 1, 2, 8, 9, 25, 13, 35, 2*32, 33,
34882 & 31, 13, 23, 31, 13, 23, 14, 79, 80, 31, 13, 23, 14, 78, 79, 8,
34883 & 1, 8, 1, 8, 1, 9*0 /
34884 DATA NZK3/ 23, 14, 2*13, 23, 13, 2*23, 14, 0, 7, 14, 4*0, 2*23,
34885 & 10*0, 33, 2*31, 0, 33, 34, 32, 34, 0, 35, 0, 31, 3*35, 0, 3*31,
34886 & 35, 31, 33, 34, 31, 33, 34, 31, 33, 35, 0, 23, 14, 6*0, 32, 3*33,
34887 & 32, 34, 0, 35, 0, 2*35, 2*31, 35, 32, 34, 31, 33, 32, 0, 23, 13,
34888 & 6*0, 34, 2*33, 34, 33, 34, 0, 35, 0,2*35, 2*31, 35, 2*34, 31,
34889 & 2*34, 25*0, 23, 2*14, 23, 2*13, 9*0 /
34890* Particle names *
34891 DATA ANAMZ / 'NNPI', 'ANPPI', 'ANNPI', ' ETS ',' PAP ',' PAN ',
34892 & 'APN', 'DEO ', 'S+2030', 'AN*-14', 'AN*014','KONPI ','AKOPPI',
34893 & 3*'BLANK' /
34894* Name of decay channel *
34895 DATA ZKNAM4/'NNPI0','PNPI-','APPPI+','ANNPI+','ANPPI0','APNPI+',
34896 & 'ANNPI0','APPPI0','ANPPI-'/
34897 DATA ZKNAM5/' GAGA ','P+P-GA','ETP+P-','K+K- ','K0AK0 ',
34898 & ' POPO ',' P+P- ','POPOPO','P+P0P-','P0ET ','&0R0 ','P-R+ ',
34899 & 'P+R- ','POOM ',' ETET ','ETSP0 ','R0ET ',' R0R0 ','R+R- ',
34900 & 'P0ETR0','P-ETR+','P+ETR-',' OMET ','P0R0R0','P0R+R-','P-R+R0',
34901 & 'P+R-R0','R0OM ','P0ETOM','ETSR0 ','ETETET','P0R0OM','P-R+OM',
34902 & 'P+R-OM','OMOM ','R0ETET','R0R0ET','R+R-ET','P0OMOM','OMETET',
34903 & 'R0R0R0','R+R0R-','ETSRET','OMR0R0','OMR+R-','OMOMET','OMOMR0',
34904 & 'OMOMOM',
34905 & ' P+PO ','P+POPO','P+P+P-','P+ET ','P0R+ ','P+R0 ','ETSP+ ',
34906 & 'R+ET ',' R0R+ ','POETR+','P+ETR0','POR+R-','P+R0R0','P-R+R+',
34907 & 'P+R-R+','R+OM ','P+ETOM','ETSR+ ','POR+OM','P+R0OM','R+ETET',
34908 & 'R+R0ET','P+OMOM','R0R0R+','R+R+R-','ETSR+E','OMR+R0','OMOMR+',
34909 & 'P-PO ','P-POPO','P-P-P+','P-ET ','POR- ','P-R0 ','ETSP- ',
34910 & 'R-ET ','R-R0 ','POETR-','P-ETR0','POR-R0','P-R+R-','P-R0R0'/
34911 DATA ZKNAM6/'P+R-R-','R-OM ','P-ETOM','ETSR- ','POR-OM','P-R0OM',
34912 & 'R-ETET','R-R0ET','P-OMOM','R0R0R-','R+R-R-','ETSR-E','OMR0R-',
34913 & 'OMOMR-', 'PAN-14','APN+14','NAN014','ANN014','PAKO ','LPI+ ',
34914 & 'SI+OM','LAMRO+','SI0RO+','SI+RO0','SI+ETA','SI0PI+','SI+PI0',
34915 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHOO','ANRHO-','ANETA ',
34916 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0',
34917 & 'KONPIO','KOPPI-','K+NPI-','AKOPPO','AKONP+','K-PPI+',
34918 & 9*'BLANK'/
34919*= end*block.zk *
34920 END
34921
34922*$ CREATE DT_BLKD43.FOR
34923*COPY DT_BLKD43
34924*
34925*===blkd43=============================================================*
34926*
34927 BLOCK DATA DT_BLKD43
34928
34929 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34930 SAVE
34931
34932*
34933*=== reac =============================================================*
34934*
34935*----------------------------------------------------------------------*
34936* *
34937* Created on 10 december 1991 by Alfredo Ferrari & Paola Sala *
34938* Infn - Milan *
34939* *
34940* Last change on 10-dec-91 by Alfredo Ferrari *
34941* *
34942* This is the original common reac of Hadrin *
34943* *
34944*----------------------------------------------------------------------*
34945*
34946 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34947 & NRK(2,268),NURE(30,2)
34948
34949 DIMENSION
34950 & UMOPI(92), UMOKC(68), UMOP(39), UMON(63), UMOK0(34),
34951 & PLAPI(92), PLAKC(68), PLAP(39), PLAN(63), PLAK0(34),
34952 & SPIKP1(315), SPIKPU(278), SPIKPV(372),
34953 & SPIKPW(278), SPIKPX(372), SPIKP4(315),
34954 & SPIKP5(187), SPIKP6(289),
34955 & SKMPEL(102), SPIKP7(289), SKMNEL(68), SPIKP8(187),
34956 & SPIKP9(143), SPIKP0(169), SPKPV(143),
34957 & SAPPEL(105), SPIKPE(399), SAPNEL(84), SPIKPZ(273),
34958 & SANPEL(84) , SPIKPF(273),
34959 & SPKP15(187), SPKP16(272),
34960 & NRKPI(164), NRKKC(132), NRKP(70), NRKN(116), NRKK0(54),
34961 & NURELN(60)
34962*
34963 DIMENSION NRKLIN(532)
34964 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34965 EQUIVALENCE ( UMO( 1), UMOPI(1)), ( UMO( 93), UMOKC(1))
34966 EQUIVALENCE ( UMO(161), UMOP(1)), ( UMO(200), UMON(1))
34967 EQUIVALENCE ( UMO(263), UMOK0(1))
34968 EQUIVALENCE ( PLABF( 1), PLAPI(1)), ( PLABF( 93), PLAKC(1))
34969 EQUIVALENCE ( PLABF(161), PLAP(1)), ( PLABF(200), PLAN(1))
34970 EQUIVALENCE ( PLABF(263), PLAK0(1))
34971 EQUIVALENCE ( WK( 1), SPIKP1(1)), ( WK( 316), SPIKPU(1))
34972 EQUIVALENCE ( WK( 594), SPIKPV(1)), ( WK( 966), SPIKPW(1))
34973 EQUIVALENCE ( WK(1244), SPIKPX(1)), ( WK(1616), SPIKP4(1))
34974 EQUIVALENCE ( WK(1931), SPIKP5(1)), ( WK(2118), SPIKP6(1))
34975 EQUIVALENCE ( WK(2407), SKMPEL(1)), ( WK(2509), SPIKP7(1))
34976 EQUIVALENCE ( WK(2798), SKMNEL(1)), ( WK(2866), SPIKP8(1))
34977 EQUIVALENCE ( WK(3053), SPIKP9(1)), ( WK(3196), SPIKP0(1))
34978 EQUIVALENCE ( WK(3365), SPKPV(1)), ( WK(3508), SAPPEL(1))
34979 EQUIVALENCE ( WK(3613), SPIKPE(1)), ( WK(4012), SAPNEL(1))
34980 EQUIVALENCE ( WK(4096), SPIKPZ(1)), ( WK(4369), SANPEL(1))
34981 EQUIVALENCE ( WK(4453), SPIKPF(1)), ( WK(4726), SPKP15(1))
34982 EQUIVALENCE ( WK(4913), SPKP16(1))
34983 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34984 EQUIVALENCE (NRKLIN( 1), NRKPI(1)), (NRKLIN( 165), NRKKC(1))
34985 EQUIVALENCE (NRKLIN( 297), NRKP(1)), (NRKLIN( 367), NRKN(1))
34986 EQUIVALENCE (NRKLIN( 483), NRKK0(1))
34987 EQUIVALENCE (NURE(1,1), NURELN(1))
34988*
34989**** pi- p data *
34990**** pi+ n data *
34991 DATA PLAPI / 0.D0, .3D0, .5D0, .6D0, .7D0, .8D0, .9D0, .95D0,1.D0,
34992 & 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0,
34993 & 3.D0, 3.5D0, 4.D0, 0.D0, .285D0, .4D0, .45D0, .5D0, .6D0, .7D0,
34994 & .75D0, .8D0, .85D0, .9D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0,
34995 & 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0,
34996 & .285D0, .4D0, .45D0, .5D0, .6D0, .7D0, .75D0, .8D0, .85D0, .9D0,
34997 & 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0,
34998 & 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0, .3D0, .5D0, .6D0, .7D0,
34999 & .8D0, .9D0, .95D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0,
35000 & 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0 /
35001 DATA PLAKC /
35002 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35003 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35004 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35005 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35006 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35007 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35008 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35009 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35010 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35011 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35012 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35013 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35014 DATA PLAK0 /
35015 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35016 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35017 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35018 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35019 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35020 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35021* pp pn np nn *
35022 DATA PLAP /
35023 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35024 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35025 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35026 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35027 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35028 & 3.43D0, 3.75D0, 4.07D0, 4.43D0 /
35029* app apn anp ann *
35030 DATA PLAN /
35031 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35032 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35033 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35034 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35035 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35036 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35037 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35038 & .74D0, 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 DATA SIIN / 296*0.D0 /
35041 DATA UMOPI/ 1.08D0,1.233D0,1.302D0,1.369D0,1.496D0,
35042 & 1.557D0,1.615D0,1.6435D0,
35043 & 1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,2.071D0,2.159D0,
35044 & 2.286D0,2.366D0,2.482D0,2.56D0,
35045 & 2.735D0,2.90D0,
35046 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35047 & 1.496D0,1.527D0,1.557D0,
35048 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35049 & 2.071D0,2.159D0,2.286D0,2.366D0,
35050 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35051 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35052 & 1.496D0,1.527D0,1.557D0,
35053 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35054 & 2.071D0,2.159D0,2.286D0,2.366D0,
35055 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35056 & 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 DATA UMOKC/ 1.44D0,
35062 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35063 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35064 & 3.1D0,1.44D0,
35065 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35066 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35067 & 3.1D0,1.44D0,
35068 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35069 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35070 & 3.1D0,1.44D0,
35071 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35072 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35073 & 3.1D0/
35074 DATA UMOK0/ 1.44D0,
35075 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35076 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35077 & 3.1D0,1.44D0,
35078 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35079 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35080 & 3.1D0/
35081* pp pn np nn *
35082 DATA UMOP/
35083 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35084 & 3.D0,3.1D0,3.2D0,
35085 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35086 & 3.D0,3.1D0,3.2D0,
35087 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35088 & 3.D0,3.1D0,3.2D0/
35089* app apn anp ann *
35090 DATA UMON /
35091 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35092 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35093 & 3.D0,3.1D0,3.2D0,
35094 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35095 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35096 & 3.D0,3.1D0,3.2D0,
35097 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35098 & 2.D0,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**** reaction channel state particles *
35101 DATA NRKPI / 13, 1, 15, 21, 81, 0, 13, 54, 23, 53, 13, 63, 13, 58,
35102 & 23, 57, 13, 65, 1, 32, 53, 31, 54, 32, 53, 33, 53, 35, 63, 32,
35103 & 13, 8, 23, 1, 17, 15, 21, 24, 22, 15, 82, 0, 61, 0, 13, 55, 23,
35104 & 54, 14, 53, 13, 64, 23, 63, 13, 59, 23, 58, 14, 57, 13, 66, 23,
35105 & 65, 1, 31, 8, 32, 1, 33, 1, 35, 54, 31, 55, 32, 54, 33, 53, 34,
35106 & 54, 35, 14, 1, 23, 8, 17, 24, 20, 15, 22, 24, 83, 0, 62, 0, 14,
35107 & 54, 23, 55, 13, 56, 14, 63, 23, 64, 14, 58, 23, 59, 13, 60, 14,
35108 & 65, 23, 66, 8, 31, 1, 34, 8, 33, 8, 35, 55, 31, 54, 34, 55, 33,
35109 & 56, 32, 55, 35, 14, 8, 24, 20, 84, 0, 14, 55, 23, 56, 14, 64, 14,
35110 & 59, 23, 60, 14, 66, 8, 34, 56, 31, 55, 34, 56, 33, 56, 35, 64,34/
35111 DATA NRKKC/ 15, 1, 89, 0, 24, 53, 15, 54, 1, 36, 1, 40, 1, 44, 36,
35112 & 63, 15, 63, 45, 53, 44, 54, 15, 8, 24, 1, 91, 0, 24, 54, 15, 55,
35113 & 8, 36, 1, 37, 8, 40, 1, 41, 8, 44, 1, 45, 36, 64, 37, 63, 15, 64,
35114 & 24, 63, 45, 54, 44, 55, 16, 1, 25, 8, 17, 23, 21, 14, 20,
35115 & 13, 22, 23, 90, 0, 38, 1, 39, 8, 16, 54, 25, 55, 1, 42, 8, 43,
35116 & 16, 63, 25, 64, 39, 64, 38, 63, 46, 54, 47, 55, 8, 47, 1, 46, 52,
35117 & 0, 51, 0, 16, 8, 17, 14, 20, 23, 22, 14, 92, 0, 8, 38, 16, 55,
35118 & 25, 56, 8, 42, 16, 64, 38, 64, 46, 55, 47, 56, 8, 46, 94, 0 /
35119* *
35120* k0 p k0 n ak0 p ak/ n *
35121* *
35122 DATA NRKK0 / 24, 8, 106, 0, 15, 56, 24, 55, 37, 8, 41, 8, 45, 8,
35123 & 37, 64, 24, 64, 44, 56, 45, 55, 25, 1, 17, 13, 22, 13, 21, 23,
35124 & 107, 0, 39, 1, 25, 54, 16, 53, 43, 1, 25, 63, 39, 63, 47, 54, 46,
35125 & 53, 47, 1, 103, 0, 93, 0/
35126* pp pn np nn *
35127 DATA NRKP / 1, 1, 85, 0, 8, 53, 1, 54, 1, 63, 8, 57, 1, 58, 2*54,
35128 & 53, 55, 63, 54, 64, 53, 1, 8, 86, 0, 8, 54, 1, 55, 8, 63, 1, 64,
35129 & 8, 58, 1, 59, 64, 54, 63, 55, 54, 55, 53, 56, 77, 0, 2*8, 95, 0,
35130 & 8, 55, 1, 56, 8, 64, 8, 59, 1, 60, 2*55, 54, 56, 64, 55, 63, 56 /
35131* app apn anp ann *
35132 DATA NRKN/ 1, 2, 17, 18, 15, 16, 8, 9, 13, 14, 99, 0, 87, 0, 1,
35133 & 68, 8, 69, 2, 54, 9, 55, 102, 0, 2, 63, 9, 64, 1, 75, 8, 76, 53,
35134 & 67, 54, 68, 55, 69, 56, 70, 63, 68, 64, 69, 75, 54, 76, 55, 2, 8,
35135 & 18, 20, 16, 24, 14, 23, 101, 0, 88, 0, 2, 55, 9, 56, 1, 67, 8,
35136 & 68, 2, 64, 8, 75, 2, 59, 8, 72, 68, 55, 67, 54, 69, 56, 1, 9, 18,
35137 & 21, 15, 25, 13, 23, 100, 0, 96, 0, 2, 53, 9, 54, 1, 69, 8, 70, 1,
35138 & 76, 9, 63, 1, 73, 9, 58, 55, 70, 53, 68, 54, 69 /
35139**** channel cross section *
35140 DATA SPIKP1/ 0.D0, 300.D0, 40.D0, 20.D0, 13.D0,8.5D0,8.D0, 9.5D0,
35141 & 12.D0,14.D0,15.5D0,20.D0,17.D0,13.D0,10.D0,9.D0,8.5D0,8.D0,7.8D0,
35142 & 7.3D0, 6.7D0, 9*0.D0,.23D0,.35D0,.7D0,.52D0,.4D0,.3D0,.2D0,.15D0,
35143 & .13D0, .11D0, .09D0, .07D0, 0.D0, .033D0,.8D0,1.35D0,1.35D0,.5D0,
35144 & 15*0.D0, 3*0.D0,.00D0,0.80D0,2.2D0,3.6D0,4.6D0,4.7D0,3.5D0,2.4D0,
35145 &1.8D0,1.4D0,.75D0,.47D0,.25D0,.13D0,.08D0,6*0.D0,0.D0,1.2D0,3.3D0,
35146 & 5.4D0,6.9D0,7.3D0,5.3D0,3.6D0,2.7D0,2.2D0,1.1D0,.73D0,.4D0,.22D0,
35147 & .12D0,9*0.D0,.0D0,0.D0,2.0D0,4.4D0,6.8D0,9.9D0,7.9D0,6.0D0,3.8D0,
35148 &2.5D0,2.D0,1.4D0,1.D0,.6D0,.35D0,10*0.D0,.25D0,.55D0,.75D0,1.25D0,
35149 & 1.9D0,2.D0,1.8D0,1.5D0,1.25D0,1.D0,.8D0,6*0.D0,4*0.D0,.4D0,.85D0,
35150 & 1.1D0, 1.85D0, 2.8D0, 3.D0,2.7D0,2.2D0,1.85D0,1.5D0,1.2D0,6*0.D0,
35151 & 6*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0, 5.6D0,
35152 & 5.2D0, 6*0.D0, 2*0.D0, .0D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0,
35153 & 2.75D0, 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 6*0.D0, 3*0.D0,
35154 & .0D0, .45D0, 1.4D0, 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0,
35155 & 8*0.D0, 5*0.D0, .0D0, .0D0, .6D0, .8D0, .95D0, .8D0, .7D0, .6D0,
35156 & .5D0, .4D0, 6*0.D0, 5*0.D0, .0D0, .00D0, .85D0, 1.2D0, 1.4D0,
35157 & 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 6*0.D0, 5*0.D0, .0D0, .00D0,
35158 & 1.D0, 1.5D0, 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 6*0.D0,
35159 & 10*0.D0, .5D0, 2.0D0, 3.3D0, 5.4D0, 7.D0 /
35160**** pi+ n data *
35161 DATA SPIKPU/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 20.D0,
35162 & 20.D0, 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35163 & 10.D0, 10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35164 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35165 & 4.2D0, 7.5D0, 3.4D0, 2.5D0, 2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0,
35166 & .6D0, .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0,
35167 & .48D0, .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0,
35168 & .065D0, .05D0, .04D0, 12*0.D0, .2D0, .25D0, .25D0, .2D0, .1D0,
35169 & .08D0, .06D0, .045D0, .03D0, .02D0, .01D0, .005D0, .003D0,
35170 & 12*0.D0, .3D0, .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0,
35171 & .09D0, .08D0, .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0,
35172 & 3.1D0, 4.5D0, 2.D0, 18*0.D0, 3*.0D0, 0.D0, 0.D0, 4.0D0, 11.D0,
35173 & 11.4D0, 10.3D0, 7.5D0, 6.8D0, 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0,
35174 & .35D0, 13*0.D0, .1D0, .34D0, .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0,
35175 & 2.3D0, 1.6D0, .95D0, .45D0, .28D0, .15D0, 10*0.D0, 2*0.D0, .17D0,
35176 & .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0, 6.2D0, 4.4D0, 3.D0, 1.8D0,
35177 & .9D0, .53D0, .28D0, 10*0.D0, 2*0.D0, .25D0, .82D0,
35178 & 1.3D0, 1.9D0, 2.8D0, 5.5D0 , 8.D0, 5.7D0, 3.9D0, 2.35D0, 1.15D0,
35179 & .69D0, .37D0, 10*0.D0, 7*0.D0, .0D0, .34D0, 1.5D0, 3.47D0,
35180 & 5.87D0, 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35181*
35182 DATA SPIKPV/ 7*0.D0, .00D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35183 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 6*0.D0, 10*0.D0, .2D0,
35184 & .6D0, .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0,
35185 & 1.D0, .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0,
35186 & 3.5D0, 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0,
35187 & .31D0, .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0,
35188 & .23D0, 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0,
35189 & 5.D0, 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0,
35190 & 2.5D0, 3*0.D0, 3*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0,
35191 & 1.5D0, 1.1D0, .8D0, .7D0, .55D0, .3D0, 10*0.D0, 9*0.D0, .1D0,
35192 & .4D0, 1.D0, 1.4D0, 2.2D0, 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0,
35193 & .8D0, .6D0, .4D0, 12*0.D0, .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0,
35194 & 3.8D0, 3.3D0, 2.45D0, 2.05D0, 1.65D0, 1.2D0, .9D0, .6D0, 3*0.D0,
35195 & 9*0.D0, .10D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0,
35196 & 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0, 13*0.D0, .2D0, .5D0, .7D0,
35197 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35198 & 17*0.D0, .2D0, .5D0, .85D0, 2.D0, 2.15D0, 2.05D0, 1.75D0, 1.D0,
35199 & 17*0.D0, .13D0, .33D0, .57D0, 1.33D0, 1.43D0, 1.36D0, 1.17D0,
35200 & .67D0, 17*0.D0, .07D0, .17D0, .28D0, .67D0, .72D0, .69D0, .58D0,
35201 & .33D0,17*0.D0,.4D0, .7D0, 1.D0, 1.6D0, 1.8D0, 2.3D0,1.9D0,1.7D0 /
35202**** pi- p data *
35203 DATA SPIKPW/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 2*20.D0,
35204 & 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35205 & 2*10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35206 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35207 & 4.2D0, 7.5D0, 3.4D0, 2*2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0, .6D0,
35208 & .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0, .48D0,
35209 & .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0, .065D0,
35210 & .05D0, .04D0, 12*0.D0, .2D0, 2*.25D0, .2D0, .1D0, .08D0, .06D0,
35211 & .045D0, .03D0, .02D0, .01D0, .005D0, .003D0, 12*0.D0, .3D0,
35212 & .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0, .09D0, .08D0,
35213 & .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0, 3.1D0, 4.5D0,
35214 & 2.D0, 23*0.D0, 4.0D0, 11.D0, 11.4D0, 10.3D0, 7.5D0, 6.8D0,
35215 & 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0, .35D0, 13*0.D0, .1D0, .34D0,
35216 & .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0, 2.3D0, 1.6D0, .95D0, .45D0,
35217 & .28D0, .15D0, 12*0.D0, .17D0, .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0,
35218 & 6.2D0, 4.4D0, 3.D0, 1.8D0, .9D0, .53D0, .28D0, 12*0.D0, .25D0,
35219 & .82D0, 1.3D0, 1.9D0, 2.8D0, 5.5D0, 8.D0, 5.7D0, 3.9D0, 2.35D0,
35220 & 1.15D0, .69D0, .37D0, 18*0.D0, .34D0, 1.5D0, 3.47D0, 5.87D0,
35221 & 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35222*
35223 DATA SPIKPX/ 8*0.D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35224 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 16*0.D0, .2D0, .6D0,
35225 & .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0, 1.D0,
35226 & .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0, 3.5D0,
35227 & 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0, .31D0,
35228 & .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0, .23D0,
35229 & 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0, 5.D0,
35230 & 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0, 2.5D0,
35231 & 6*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0, 1.5D0, 1.1D0,
35232 & .8D0, .7D0, .55D0, .3D0, 19*0.D0, .1D0, .4D0, 1.D0, 1.4D0, 2.2D0,
35233 & 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0, .8D0, .6D0, .4D0, 12*0.D0,
35234 & .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0, 3.8D0, 3.3D0, 2.45D0, 2.05D0,
35235 & 1.65D0, 1.2D0, .9D0, .6D0, 12*0.D0, .10D0, .2D0, .5D0, .7D0,
35236 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35237 & 13*0.D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0,
35238 & 1.35D0, 1.15D0, .95D0, .7D0, 17*0.D0, .2D0, .5D0, .85D0, 2.D0,
35239 & 2.15D0, 2.05D0, 1.75D0, 1.D0, 17*0.D0, .13D0, .33D0, .57D0,
35240 & 1.33D0, 1.43D0, 1.36D0, 1.17D0, .67D0, 17*0.D0, .07D0, .17D0,
35241 & .28D0, .67D0, .72D0, .69D0, .58D0, .33D0, 17*0.D0, .4D0, .7D0,
35242 & 1.D0, 1.6D0, 1.8D0, 2.3D0, 1.9D0, 1.7D0 /
35243**** pi- n data *
35244 DATA SPIKP4 / 0.D0, 300.D0, 40.D0, 20.D0, 13.D0, 8.5D0, 8.D0,
35245 & 9.5D0, 12.D0, 14.D0, 15.5D0, 20.D0, 17.D0, 13.D0, 10.D0, 9.D0,
35246 & 8.5D0, 8.D0, 7.8D0, 7.3D0, 6.7D0, 9*0.D0, .23D0, .35D0, .7D0,
35247 & .52D0, .4D0, .3D0, .2D0, .15D0, .13D0, .11D0, .09D0, .07D0, 0.D0,
35248 & .033D0, .8D0, 2*1.35D0, .5D0, 19*0.D0, 0.8D0, 2.2D0, 3.6D0,
35249 & 4.6D0, 4.7D0, 3.5D0, 2.4D0, 1.8D0, 1.4D0, .75D0, .47D0, .25D0,
35250 & .13D0, .08D0, 7*0.D0, 1.2D0, 3.3D0, 5.4D0, 6.9D0, 7.3D0, 5.3D0,
35251 & 3.6D0, 2.7D0, 2.2D0, 1.1D0, .73D0, .4D0, .22D0, .12D0, 11*0.D0,
35252 & 2.0D0, 4.4D0, 6.8D0, 9.9D0, 7.9D0, 6.0D0, 3.8D0, 2.5D0, 2.D0,
35253 & 1.4D0, 1.D0, .6D0, .35D0, 10*0.D0, .25D0, .55D0, .75D0, 1.25D0,
35254 & 1.9D0, 2.D0, 1.8D0, 1.5D0, 1.25D0, 1.D0, .8D0, 10*0.D0, .4D0,
35255 & .85D0, 1.1D0, 1.85D0, 2.8D0, 3.D0, 2.7D0, 2.2D0, 1.85D0, 1.5D0,
35256 & 1.2D0, 12*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0,
35257 & 5.6D0, 5.2D0, 9*0.D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0, 2.75D0,
35258 & 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 10*0.D0, .45D0, 1.4D0,
35259 & 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0, 15*0.D0, .6D0,
35260 & .8D0, .95D0, .8D0, .7D0, .6D0, .5D0, .4D0, 13*0.D0, .85D0, 1.2D0,
35261 & 1.4D0, 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 13*0.D0, 1.D0, 1.5D0,
35262 & 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 16*0.D0, .5D0, 2.0D0,
35263 & 3.3D0, 5.4D0, 7.D0 /
35264**** k+ p data *
35265 DATA SPIKP5/ 0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0,
35266 & 7.D0, 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35267 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 13*0.D0, 0.9D0,
35268 & 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0,
35269 & .45D0, .21D0, .2D0, 3*0.D0, .9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35270 & 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35271 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0, 1.4D0,
35272 & 1.2D0, 1.05D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0, 2*1.D0, .9D0,
35273 & .7D0, .4D0, .3D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.2D0,
35274 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35275 & 1.71D0, 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0,
35276 & 3.5D0, 2.85D0, 2.35D0, 2.01D0, 1.8D0, 12*0.D0, .1D0, .8D0,2.05D0,
35277 & 3.31D0, 3.5D0, 12*0.D0, .034D0, .2D0, .75D0, 1.04D0, 1.24D0 /
35278**** k+ n data *
35279 DATA SPIKP6/ 0.D0, 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0,
35280 & 1.5D0, 1.2D0, 1.D0, .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0,
35281 & 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0, 1.5D0, 1.2D0, 1.D0,
35282 & .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0, .5D0, 1.3D0, 2.8D0,
35283 & 2.3D0, 1.6D0, .9D0, 13*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35284 & 2.D0, 1.7D0, 1.5D0,1.2D0,.9D0,.6D0,.45D0,.21D0,.2D0,3*0.D0,0.9D0,
35285 & 2.5D0, 3.D0, 2.5D0, 2.3D0,2.D0,1.7D0,1.5D0,1.2D0,.9D0,.6D0,.45D0,
35286 & .21D0, .2D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.D0,1.8D0,1.7D0,1.4D0,
35287 & 1.2D0,1.15D0,.9D0,.66D0,.5D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.1D0,
35288 & 1.8D0,1.7D0,1.4D0,1.2D0, 1.15D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0,
35289 & 2*1.D0, .9D0, .7D0, .4D0, .35D0, .2D0, 9*0.D0, .3D0, 2*1.D0,.9D0,
35290 & .7D0, .4D0, .35D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.4D0,3.5D0,4.25D0,
35291 & 4.55D0, 4.85D0, 4.9D0, 9*0.D0, .1D0, 1.D0, 2.4D0, 3.5D0, 4.25D0,
35292 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35293 & 1.71D0, 1.6D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0,
35294 & 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0,4.4D0,4.D0,3.5D0,2.85D0,
35295 & 2.35D0, 2.01D0, 1.8D0, 6*0.D0, 1.4D0,3.8D0,5.D0,4.7D0,4.4D0,4.D0,
35296 & 3.5D0,2.85D0,2.35D0,2.01D0,1.8D0,12*0.D0,.1D0,.8D0,2.05D0,3.31D0,
35297 & 3.5D0, 12*0.D0, .034D0,.2D0,.75D0,1.04D0,1.24D0 /
35298**** k- p data *
35299 DATA SKMPEL/ 0.D0, 35.D0, 22.D0, 25.D0, 17.D0, 9.D0, 9.5D0, 8.D0,
35300 & 7.D0, 6.5D0, 6.1D0, 5.D0, 4.8D0, 4.6D0, 4.45D0, 4.3D0, 4.2D0,
35301 & 0.D0, 8.D0, 3.5D0, 8.D0, 3.D0, 1.9D0, 1.7D0, 1.D0, .9D0, .8D0,
35302 & .75D0, .5D0, .42D0, .38D0, .34D0, .25D0, .2D0,
35303 & 0.D0, 3.D0, 3.2D0, 3.5D0, 1.5D0, 1.4D0, 1.1D0, .6D0, .5D0,
35304 & .35D0, .28D0, .25D0, .18D0, .12D0, .1D0, .08D0, .04D0,
35305 & 0.D0, 8.5D0, 2.4D0, 1.7D0, 1.3D0, 1.3D0, 1.1D0, .5D0,
35306 & .4D0, .4D0, .35D0, .3D0, .28D0, .2D0, .16D0, .13D0, .11D0,
35307 & 0.D0, 7.D0, 4.8D0, 1.4D0, 1.9D0, .9D0, .4D0, .2D0, .13D0,
35308 & .1D0, .08D0, .06D0, .04D0, .02D0, .015D0, .01D0, .01D0,
35309 & 0.D0, 5.5D0, 1.D0, .8D0, .75D0, .32D0, .2D0, .1D0, .09D0,
35310 & .08D0, .065D0, .05D0, .04D0, .022D0, .017D0, 2*.01D0/
35311 DATA SPIKP7 / 0.D0, .56D0, 1.46D0, 3.16D0, 2.01D0, 1.28D0, .74D0,
35312 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35313 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 4*0.D0,
35314 & 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0, 1.57D0,
35315 & 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0, 3.03D0,
35316 & 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0,
35317 & .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0, 2.8D0,
35318 & 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0,
35319 & .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35320 & .45D0, .39D0, .22D0, .07D0, 0.D0, 7*0.D0, .34D0, 1.12D0, 1.12D0,
35321 & 1.01D0, .78D0, .45D0, .39D0, .22D0, .07D0, 0.D0, 6*0.D0, 1.71D0,
35322 & 4.26D0, 5.6D0, 5.57D0, 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0,
35323 & 2.25D0, 2.D0, 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35324 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0, .22D0,
35325 & .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 10*0.D0, .22D0, .8D0,
35326 & .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0, .3D0, .7D0,1.D0,
35327 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0, 1.72D0, 2.69D0,
35328 & 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 9*0.D0, .11D0, 1.72D0,
35329 & 2.69D0, 3.92D0, 4.76D0, 5.1D0, 5.44D0, 5.3D0, 5*0.D0,9.2D0,4.7D0,
35330 & 1.9D0, 10*0.D0, 2.5D0, 15.D0, 21.5D0, 15.3D0, 3.D0, 1.5D0,
35331 & 10*0.D0/
35332***** k- n data *
35333 DATA SKMNEL/0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35334 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0,
35335 & 0.D0, 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0,
35336 & 1.9D0, .9D0, .5D0, .3D0, .24D0, .2D0, .18D0, .1D0, .09D0,
35337 & 0.D0, 1.8D0, 2.D0, 1.1D0, .9D0, .5D0, .5D0, .4D0, .4D0,
35338 & .2D0, .1D0, .06D0, .05D0, .04D0, .03D0, .02D0, .02D0,
35339 & 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0, .7D0, .65D0,
35340 & .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0, .03D0/
35341 DATA SPIKP8/0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35342 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35343 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0,
35344 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35345 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35346 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35347 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35348 & 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0, .45D0,
35349 & .39D0, .22D0, .07D0, 0.D0,
35350 & 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35351 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0,
35352 & 10*0.D0, .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0,
35353 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35354 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35355 & 9*0.D0, .11D0, 1.72D0, 2.69D0, 3.92D0, 4.76D0,
35356 & 5.10D0, 5.44D0, 5.3D0,
35357 & 4*0.D0, 0.00D0, 9.2D0, 4.7D0, 1.9D0, 9*0.D0/
35358***** p p data *
35359 DATA SPIKP9/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35360 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35361 & 0.D0, 3.6D0, 1.7D0, 10*0.D0,
35362 & .0D0, 0.D0, 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35363 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35364 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35365 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35366 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35367 & 16.9D0, 16.5D0, 11.D0, 5.5D0, 3.5D0,
35368 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35369 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35370 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35371 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35372 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35373 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35374***** p n data *
35375 DATA SPIKP0/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35376 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35377 & 0.D0, 1.8D0, .2D0, 12*0.D0,
35378 & 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35379 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35380 & 2*.0D0, 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35381 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35382 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35383 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35384 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35385 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35386 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35387 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35388 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35389 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35390 & 7*0.D0, 1.2D0, 2.5D0, 3.5D0, 6.D0, 5.3D0, 2.9D0,
35391 & 7*0.D0, 1.7D0, 3.6D0, 5.4D0, 9.D0, 7.6D0, 4.2D0,
35392 & 5*0.D0, 7.7D0, 6.1D0, 2.9D0, 5*0.D0/
35393* nn - data *
35394* *
35395 DATA SPKPV/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35396 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35397 & 0.D0, 3.6D0, 1.7D0, 12*0.D0,
35398 & 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35399 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35400 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35401 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35402 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0, 16.9D0, 16.5D0,
35403 & 11.D0, 5.5D0, 3.5D0,
35404 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35405 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35406 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35407 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35408 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35409 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35410**************** ap - p - data *
35411 DATA SAPPEL/ 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35412 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35413 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35414 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35415 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35416 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35417 & 0.D0, 55.D0, 50.D0, 25.D0, 15.D0, 15.D0, 14.D0, 12.D0,
35418 & 10.D0, 7.D0, 6.D0, 4.D0, 3.3D0, 2.8D0, 2.4D0, 2.D0, 1.8D0,
35419 & 1.55D0, 1.3D0, .95D0, .75D0,
35420 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35421 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35422 & .01D0, .008D0, .006D0, .005D0/
35423 DATA SPIKPE/0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35424 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35425 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0,
35426 & 9*0.D0, 2.D0, 2.5D0, .2D0, 19*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0,
35427 & 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0, .3D0, 1.4D0,
35428 & 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0,
35429 & .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0,
35430 & .3D0, 10*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0,
35431 & .6D0, .5D0, .4D0, .3D0, 9*0.D0, .6D0, 2.5D0, 5.D0, 5.2D0, 5.1D0,
35432 & 5.4D0, 5.8D0, 2.8D0, 2.1D0, 1.8D0, 1.6D0, 1.2D0, 13*0.D0, 1.3D0,
35433 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35434 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35435 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35436 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 14*0.D0, .2D0,
35437 & .5D0, 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0,
35438 & 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0,
35439 & 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0, 1.6D0,
35440 & 1.4D0, 1.1D0, .9D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0,
35441 & .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0,
35442 & 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0 /
35443**************** ap - n - data *
35444 DATA SAPNEL/
35445 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35446 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35447 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35448 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0,
35449 & .85D0, 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0,
35450 & .14D0, .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35451 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35452 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35453 & .01D0, .008D0, .006D0, .005D0 /
35454 DATA SPIKPZ/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35455 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35456 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35457 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35458 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35459 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35460 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35461 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35462 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35463 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35464 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35465 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35466 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35467 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35468* *
35469* *
35470**************** an - p - data *
35471* *
35472 DATA SANPEL/
35473 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0, 50.D0,
35474 & 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35475 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0, .05D0,
35476 & .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35477 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35478 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35479 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0, .25D0,
35480 & .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35481 & .01D0, .008D0, .006D0, .005D0 /
35482 DATA SPIKPF/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35483 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35484 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35485 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35486 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35487 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35488 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35489 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35490 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35491 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35492 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35493 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35494 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35495 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35496**** ko - n - data *
35497 DATA SPKP15/0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0, 7.D0,
35498 & 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35499 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 10*0.D0,
35500 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35501 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35502 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35503 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35504 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0,
35505 & 1.4D0, 1.2D0, 1.05D0, .9D0, .66D0, .5D0,
35506 & 7*0.D0, .3D0, 1.D0, 1.D0, .9D0, .7D0, .4D0, .30D0, .2D0,
35507 & 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.20D0, 4.55D0,
35508 & 4.85D0, 4.9D0,
35509 & 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0, 1.6D0,
35510 & 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0, 3.5D0,
35511 & 2.85D0, 2.35D0, 2.01D0, 1.8D0,
35512 & 12*0.D0, .1D0, .8D0, 2.05D0, 3.31D0, 3.5D0,
35513 & 12*0.D0, .034D0, .20D0, .75D0, 1.04D0, 1.24D0 /
35514**** ako - p - data *
35515 DATA SPKP16/ 0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35516 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0, 0.D0,
35517 & 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0, 1.9D0, .9D0, .5D0,
35518 & .3D0, .24D0, .2D0, .18D0, .1D0, .09D0, 0.D0, 1.8D0, 2.D0, 1.1D0,
35519 & .9D0, .5D0, .5D0, .4D0, .4D0, .2D0, .1D0, .06D0, .05D0, .04D0,
35520 & .03D0, .02D0, .02D0, 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0,
35521 & .7D0, .65D0, .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0,
35522 & .03D0, 0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35523 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0,
35524 & 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0,
35525 & 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0,
35526 & 1.01D0, .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0,
35527 & 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0,
35528 & .5D0, .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35529 & .45D0, .39D0, .22D0, .07D0, 7*0.D0, 1.71D0, 4.26D0, 5.6D0,5.57D0,
35530 & 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0,
35531 & .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0,
35532 & .3D0, .7D0, 1.D0, 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0,
35533 & 1.72D0, 2.69D0, 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 5*0.D0,
35534 & 9.2D0, 4.7D0, 1.9D0, 9*0.D0, .0D0,2.5D0,15.D0,
35535 & 21.5D0, 15.3D0, 3.D0, 1.5D0, 10*0.D0 /
35536 DATA NURELN/9, 12, 5*0, 10, 14, 3*0, 1, 3, 5, 7, 6*0, 2, 6, 16,
35537 & 5*0, 10, 13, 5*0, 11, 12, 3*0, 2, 4, 6, 8, 6*0, 3, 15, 7, 5*0 /
35538*= end*block.blkdt3 *
35539 END
35540
35541*$ CREATE DT_QEL_POL.FOR
35542*COPY DT_QEL_POL
35543*
35544*===qel_pol============================================================*
35545*
35546 SUBROUTINE DT_QEL_POL(ENU,LTYP,P21,P22,P23,P24,P25)
35547
35548 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35549 SAVE
35550
35551 CALL DT_MASS_INI
35552 CALL DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35553
35554 RETURN
35555 END
35556
35557*$ CREATE DT_GEN_QEL.FOR
35558*COPY DT_GEN_QEL
35559C==================================================================
35560C Generation of a Quasi-Elastic neutrino scattering
35561C==================================================================
35562*
35563*===gen_qel============================================================*
35564*
35565 SUBROUTINE DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35566
35567C...Generate a quasi-elastic neutrino/antineutrino
35568C. Interaction on a nuclear target
35569C. INPUT : LTYP = neutrino type (1,...,6)
35570C. ENU (GeV) = neutrino energy
35571C----------------------------------------------------
35572
35573 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35574 SAVE
35575
35576 PARAMETER ( LINP = 10 ,
35577 & LOUT = 6 ,
35578 & LDAT = 9 )
35579 PARAMETER (MAXLND=4000)
35580 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
35581* nuclear potential
35582 LOGICAL LFERMI
35583 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
35584 & EBINDP(2),EBINDN(2),EPOT(2,210),
35585 & ETACOU(2),ICOUL,LFERMI
35586* steering flags for qel neutrino scattering modules
35587 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
35588**sr - removed (not needed)
35589C COMMON /CBAD/ LBAD, NBAD
35590C COMMON /CNUC/ XMN,XMN2,PFERMI,EFERMI,EBIND,EB2,C0
35591**
35592
35593 DIMENSION PI(3),PO(3)
35594CJR+
35595 DATA ININU/0/
35596CJR-
35597C REAL*8 DBETA(3)
35598C REAL*8 MN(2), ML0(6), ML, ML2, MI, MI2, MF, MF2
35599 DIMENSION DBETA(3),DBETB(3),AMN(2),AML0(6)
35600 DATA AMN /0.93827231D0, 0.93956563D0/
35601 DATA AML0 /2*0.51100D-03,2*0.105659D0, 2*1.777D0/
35602 DATA INIPRI/0/
35603
35604C DATA PFERMI/0.22D0/
35605CGB+...Binding Energy
35606 DATA EBIND/0.008D0/
35607CGB-...
35608
35609 ININU=ININU+1
35610 IF(ININU.EQ.1)NDSIG=0
35611 LBAD = 0
35612 enu0=enu
35613c write(*,*) enu0
35614C...Lepton mass
35615 AML = AML0(LTYP) ! massa leptoni
35616 AML2 = AML**2 ! massa leptoni **2
35617C...Particle labels (LUND)
35618 N = 5
35619 K(1,1) = 21
35620 K(2,1) = 21
35621 K(3,1) = 21
35622 K(3,3) = 1
35623 K(4,1) = 1
35624 K(4,3) = 1
35625 K(5,1) = 1
35626 K(5,3) = 2
35627 K0 = (LTYP-1)/2 ! 2
35628 K1 = LTYP/2 ! 2
35629 KA = 12 + 2*K0 ! 16
35630 IS = -1 + 2*LTYP - 4*K1 ! -1 +10 -8 = 1
35631 K(1,2) = IS*KA
35632 K(4,2) = IS*(KA-1)
35633 K(3,2) = IS*24
35634 LNU = 2 - LTYP + 2*K1 ! 2 - 5 + 2 = - 1
35635 IF (LNU .EQ. 2) THEN
35636 K(2,2) = 2212
35637 K(5,2) = 2112
35638 AMI = AMN(1)
35639 AMF = AMN(2)
35640CJR+
35641 PFERMI=PFERMN(2)
35642CJR-
35643 ELSE
35644 K(2,2) = 2112
35645 K(5,2) = 2212
35646 AMI = AMN(2)
35647 AMF = AMN(1)
35648CJR+
35649 PFERMI=PFERMP(2)
35650CJR-
35651 ENDIF
35652 AMI2 = AMI**2
35653 AMF2 = AMF**2
35654
35655 DO IGB=1,5
35656 P(3,IGB) = 0.
35657 P(4,IGB) = 0.
35658 P(5,IGB) = 0.
35659 END DO
35660
35661 NTRY = 0
35662CGB+...
35663 EFMAX = SQRT(PFERMI**2 + AMI2) -AMI ! max. Fermi Energy
35664 ENWELL = EFMAX + EBIND ! depth of nuclear potential well
35665CGB-...
35666
35667 100 CONTINUE
35668
35669C...4-momentum initial lepton
35670 P(1,5) = 0. ! massa
35671 P(1,4) = ENU0 ! energia
35672 P(1,1) = 0. ! px
35673 P(1,2) = 0. ! py
35674 P(1,3) = ENU0 ! pz
35675
35676C PF = PFERMI*PYR(0)**(1./3.)
35677c write(23,*) PYR(0)
35678c write(*,*) 'Pfermi=',PF
35679c PF = 0.
35680 NTRY=NTRY+1
35681C IF(ntry.GT.2) WRITE(*,*) ntry,enu0,k2
35682 IF (NTRY .GT. 500) THEN
35683 LBAD = 1
35684 WRITE (LOUT,1001) NBAD, ENU
35685 RETURN
35686 ENDIF
35687C CT = -1. + 2.*PYR(0)
35688c CT = -1.
35689C ST = SQRT(1.-CT*CT)
35690C F = 2.*3.1415926*PYR(0)
35691c F = 0.
35692
35693C P(2,4) = SQRT(PF*PF + MI2) - EBIND ! energia
35694C P(2,1) = PF*ST*COS(F) ! px
35695C P(2,2) = PF*ST*SIN(F) ! py
35696C P(2,3) = PF*CT ! pz
35697C P(2,5) = SQRT(P(2,4)**2-PF*PF) ! massa
35698 P(2,1) = P21
35699 P(2,2) = P22
35700 P(2,3) = P23
35701 P(2,4) = P24
35702 P(2,5) = P25
35703 beta1=-p(2,1)/p(2,4)
35704 beta2=-p(2,2)/p(2,4)
35705 beta3=-p(2,3)/p(2,4)
35706 N=2
35707C WRITE(6,*)' before transforming into target rest frame'
35708 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
35709C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
35710 N=5
35711
35712 phi11=atan(p(1,2)/p(1,3))
35713 pi(1)=p(1,1)
35714 pi(2)=p(1,2)
35715 pi(3)=p(1,3)
35716
35717 CALL DT_TESTROT(PI,Po,PHI11,1)
35718 DO ll=1,3
35719 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35720 END DO
35721c WRITE(*,*) po
35722 p(1,1)=po(1)
35723 p(1,2)=po(2)
35724 p(1,3)=po(3)
35725 phi12=atan(p(1,1)/p(1,3))
35726
35727 pi(1)=p(1,1)
35728 pi(2)=p(1,2)
35729 pi(3)=p(1,3)
35730 CALL DT_TESTROT(Pi,Po,PHI12,2)
35731 DO ll=1,3
35732 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35733 END DO
35734c WRITE(*,*) po
35735 p(1,1)=po(1)
35736 p(1,2)=po(2)
35737 p(1,3)=po(3)
35738
35739 enu=p(1,4)
35740
35741C...Kinematical limits in Q**2
35742c S = P(2,5)**2 + 2.*ENU*(P(2,4)-P(2,3)) ! ????
35743 S = P(2,5)**2 + 2.*ENU*P(2,5)
35744 SQS = SQRT(S) ! E centro massa
35745 IF (SQS .LT. (AML + AMF + 3.E-03)) GOTO 100
35746 ELF = (S-AMF2+AML2)/(2.*SQS) ! energia leptone finale p
35747 PSTAR = (S-P(2,5)**2)/(2.*SQS) ! p* neutrino nel c.m.
35748 PLF = SQRT(ELF**2-AML2) ! 3-momento leptone finale
35749 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF) ! + o -
35750 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF) ! according con cos(theta)
35751 IF (Q2MIN .LT. 0.) Q2MIN = 0. ! ??? non fisico
35752
35753C...Generate Q**2
35754 DSIGMAX = DT_DSQEL_Q2 (LTYP,ENU, Q2MIN)
35755 200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
35756 DSIG = DT_DSQEL_Q2 (LTYP,ENU, Q2)
35757 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
35758 CALL DT_QGAUS(Q2MIN,Q2MAX,DSIGEV,ENU,LTYP)
35759 NDSIG=NDSIG+1
35760C WRITE(6,*)' Q2,Q2min,Q2MAX,DSIGEV',
35761C &Q2,Q2min,Q2MAX,DSIGEV
35762
35763C...c.m. frame. Neutrino along z axis
35764 DETOT = (P(1,4)) + (P(2,4)) ! e totale
35765 DBETA(1) = ((P(1,1)) + (P(2,1)))/DETOT ! px1+px2/etot = beta_x
35766 DBETA(2) = ((P(1,2)) + (P(2,2)))/DETOT !
35767 DBETA(3) = ((P(1,3)) + (P(2,3)))/DETOT !
35768c WRITE(*,*)
35769c WRITE(*,*)
35770C WRITE(*,*) 'Input values laboratory frame'
35771 N=2
35772
35773 CALL PYROBO(0,0,0.0D0,0.0D0,-DBETA(1),-DBETA(2),-DBETA(3))
35774
35775 N=5
35776c STHETA = ULANGL(P(1,3),P(1,1))
35777c write(*,*) 'stheta' ,stheta
35778c stheta=0.
35779c CALL PYROBO (0,0,-STHETA,0.,0.D0,0.D0,0.D0)
35780c WRITE(*,*)
35781c WRITE(*,*)
35782C WRITE(*,*) 'Output values cm frame'
35783C...Kinematic in c.m. frame
35784 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF) ! cos(theta) cm
35785 STSTAR = SQRT(1.-CTSTAR**2)
35786 PHI = 6.28319*PYR(0) ! random phi tra 0 e 2*pi
35787 P(4,5) = AML ! massa leptone
35788 P(4,4) = ELF ! e leptone
35789 P(4,3) = PLF*CTSTAR ! px
35790 P(4,1) = PLF*STSTAR*COS(PHI) ! py
35791 P(4,2) = PLF*STSTAR*SIN(PHI) ! pz
35792
35793 P(5,5) = AMF ! barione
35794 P(5,4) = (S+AMF2-AML2)/(2.*SQS)! e barione
35795 P(5,3) = -P(4,3) ! px
35796 P(5,1) = -P(4,1) ! py
35797 P(5,2) = -P(4,2) ! pz
35798
35799 P(3,5) = -Q2
35800 P(3,1) = P(1,1)-P(4,1)
35801 P(3,2) = P(1,2)-P(4,2)
35802 P(3,3) = P(1,3)-P(4,3)
35803 P(3,4) = P(1,4)-P(4,4)
35804
35805C...Transform back to laboratory frame
35806C WRITE(*,*) 'before going back to nucl rest frame'
35807c CALL PYROBO (0,0,STHETA,0.,0.D0,0.D0,0.D0)
35808 N=5
35809
35810 CALL PYROBO(0,0,0.0D0,0.0D0,DBETA(1),DBETA(2),DBETA(3))
35811
35812C WRITE(*,*) 'Now back in nucl rest frame'
35813 IF(LTYP.GE.3) CALL DT_PREPOLA(Q2,LTYP,ENU)
35814
35815c********************************************
35816
35817 DO kw=1,5
35818 pi(1)=p(kw,1)
35819 pi(2)=p(kw,2)
35820 pi(3)=p(kw,3)
35821 CALL DT_TESTROT(Pi,Po,PHI12,3)
35822 DO ll=1,3
35823 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35824 END DO
35825 p(kw,1)=po(1)
35826 p(kw,2)=po(2)
35827 p(kw,3)=po(3)
35828 END DO
35829c********************************************
35830
35831 DO kw=1,5
35832 pi(1)=p(kw,1)
35833 pi(2)=p(kw,2)
35834 pi(3)=p(kw,3)
35835 CALL DT_TESTROT(Pi,Po,PHI11,4)
35836 DO ll=1,3
35837 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35838 END DO
35839 p(kw,1)=po(1)
35840 p(kw,2)=po(2)
35841 p(kw,3)=po(3)
35842 END DO
35843
35844c********************************************
35845
35846C WRITE(*,*) 'Now back in lab frame'
35847
35848 CALL PYROBO(1,5,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
35849
35850CGB+...
35851C...test (on final momentum of nucleon) if Fermi-blocking
35852C...is operating
35853 ENUCL = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2 + P(5,5)**2)
35854 & - P(5,5)
35855 IF (ENUCL.LT. EFMAX) THEN
35856 IF(INIPRI.LT.10)THEN
35857 INIPRI=INIPRI+1
35858C WRITE(6,*)' qel: Pauli ENUCL.LT.EFMAX ', ENUCL,EFMAX
35859C...the interaction is not possible due to Pauli-Blocking and
35860C...it must be resampled
35861 ENDIF
35862 GOTO 100
35863 ELSE IF (ENUCL.LT.ENWELL.and.ENUCL.GE.EFMAX) THEN
35864 IF(INIPRI.LT.10)THEN
35865 INIPRI=INIPRI+1
35866C WRITE(6,*)' qel: inside ENUCL.LT.ENWELL ', ENUCL,ENWELL
35867 ENDIF
35868C Reject (J:R) here all these events
35869C are otherwise rejected in dpmjet
35870 GOTO 100
35871C...the interaction is possible, but the nucleon remains inside
35872C...the nucleus. The nucleus is therefore left excited.
35873C...We treat this case as a nucleon with 0 kinetic energy.
35874C P(5,5) = AMF
35875C P(5,4) = AMF
35876C P(5,1) = 0.
35877C P(5,2) = 0.
35878C P(5,3) = 0.
35879 ELSE IF (ENUCL.GE.ENWELL) THEN
35880C WRITE(6,*)' qel ENUCL.GE.ENWELL ',ENUCL,ENWELL
35881C...the interaction is possible, the nucleon can exit the nucleus
35882C...but the nuclear well depth must be subtracted. The nucleus could be
35883C...left in an excited state.
35884 Pstart = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2)
35885C P(5,4) = ENUCL-ENWELL + AMF
35886 Pnucl = SQRT(P(5,4)**2-AMF**2)
35887C...The 3-momentum is scaled assuming that the direction remains
35888C...unaffected
35889 P(5,1) = P(5,1) * Pnucl/Pstart
35890 P(5,2) = P(5,2) * Pnucl/Pstart
35891 P(5,3) = P(5,3) * Pnucl/Pstart
35892C WRITE(6,*)' qel new P(5,4) ',P(5,4)
35893 ENDIF
35894CGB-...
35895 DSIGSU=DSIGSU+DSIGEV
35896
35897 GA=P(4,4)/P(4,5)
35898 BGX=P(4,1)/P(4,5)
35899 BGY=P(4,2)/P(4,5)
35900 BGZ=P(4,3)/P(4,5)
35901*
35902 DBETB(1)=BGX/GA
35903 DBETB(2)=BGY/GA
35904 DBETB(3)=BGZ/GA
35905 IF(NEUDEC.EQ.1.OR.NEUDEC.EQ.2) THEN
35906
35907 CALL PYROBO(6,8,0.0D0,0.0D0,DBETB(1),DBETB(2),DBETB(3))
35908
35909 ENDIF
35910c
35911C PRINT*,' FINE EVENTO '
35912 enu=enu0
35913 RETURN
35914
35915 1001 FORMAT(2X, 'DT_GEN_QEL : event rejected ', I5, G10.3)
35916 END
35917
35918*$ CREATE DT_MASS_INI.FOR
35919*COPY DT_MASS_INI
35920C====================================================================
35921C. Masses
35922C====================================================================
35923*
35924*===mass_ini===========================================================*
35925*
35926 SUBROUTINE DT_MASS_INI
35927C...Initialize the kinematics for the quasi-elastic cross section
35928
35929 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35930 SAVE
35931
35932* particle masses used in qel neutrino scattering modules
35933 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
35934 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
35935 & EMPROTSQ,EMNEUTSQ,EMNSQ
35936
35937 EML(1) = 0.51100D-03 ! e-
35938 EML(2) = EML(1) ! e+
35939 EML(3) = 0.105659D0 ! mu-
35940 EML(4) = EML(3) ! mu+
35941 EML(5) = 1.7777D0 ! tau-
35942 EML(6) = EML(5) ! tau+
35943 EMPROT = 0.93827231D0 ! p
35944 EMNEUT = 0.93956563D0 ! n
35945 EMPROTSQ = EMPROT**2
35946 EMNEUTSQ = EMNEUT**2
35947 EMN = (EMPROT + EMNEUT)/2.
35948 EMNSQ = EMN**2
35949 DO J=1,3
35950 J0 = 2*(J-1)
35951 EMN1(J0+1) = EMNEUT
35952 EMN1(J0+2) = EMPROT
35953 EMN2(J0+1) = EMPROT
35954 EMN2(J0+2) = EMNEUT
35955 ENDDO
35956 DO J=1,6
35957 EMLSQ(J) = EML(J)**2
35958 ETQE(J) = ((EMN2(J)+ EML(J))**2-EMN1(J)**2)/(2.*EMN1(J))
35959 ENDDO
35960 RETURN
35961 END
35962
35963*$ CREATE DT_DSQEL_Q2.FOR
35964*COPY DT_DSQEL_Q2
35965*
35966*===dsqel_q2===========================================================*
35967*
35968 DOUBLE PRECISION FUNCTION DT_DSQEL_Q2 (JTYP,ENU, Q2)
35969
35970C...differential cross section for Quasi-Elastic scattering
35971C. nu + N -> l + N'
35972C. From Llewellin Smith Phys.Rep. 3C, 261, (1971).
35973C.
35974C. INPUT : JTYP = 1,...,6 nu_e, ...., nubar_tau
35975C. ENU (GeV) = Neutrino energy
35976C. Q2 (GeV**2) = (Transfer momentum)**2
35977C.
35978C. OUTPUT : DSQEL_Q2 = differential cross section :
35979C. dsigma/dq**2 (10**-38 cm+2/GeV**2)
35980C------------------------------------------------------------------
35981
35982 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35983 SAVE
35984
35985* particle masses used in qel neutrino scattering modules
35986 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
35987 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
35988 & EMPROTSQ,EMNEUTSQ,EMNSQ
35989**sr - removed (not needed)
35990C COMMON /CAXIAL/ FA0, AXIAL2
35991**
35992
35993 DIMENSION SS(6)
35994 DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
35995 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
35996 DATA AXIAL2 /1.03D0/ ! to be checked
35997
35998 FA0=-1.253D0
35999 CSI = 3.71D0 ! ???
36000 GVE = 1.D0/ (1.D0 + Q2/0.84D0**2)**2 ! G_e(q**2)
36001 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
36002 X = Q2/(EMN*EMN) ! emn=massa barione
36003 XA = X/4.D0
36004 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
36005 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
36006 FA = FA0/(1.D0 + Q2/AXIAL2)**2
36007 FFA = FA*FA
36008 FFV1 = FV1*FV1
36009 FFV2 = FV2*FV2
36010 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36011 A1 = (4.D0+X)*FFA - (4.D0-X)*FFV1 + X*FFV2*(1.D0-XA)+4*X*FV1*FV2
36012 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36013 AA = (XA+0.25D0*RM)*(A1 + A2)
36014 BB = -X*FA*(FV1 + FV2)
36015 CC = 0.25D0*(FFA + FFV1 + XA*FFV2)
36016 SU = (4.D0*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36017 DT_DSQEL_Q2 = C0*(AA + SS(JTYP)*BB*SU + CC*SU*SU) / (ENU*ENU) !
36018 IF(DT_DSQEL_Q2 .LT. 0.D0) DT_DSQEL_Q2 = 0.D0
36019
36020 RETURN
36021 END
36022
36023*$ CREATE DT_PREPOLA.FOR
36024*COPY DT_PREPOLA
36025*
36026*===prepola============================================================*
36027*
36028 SUBROUTINE DT_PREPOLA(Q2,JTYP,ENU)
36029
36030 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36031 SAVE
36032c
36033c By G. Battistoni and E. Scapparone (sept. 1997)
36034c According to:
36035c Albright & Jarlskog, Nucl Phys B84 (1975) 467
36036c
36037c
36038 PARAMETER (MAXLND=4000)
36039 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36040 COMMON /QNPOL/ POLARX(4),PMODUL
36041* particle masses used in qel neutrino scattering modules
36042 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
36043 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
36044 & EMPROTSQ,EMNEUTSQ,EMNSQ
36045* steering flags for qel neutrino scattering modules
36046 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
36047**sr - removed (not needed)
36048C COMMON /CAXIAL/ FA0, AXIAL2
36049C COMMON /TAUTAU/Q(4,5),ETL,PXL,PYL,PZL,
36050C & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN
36051**
36052 REAL*8 POL(4,4),BB2(3)
36053 DIMENSION SS(6)
36054C DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
36055 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
36056**sr uncommented since common block CAXIAL is now commented
36057 DATA AXIAL2 /1.03D0/ ! to be checked
36058**
36059
36060 RML=P(4,5)
36061 RMM=0.93960D+00
36062 FM2 = RMM**2
36063 MPI = 0.135D+00
36064 OLDQ2=Q2
36065 FA0=-1.253D+00
36066 CSI = 3.71D+00 !
36067 GVE = 1.D0/ (1.D0 + Q2/(0.84D+00)**2)**2 ! G_e(q**2)
36068 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
36069 X = Q2/(EMN*EMN) ! emn=massa barione
36070 XA = X/4.D0
36071 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
36072 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
36073 FA = FA0/(1.D0 + Q2/AXIAL2**2)**2
36074 FFA = FA*FA
36075 FFV1 = FV1*FV1
36076 FFV2 = FV2*FV2
36077 FP=2.D0*FA*RMM/(MPI**2 + Q2)
36078 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36079 A1 = (4.D0+X)*FFA-(4.D0-X)*FFV1+X*FFV2*(1.D0-XA)+4.D0*X*FV1*FV2
36080 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36081 AA = (XA+0.25D+00*RM)*(A1 + A2)
36082 BB = -X*FA*(FV1 + FV2)
36083 CC = 0.25D+00*(FFA + FFV1 + XA*FFV2)
36084 SU = (4.D+00*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36085
36086 OMEGA1=FFA+XA*(FFA+(FV1+FV2)**2 ) ! articolo di ll...-smith
36087 OMEGA2=4.D+00*CC
36088 OMEGA3=2.D+00*FA*(FV1+FV2)
36089 OMEGA4P=(-(FV1+FV2)**2-(FA+2*FP)**2+(4.0D+00+
36090 1 (Q2/FM2))*FP**2)
36091 OMEGA5=OMEGA2
36092 OMEGA4=(OMEGA4P-OMEGA2+2*OMEGA5)/4.D+00
36093 WW1=2.D+00*OMEGA1*EMN**2
36094 WW2=2.D+00*OMEGA2*EMN**2
36095 WW3=2.D+00*OMEGA3*EMN**2
36096 WW4=2.D+00*OMEGA4*EMN**2
36097 WW5=2.D+00*OMEGA5*EMN**2
36098
36099 DO I=1,3
36100 BB2(I)=-P(4,I)/P(4,4)
36101 END DO
36102c WRITE(*,*)
36103c WRITE(*,*)
36104c WRITE(*,*) 'Prepola: ready to transform to lepton rest frame'
36105 N=5
36106 CALL PYROBO(0,0,0.0D0,0.0D0,BB2(1),BB2(2),BB2(3))
36107* NOW PARTICLES ARE IN THE SCATTERED LEPTON REST FRAME
36108c WRITE(*,*)
36109c WRITE(*,*)
36110c WRITE(*,*) 'Prepola: now in lepton rest frame'
36111 EE=ENU
36112 QM2=Q2+RML**2
36113 U=Q2/(2.*RMM)
36114 FRAC=QM2*WW1 + (2.D+00*EE*(EE-U) - 0.5D+00*QM2)*WW2 - SS(JTYP)*
36115 + (0.5D+00/(RMM**2))*(2.D+00*RMM*EE*Q2 - U*QM2)*WW3 +
36116 + ((RML**2)/(2.D+00*FM2))*(QM2*WW4-2.D+00*RMM*EE*WW5) !<=FM2 inv di RMM!!
36117
36118 FACTK=2.D+00*WW1 -WW2 -SS(JTYP)*(EE/RMM)*WW3 +((EE-U)/RMM)*WW5
36119 + - ((RML**2)/FM2)*WW4 !<=FM2 inv di RMM!!
36120
36121 FACTP=2.D+00*EE/RMM*WW2 - (QM2/(2.D+00*RMM**2))*(SS(JTYP)*WW3+WW5)
36122
36123 DO I=1,3
36124 POL(4,I)=RML*SS(JTYP)*(FACTK*P(1,I)+FACTP*P(2,I))/FRAC
36125 POLARX(I)=POL(4,I)
36126 END DO
36127
36128 PMODUL=0.D0
36129 DO I=1,3
36130 PMODUL=PMODUL+POL(4,I)**2
36131 END DO
36132
36133 IF(JTYP.GT.4.AND.NEUDEC.GT.0) THEN
36134 IF(NEUDEC.EQ.1) THEN
36135 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-2),POLARX(3),
36136 + ETL,PXL,PYL,PZL,
36137 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36138c
36139c Tau has decayed in muon
36140c
36141 ENDIF
36142 IF(NEUDEC.EQ.2) THEN
36143 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-4),POLARX(3),
36144 + ETL,PXL,PYL,PZL,
36145 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36146c
36147c Tau has decayed in electron
36148c
36149 ENDIF
36150 K(4,1)=15
36151 K(4,4) = 6
36152 K(4,5) = 8
36153 N=N+3
36154c
36155c fill common for muon(electron)
36156c
36157 P(6,1)=PXL
36158 P(6,2)=PYL
36159 P(6,3)=PZL
36160 P(6,4)=ETL
36161 K(6,1)=1
36162 IF(JTYP.EQ.5) THEN
36163 IF(NEUDEC.EQ.1) THEN
36164 P(6,5)=EML(JTYP-2)
36165 K(6,2)=13
36166 ELSEIF(NEUDEC.EQ.2) THEN
36167 P(6,5)=EML(JTYP-4)
36168 K(6,2)=11
36169 ENDIF
36170 ELSEIF(JTYP.EQ.6) THEN
36171 IF(NEUDEC.EQ.1) THEN
36172 K(6,2)=-13
36173 ELSEIF(NEUDEC.EQ.2) THEN
36174 K(6,2)=-11
36175 ENDIF
36176 END IF
36177 K(6,3)=4
36178 K(6,4)=0
36179 K(6,5)=0
36180c
36181c fill common for tau_(anti)neutrino
36182c
36183 P(7,1)=PXB
36184 P(7,2)=PYB
36185 P(7,3)=PZB
36186 P(7,4)=ETB
36187 P(7,5)=0.
36188 K(7,1)=1
36189 IF(JTYP.EQ.5) THEN
36190 K(7,2)=16
36191 ELSEIF(JTYP.EQ.6) THEN
36192 K(7,2)=-16
36193 END IF
36194 K(7,3)=4
36195 K(7,4)=0
36196 K(7,5)=0
36197c
36198c Fill common for muon(electron)_(anti)neutrino
36199c
36200 P(8,1)=PXN
36201 P(8,2)=PYN
36202 P(8,3)=PZN
36203 P(8,4)=ETN
36204 P(8,5)=0.
36205 K(8,1)=1
36206 IF(JTYP.EQ.5) THEN
36207 IF(NEUDEC.EQ.1) THEN
36208 K(8,2)=-14
36209 ELSEIF(NEUDEC.EQ.2) THEN
36210 K(8,2)=-12
36211 ENDIF
36212 ELSEIF(JTYP.EQ.6) THEN
36213 IF(NEUDEC.EQ.1) THEN
36214 K(8,2)=14
36215 ELSEIF(NEUDEC.EQ.2) THEN
36216 K(8,2)=12
36217 ENDIF
36218 END IF
36219 K(8,3)=4
36220 K(8,4)=0
36221 K(8,5)=0
36222 ENDIF
36223c WRITE(*,*)
36224c WRITE(*,*)
36225
36226c IF(PMODUL.GE.1.D+00) THEN
36227c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36228c write(*,*) pmodul
36229c DO I=1,3
36230c POL(4,I)=POL(4,I)/PMODUL
36231c POLARX(I)=POL(4,I)
36232c END DO
36233c PMODUL=0.
36234c DO I=1,3
36235c PMODUL=PMODUL+POL(4,I)**2
36236c END DO
36237c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36238c
36239c ENDIF
36240
36241c WRITE(*,*) 'PMODUL = ',PMODUL
36242
36243c WRITE(*,*)
36244c WRITE(*,*)
36245c WRITE(*,*) 'prepola: Now back to nucl rest frame'
36246 CALL PYROBO(1,5,0.0D0,0.0D0,-BB2(1),-BB2(2),-BB2(3))
36247
36248 XDC = V(4,1)+V(4,5)*P(4,1)/P(4,5)
36249 YDC = V(4,2)+V(4,5)*P(4,2)/P(4,5)
36250 ZDC = V(4,3)+V(4,5)*P(4,3)/P(4,5)
36251 DO NDC =6,8
36252 V(NDC,1) = XDC
36253 V(NDC,2) = YDC
36254 V(NDC,3) = ZDC
36255 END DO
36256
36257 RETURN
36258 END
36259
36260*$ CREATE DT_TESTROT.FOR
36261*COPY DT_TESTROT
36262*
36263*===testrot============================================================*
36264*
36265 SUBROUTINE DT_TESTROT(PI,PO,PHI,MODE)
36266
36267 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36268 SAVE
36269
36270 DIMENSION ROT(3,3),PI(3),PO(3)
36271
36272 IF (MODE.EQ.1) THEN
36273 ROT(1,1) = 1.D0
36274 ROT(1,2) = 0.D0
36275 ROT(1,3) = 0.D0
36276 ROT(2,1) = 0.D0
36277 ROT(2,2) = COS(PHI)
36278 ROT(2,3) = -SIN(PHI)
36279 ROT(3,1) = 0.D0
36280 ROT(3,2) = SIN(PHI)
36281 ROT(3,3) = COS(PHI)
36282 ELSEIF (MODE.EQ.2) THEN
36283 ROT(1,1) = 0.D0
36284 ROT(1,2) = 1.D0
36285 ROT(1,3) = 0.D0
36286 ROT(2,1) = COS(PHI)
36287 ROT(2,2) = 0.D0
36288 ROT(2,3) = -SIN(PHI)
36289 ROT(3,1) = SIN(PHI)
36290 ROT(3,2) = 0.D0
36291 ROT(3,3) = COS(PHI)
36292 ELSEIF (MODE.EQ.3) THEN
36293 ROT(1,1) = 0.D0
36294 ROT(2,1) = 1.D0
36295 ROT(3,1) = 0.D0
36296 ROT(1,2) = COS(PHI)
36297 ROT(2,2) = 0.D0
36298 ROT(3,2) = -SIN(PHI)
36299 ROT(1,3) = SIN(PHI)
36300 ROT(2,3) = 0.D0
36301 ROT(3,3) = COS(PHI)
36302 ELSEIF (MODE.EQ.4) THEN
36303 ROT(1,1) = 1.D0
36304 ROT(2,1) = 0.D0
36305 ROT(3,1) = 0.D0
36306 ROT(1,2) = 0.D0
36307 ROT(2,2) = COS(PHI)
36308 ROT(3,2) = -SIN(PHI)
36309 ROT(1,3) = 0.D0
36310 ROT(2,3) = SIN(PHI)
36311 ROT(3,3) = COS(PHI)
36312 ELSE
36313 STOP ' TESTROT: mode not supported!'
36314 ENDIF
36315 DO 1 J=1,3
36316 PO(J) = ROT(J,1)*PI(1)+ROT(J,2)*PI(2)+ROT(J,3)*PI(3)
36317 1 CONTINUE
36318
36319 RETURN
36320 END
36321
36322*$ CREATE DT_LEPDCYP.FOR
36323*COPY DT_LEPDCYP
36324*
36325*===lepdcyp============================================================*
36326*
36327 SUBROUTINE DT_LEPDCYP(AMA,AML,POL,ETL,PXL,PYL,PZL,
36328 & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36329C
36330C-----------------------------------------------------------------
36331C
36332C Author :- G. Battistoni 10-NOV-1995
36333C
36334C=================================================================
36335C
36336C Purpose : performs decay of polarized lepton in
36337C its rest frame: a => b + l + anti-nu
36338C (Example: mu- => nu-mu + e- + anti-nu-e)
36339C Polarization is assumed along Z-axis
36340C WARNING:
36341C 1) b AND anti-nu ARE ASSUMED TO BE NEUTRINOS
36342C OF NEGLIGIBLE MASS
36343C 2) RADIATIVE CORRECTIONS ARE NOT CONSIDERED
36344C IN THIS VERSION
36345C
36346C Method : modifies phase space distribution obtained
36347C by routine EXPLOD using a rejection against the
36348C matrix element for unpolarized lepton decay
36349C
36350C Inputs : Mass of a : AMA
36351C Mass of l : AML
36352C Polar. of a: POL
36353C (Example: fully polar. mu- decay: AMA=AMMUON, AML=AMELCT,
36354C POL = -1)
36355C
36356C Outputs : kinematic variables in the rest frame of decaying lepton
36357C ETL,PXL,PYL,PZL 4-moment of l
36358C ETB,PXB,PYB,PZB 4-moment of b
36359C ETN,PXN,PYN,PZN 4-moment of anti-nu
36360C
36361C============================================================
36362C +
36363C Declarations.
36364C -
36365 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36366 SAVE
36367
36368 PARAMETER ( LINP = 10 ,
36369 & LOUT = 6 ,
36370 & LDAT = 9 )
36371 PARAMETER ( KALGNM = 2 )
36372 PARAMETER ( ANGLGB = 5.0D-16 )
36373 PARAMETER ( ANGLSQ = 2.5D-31 )
36374 PARAMETER ( AXCSSV = 0.2D+16 )
36375 PARAMETER ( ANDRFL = 1.0D-38 )
36376 PARAMETER ( AVRFLW = 1.0D+38 )
36377 PARAMETER ( AINFNT = 1.0D+30 )
36378 PARAMETER ( AZRZRZ = 1.0D-30 )
36379 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
36380 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
36381 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
36382 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
36383 PARAMETER ( CSNNRM = 2.0D-15 )
36384 PARAMETER ( DMXTRN = 1.0D+08 )
36385 PARAMETER ( ZERZER = 0.D+00 )
36386 PARAMETER ( ONEONE = 1.D+00 )
36387 PARAMETER ( TWOTWO = 2.D+00 )
36388 PARAMETER ( THRTHR = 3.D+00 )
36389 PARAMETER ( FOUFOU = 4.D+00 )
36390 PARAMETER ( FIVFIV = 5.D+00 )
36391 PARAMETER ( SIXSIX = 6.D+00 )
36392 PARAMETER ( SEVSEV = 7.D+00 )
36393 PARAMETER ( EIGEIG = 8.D+00 )
36394 PARAMETER ( ANINEN = 9.D+00 )
36395 PARAMETER ( TENTEN = 10.D+00 )
36396 PARAMETER ( HLFHLF = 0.5D+00 )
36397 PARAMETER ( ONETHI = ONEONE / THRTHR )
36398 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
36399 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
36400 PARAMETER ( ENEPER = 2.7182818284590452354 D+00 )
36401 PARAMETER ( SQRENT = 1.6487212707001281468 D+00 )
36402 PARAMETER ( CLIGHT = 2.99792458 D+10 )
36403 PARAMETER ( AVOGAD = 6.0221367 D+23 )
36404 PARAMETER ( AMELGR = 9.1093897 D-28 )
36405 PARAMETER ( PLCKBR = 1.05457266 D-27 )
36406 PARAMETER ( ELCCGS = 4.8032068 D-10 )
36407 PARAMETER ( ELCMKS = 1.60217733 D-19 )
36408 PARAMETER ( AMUGRM = 1.6605402 D-24 )
36409 PARAMETER ( AMMUMU = 0.113428913 D+00 )
36410 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
36411 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
36412 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
36413 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
36414 PARAMETER ( PLABRC = 0.197327053 D+00 )
36415 PARAMETER ( AMELCT = 0.51099906 D-03 )
36416 PARAMETER ( AMUGEV = 0.93149432 D+00 )
36417 PARAMETER ( AMMUON = 0.105658389 D+00 )
36418 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
36419 PARAMETER ( GEVMEV = 1.0 D+03 )
36420 PARAMETER ( EMVGEV = 1.0 D-03 )
36421 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
36422 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
36423 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
36424C +
36425C variables for EXPLOD
36426C -
36427 PARAMETER ( KPMX = 10 )
36428 DIMENSION AMEXPL (KPMX), PXEXPL (KPMX), PYEXPL (KPMX),
36429 & PZEXPL (KPMX), ETEXPL (KPMX)
36430C +
36431C test variables
36432C -
36433**sr - removed (not needed)
36434C COMMON /GBATNU/ ELERAT,NTRY
36435**
36436C +
36437C Initializes test variables
36438C -
36439 NTRY = 0
36440 ELERAT = 0.D+00
36441C +
36442C Maximum value for matrix element
36443C -
36444 ELEMAX = ( AMA**2 + AML**2 )**2 / AMA**2 * ( AMA**2 - AML**2 +
36445 & SQRT( AMA**4 + AML**4 - 3.D+00 * AMA**2 * AML**2 ) )
36446C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
36447C Inputs for EXPLOD
36448C part. no. 1 is l (e- in mu- decay)
36449C part. no. 2 is b (nu-mu in mu- decay)
36450C part. no. 3 is anti-nu (anti-nu-e in mu- decay)
36451C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
36452 NPEXPL = 3
36453 ETOTEX = AMA
36454 AMEXPL(1) = AML
36455 AMEXPL(2) = 0.D+00
36456 AMEXPL(3) = 0.D+00
36457C +
36458C phase space distribution
36459C -
36460 100 CONTINUE
36461 NTRY = NTRY + 1
36462
36463 CALL DT_EXPLOD ( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
36464 & PYEXPL, PZEXPL )
36465
36466C +
36467C Calculates matrix element:
36468C 64*GF**2{[P(a)-ama*S(a)]*P(anti-nu)}{P(l)*P(b)}
36469C Here CTH is the cosine of the angle between anti-nu and Z axis
36470C -
36471 CTH = PZEXPL(3) / SQRT ( PXEXPL(3)**2 + PYEXPL(3)**2 +
36472 & PZEXPL(3)**2 )
36473 PROD1 = ETEXPL(3) * AMA * (1.D+00 - POL * CTH)
36474 PROD2 = ETEXPL(1) * ETEXPL(2) - PXEXPL(1)*PXEXPL(2) -
36475 & PYEXPL(1)*PYEXPL(2) - PZEXPL(1)*PZEXPL(2)
36476 ELEMAT = 16.D+00 * PROD1 * PROD2
36477 IF(ELEMAT.GT.ELEMAX) THEN
36478 WRITE(LOUT,*) 'Problems in LEPDCY',ELEMAX,ELEMAT
36479 STOP
36480 ENDIF
36481C +
36482C Here performs the rejection
36483C -
36484 TEST = DT_RNDM(ETOTEX) * ELEMAX
36485 IF ( TEST .GT. ELEMAT ) GO TO 100
36486C +
36487C final assignment of variables
36488C -
36489 ELERAT = ELEMAT/ELEMAX
36490 ETL = ETEXPL(1)
36491 PXL = PXEXPL(1)
36492 PYL = PYEXPL(1)
36493 PZL = PZEXPL(1)
36494 ETB = ETEXPL(2)
36495 PXB = PXEXPL(2)
36496 PYB = PYEXPL(2)
36497 PZB = PZEXPL(2)
36498 ETN = ETEXPL(3)
36499 PXN = PXEXPL(3)
36500 PYN = PYEXPL(3)
36501 PZN = PZEXPL(3)
36502 999 RETURN
36503 END
36504
36505*$ CREATE DT_GEN_DELTA.FOR
36506*COPY DT_GEN_DELTA
36507C==================================================================
36508C. Generation of Delta resonance events
36509C==================================================================
36510*
36511*===gen_delta==========================================================*
36512*
36513 SUBROUTINE DT_GEN_DELTA(ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25)
36514
36515 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36516 SAVE
36517
36518 PARAMETER ( LINP = 10 ,
36519 & LOUT = 6 ,
36520 & LDAT = 9 )
36521C...Generate a Delta-production neutrino/antineutrino
36522C. CC-interaction on a nucleon
36523C
36524C. INPUT ENU (GeV) = Neutrino Energy
36525C. LLEP = neutrino type
36526C. LTARG = nucleon target type 1=p, 2=n.
36527C. JINT = 1:CC, 2::NC
36528C.
36529C. OUTPUT PPL(4) 4-monentum of final lepton
36530C----------------------------------------------------
36531 PARAMETER (MAXLND=4000)
36532 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36533**sr - removed (not needed)
36534C COMMON /CBAD/ LBAD, NBAD
36535**
36536
36537 DIMENSION PI(3),PO(3)
36538C REAL*4 AMD0, AMD, AMN(2), AML0(6), AML, AML2, AMDMIN
36539 DIMENSION AML0(6),AMN(2)
36540 DATA AMD0 /1.231/, GAMD /0.12/, DELD/0.169/, AMDMIN/1.084/
36541 DATA AMN /0.93827231, 0.93956563/
36542 DATA AML0 /2*0.51100E-03,2*0.105659, 2*1.777/
36543
36544c WRITE(6,*)' GEN_DEL',ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25
36545 LBAD = 0
36546C...Final lepton mass
36547 IF (JINT.EQ.1) THEN
36548 AML = AML0(LLEP)
36549 ELSE
36550 AML = 0.
36551 ENDIF
36552 AML2 = AML**2
36553
36554C...Particle labels (LUND)
36555 N = 5
36556 K(1,1) = 21
36557 K(2,1) = 21
36558 K(3,1) = 21
36559 K(4,1) = 1
36560 K(3,3) = 1
36561 K(4,3) = 1
36562 IF (LTARG .EQ. 1) THEN
36563 K(2,2) = 2212
36564 ELSE
36565 K(2,2) = 2112
36566 ENDIF
36567 K0 = (LLEP-1)/2
36568 K1 = LLEP/2
36569 KA = 12 + 2*K0
36570 IS = -1 + 2*LLEP - 4*K1
36571 LNU = 2 - LLEP + 2*K1
36572 K(1,2) = IS*KA
36573 K(5,1) = 1
36574 K(5,3) = 2
36575 IF (JINT .EQ. 1) THEN ! CC interactions
36576 K(3,2) = IS*24
36577 K(4,2) = IS*(KA-1)
36578 IF(LNU.EQ.1) THEN
36579 IF (LTARG .EQ. 1) THEN
36580 K(5,2) = 2224
36581 ELSE
36582 K(5,2) = 2214
36583 ENDIF
36584 ELSE
36585 IF (LTARG .EQ. 1) THEN
36586 K(5,2) = 2114
36587 ELSE
36588 K(5,2) = 1114
36589 ENDIF
36590 ENDIF
36591 ELSE
36592 K(3,2) = 23 ! NC (Z0) interactions
36593 K(4,2) = K(1,2)
36594**sr 7.5.00: swop Delta's (bug), Delta+ for proton (LTARG=1),
36595* Delta0 for neutron (LTARG=2)
36596C IF (LTARG .EQ. 1) THEN
36597C K(5,2) = 2114
36598C ELSE
36599C K(5,2) = 2214
36600C ENDIF
36601 IF (LTARG .EQ. 1) THEN
36602 K(5,2) = 2214
36603 ELSE
36604 K(5,2) = 2114
36605 ENDIF
36606**
36607 ENDIF
36608
36609C...4-momentum initial lepton
36610 P(1,5) = 0.
36611 P(1,4) = ENU
36612 P(1,1) = 0.
36613 P(1,2) = 0.
36614 P(1,3) = ENU
36615C...4-momentum initial nucleon
36616 P(2,5) = AMN(LTARG)
36617C P(2,4) = P(2,5)
36618C P(2,1) = 0.
36619C P(2,2) = 0.
36620C P(2,3) = 0.
36621 P(2,1) = P21
36622 P(2,2) = P22
36623 P(2,3) = P23
36624 P(2,4) = P24
36625 P(2,5) = P25
36626 N=2
36627 beta1=-p(2,1)/p(2,4)
36628 beta2=-p(2,2)/p(2,4)
36629 beta3=-p(2,3)/p(2,4)
36630 N=2
36631
36632 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
36633
36634C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
36635
36636 phi11=atan(p(1,2)/p(1,3))
36637 pi(1)=p(1,1)
36638 pi(2)=p(1,2)
36639 pi(3)=p(1,3)
36640
36641 CALL DT_TESTROT(PI,Po,PHI11,1)
36642 DO ll=1,3
36643 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36644 END DO
36645 p(1,1)=po(1)
36646 p(1,2)=po(2)
36647 p(1,3)=po(3)
36648 phi12=atan(p(1,1)/p(1,3))
36649
36650 pi(1)=p(1,1)
36651 pi(2)=p(1,2)
36652 pi(3)=p(1,3)
36653 CALL DT_TESTROT(Pi,Po,PHI12,2)
36654 DO ll=1,3
36655 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36656 END DO
36657 p(1,1)=po(1)
36658 p(1,2)=po(2)
36659 p(1,3)=po(3)
36660
36661 ENUU=P(1,4)
36662
36663C...Generate the Mass of the Delta
36664 NTRY = 0
36665100 R = PYR(0)
36666 AMD=AMD0+0.5*GAMD*TAN((2.*R-1.)*ATAN(2.*DELD/GAMD))
36667 NTRY = NTRY + 1
36668 IF (NTRY .GT. 1000) THEN
36669 LBAD = 1
36670 WRITE (LOUT,1001) NBAD, ENUU,AMD,AMDMIN,AMD0,GAMD,ET
36671 RETURN
36672 ENDIF
36673 IF (AMD .LT. AMDMIN) GOTO 100
36674 ET = ((AMD+AML)**2 - AMN(LTARG)**2)/(2.*AMN(LTARG))
36675 IF (ENUU .LT. ET) GOTO 100
36676
36677C...Kinematical limits in Q**2
36678 S = AMN(LTARG)**2 + 2.*AMN(LTARG)*ENUU
36679 SQS = SQRT(S)
36680 PSTAR = (S - AMN(LTARG)**2)/(2.*SQS)
36681 ELF = (S - AMD**2 + AML2)/(2.*SQS)
36682 PLF = SQRT(ELF**2 - AML2)
36683 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF)
36684 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF)
36685 IF (Q2MIN .LT. 0.) Q2MIN = 0.
36686
36687 DSIGMAX = DT_DSIGMA_DELTA(LNU,-Q2MIN, S, AML, AMD)
36688200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
36689 DSIG = DT_DSIGMA_DELTA(LNU,-Q2, S, AML, AMD)
36690 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
36691
36692C...Generate the kinematics of the final particles
36693 EISTAR = (S + AMN(LTARG)**2)/(2.*SQS)
36694 GAM = EISTAR/AMN(LTARG)
36695 BET = PSTAR/EISTAR
36696 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF)
36697 EL = GAM*(ELF + BET*PLF*CTSTAR)
36698 PLZ = GAM*(PLF*CTSTAR + BET*ELF)
36699 PL = SQRT(EL**2 - AML2)
36700 PLT = SQRT(MAX(1.D-06,(PL*PL - PLZ*PLZ)))
36701 PHI = 6.28319*PYR(0)
36702 P(4,1) = PLT*COS(PHI)
36703 P(4,2) = PLT*SIN(PHI)
36704 P(4,3) = PLZ
36705 P(4,4) = EL
36706 P(4,5) = AML
36707
36708C...4-momentum of Delta
36709 P(5,1) = -P(4,1)
36710 P(5,2) = -P(4,2)
36711 P(5,3) = ENUU-P(4,3)
36712 P(5,4) = ENUU+AMN(LTARG)-P(4,4)
36713 P(5,5) = AMD
36714
36715C...4-momentum of intermediate boson
36716 P(3,5) = -Q2
36717 P(3,4) = P(1,4)-P(4,4)
36718 P(3,1) = P(1,1)-P(4,1)
36719 P(3,2) = P(1,2)-P(4,2)
36720 P(3,3) = P(1,3)-P(4,3)
36721 N=5
36722
36723 DO kw=1,5
36724 pi(1)=p(kw,1)
36725 pi(2)=p(kw,2)
36726 pi(3)=p(kw,3)
36727 CALL DT_TESTROT(Pi,Po,PHI12,3)
36728 DO ll=1,3
36729 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36730 END DO
36731 p(kw,1)=po(1)
36732 p(kw,2)=po(2)
36733 p(kw,3)=po(3)
36734 END DO
36735
36736c********************************************
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,PHI11,4)
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
36750c********************************************
36751C transform back into Lab.
36752
36753 CALL PYROBO(0,0,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
36754
36755C WRITE(6,*)' Lab fram ( fermi incl.) '
36756 N=5
36757 CALL PYEXEC
36758
36759 RETURN
367601001 FORMAT(2X, 'DT_GEN_DELTA : event rejected ', I5, 6G10.3)
36761 END
36762
36763*$ CREATE DT_DSIGMA_DELTA.FOR
36764*COPY DT_DSIGMA_DELTA
36765*
36766*===dsigma_delta=======================================================*
36767*
36768 DOUBLE PRECISION FUNCTION DT_DSIGMA_DELTA (LNU, QQ, S, AML, MD)
36769
36770 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36771 SAVE
36772
36773C...Reaction nu + N -> lepton + Delta
36774C. returns the cross section
36775C. dsigma/dt
36776C. INPUT LNU = 1, 2 (neutrino-antineutrino)
36777C. QQ = t (always negative) GeV**2
36778C. S = (c.m energy)**2 GeV**2
36779C. OUTPUT = 10**-38 cm+2/GeV**2
36780C-----------------------------------------------------
36781 REAL*8 MN, MN2, MN4, MD,MD2, MD4
36782 DATA MN /0.938/
36783 DATA PI /3.1415926/
36784
36785 GF = (1.1664 * 1.97)
36786 GF2 = GF*GF
36787 MN2 = MN*MN
36788 MN4 = MN2*MN2
36789 MD2 = MD*MD
36790 MD4 = MD2*MD2
36791 AML2 = AML*AML
36792 AML4 = AML2*AML2
36793 VQ = (MN2 - MD2 - QQ)/2.
36794 VPI = (MN2 + MD2 - QQ)/2.
36795 VK = (S + QQ - MN2 - AML2)/2.
36796 PIK = (S - MN2)/2.
36797 QK = (AML2 - QQ)/2.
36798 PIQ = (QQ + MN2 - MD2)/2.
36799 Q = SQRT(-QQ)
36800 C3V = 2.07*SQRT(EXP(-6.3*Q)*(1.+9*Q))
36801 C3 = SQRT(3.)*C3V/MN
36802 C4 = -C3/MD ! attenzione al segno
36803 C5A = 1.18/(1.-QQ/0.4225)**2
36804 C32 = C3**2
36805 C42 = C4**2
36806 C5A2 = C5A**2
36807
36808 IF (LNU .EQ. 1) THEN
36809 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36810 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36811 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36812 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36813 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36814 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36815 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36816 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36817 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36818 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ-
36819 . 4.*MN*C3*C5A*MD2*VK*QQ+4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36820 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36821 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36822 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36823 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK-MD*
36824 . C3*C5A*MD2*PIK*QQ+MD*C3*C5A*MD2*QK*PIQ-3.*MD*C3*C5A
36825 . *VK*VPI*QQ+MD*C3*C5A*VK*VQ*PIQ+3.*MD*C3*C5A*VPI*VQ*
36826 . QK-MD*C3*C5A*VQ**2*PIK+C4*C5A*MD2*VK*VPI*QQ+C4*C5A*
36827 . MD2*VK*VQ*PIQ-C4*C5A*MD2*VPI*VQ*QK-C4*C5A*MD2*VQ**2
36828 . *PIK-C4*C5A*MD4*PIK*QQ+C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36829 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36830 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36831 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36832 ELSE
36833 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36834 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36835 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36836 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36837 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36838 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36839 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36840 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36841 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36842 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ+
36843 . 4.*MN*C3*C5A*MD2*VK*QQ-4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36844 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36845 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36846 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36847 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK+MD*
36848 . C3*C5A*MD2*PIK*QQ-MD*C3*C5A*MD2*QK*PIQ+3.*MD*C3*C5A
36849 . *VK*VPI*QQ-MD*C3*C5A*VK*VQ*PIQ-3.*MD*C3*C5A*VPI*VQ*
36850 . QK+MD*C3*C5A*VQ**2*PIK-C4*C5A*MD2*VK*VPI*QQ-C4*C5A*
36851 . MD2*VK*VQ*PIQ+C4*C5A*MD2*VPI*VQ*QK+C4*C5A*MD2*VQ**2
36852 . *PIK+C4*C5A*MD4*PIK*QQ-C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36853 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36854 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36855 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36856 ENDIF
36857 ANS1=32.*ANS2
36858 ANS=ANS1/(3.*MD2)
36859 P1CM = (S-MN2)/(2.*SQRT(S))
36860 DT_DSIGMA_DELTA = GF2/2. * ANS/(64.*PI*S*P1CM**2)
36861
36862 RETURN
36863 END
36864
36865*$ CREATE DT_QGAUS.FOR
36866*COPY DT_QGAUS
36867*
36868*===qgaus==============================================================*
36869*
36870 SUBROUTINE DT_QGAUS(A,B,SS,ENU,LTYP)
36871
36872 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36873 SAVE
36874
36875 DIMENSION X(5),W(5)
36876 DATA X/.1488743389D0,.4333953941D0,
36877 & .6794095682D0,.8650633666D0,.9739065285D0
36878 */
36879 DATA W/.2955242247D0,.2692667193D0,
36880 & .2190863625D0,.1494513491D0,.0666713443D0
36881 */
36882 XM=0.5D0*(B+A)
36883 XR=0.5D0*(B-A)
36884 SS=0
36885 DO 11 J=1,5
36886 DX=XR*X(J)
36887 SS=SS+W(J)*(DT_DSQEL_Q2(LTYP,ENU,XM+DX)+
36888 * DT_DSQEL_Q2(LTYP,ENU,XM-DX))
3688911 CONTINUE
36890 SS=XR*SS
36891
36892 RETURN
36893 END
36894
36895*$ CREATE DT_DIQBRK.FOR
36896*COPY DT_DIQBRK
36897*
36898*===diqbrk=============================================================*
36899*
36900 SUBROUTINE DT_DIQBRK
36901
36902 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36903 SAVE
36904
36905* event history
36906 PARAMETER (NMXHKK=200000)
36907 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36908 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36909 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36910* extended event history
36911 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36912 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36913 & IHIST(2,NMXHKK)
36914* event flag
36915 COMMON /DTEVNO/ NEVENT,ICASCA
36916
36917C IF(DT_RNDM(VV).LE.0.5D0)THEN
36918C CALL GSQBS1(NHKK)
36919C CALL GSQBS2(NHKK)
36920C CALL USQBS1(NHKK)
36921C CALL USQBS2(NHKK)
36922C CALL GSABS1(NHKK)
36923C CALL GSABS2(NHKK)
36924C CALL USABS1(NHKK)
36925C CALL USABS2(NHKK)
36926C ELSE
36927C CALL GSQBS2(NHKK)
36928C CALL GSQBS1(NHKK)
36929C CALL USQBS2(NHKK)
36930C CALL USQBS1(NHKK)
36931C CALL GSABS2(NHKK)
36932C CALL GSABS1(NHKK)
36933C CALL USABS2(NHKK)
36934C CALL USABS1(NHKK)
36935C ENDIF
36936
36937 IF(DT_RNDM(VV).LE.0.5D0) THEN
36938 CALL DT_DBREAK(1)
36939 CALL DT_DBREAK(2)
36940 CALL DT_DBREAK(3)
36941 CALL DT_DBREAK(4)
36942 CALL DT_DBREAK(5)
36943 CALL DT_DBREAK(6)
36944 CALL DT_DBREAK(7)
36945 CALL DT_DBREAK(8)
36946 ELSE
36947 CALL DT_DBREAK(2)
36948 CALL DT_DBREAK(1)
36949 CALL DT_DBREAK(4)
36950 CALL DT_DBREAK(3)
36951 CALL DT_DBREAK(6)
36952 CALL DT_DBREAK(5)
36953 CALL DT_DBREAK(8)
36954 CALL DT_DBREAK(7)
36955 ENDIF
36956
36957 RETURN
36958 END
36959
36960*$ CREATE MUSQBS2.FOR
36961*COPY MUSQBS2
36962C
36963C
36964C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
36965 SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
36966 * IP1,IP21,IP22,IPP1,IPP2,IPIP,ISQ,IGCOUN)
36967C
36968C USQBS-2 diagram (split target diquark)
36969C
36970 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36971 SAVE
36972
36973 PARAMETER ( LINP = 10 ,
36974 & LOUT = 6 ,
36975 & LDAT = 9 )
36976* event history
36977 PARAMETER (NMXHKK=200000)
36978 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36979 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36980 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36981* extended event history
36982 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36983 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36984 & IHIST(2,NMXHKK)
36985* Lorentz-parameters of the current interaction
36986 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
36987 & UMO,PPCM,EPROJ,PPROJ
36988* diquark-breaking mechanism
36989 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
36990
36991C
36992 PARAMETER (NTMHKK= 300)
36993 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
36994 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
36995 +(4,NTMHKK)
36996*KEEP,XSEADI.
36997 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
36998 +SSMIMQ,VVMTHR
36999*KEEP,DPRIN.
37000 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
37001 COMMON /EVFLAG/ NUMEV
37002C
37003C USQBS-2 diagram (split target diquark)
37004C
37005C
37006C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
37007C Input chain 2(NC2) sea-antiquark(NC2P)-sea-quark(NC2T)
37008C
37009C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
37010C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37011C
37012C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37013C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37014C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37015C
37016C
37017C Put new chains into COMMON /HKKTMP/
37018C
37019 IIGLU1=NC1T-NC1P-1
37020 IIGLU2=NC2T-NC2P-1
37021 IGCOUN=0
37022C WRITE(LOUT,*)'MUSQBS2: IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37023 CVQ=1.D0
37024 IREJ=0
37025 IF(IPIP.EQ.2)THEN
37026C IF(NUMEV.EQ.-324)THEN
37027C WRITE(LOUT,*)' MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37028C * 'IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN)',
37029C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37030C * IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN
37031 ENDIF
37032C
37033C
37034C
37035C determine x-values of NC1T diquark
37036 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37037 XVQP=PHKK(4,NC1P)*2.D0/UMO
37038C
37039C determine x-values of sea quark pair
37040C
37041 IPCO=1
37042 ICOU=0
37043 2234 CONTINUE
37044 ICOU=ICOU+1
37045 IF(ICOU.GE.500)THEN
37046 IREJ=1
37047 IF(ISQ.EQ.3)IREJ=3
37048 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 2234 ICOU. GT.500'
37049 IPCO=0
37050 RETURN
37051 ENDIF
37052 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37053 * UMO, XDIQT,XVQP
37054 XSQ=0.D0
37055 XSAQ=0.D0
37056**NEW
37057C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37058 IF (IPIP.EQ.1) THEN
37059 XQMAX = XDIQT/2.0D0
37060 XAQMAX = 2.D0*XVQP/3.0D0
37061 ELSE
37062 XQMAX = 2.D0*XVQP/3.0D0
37063 XAQMAX = XDIQT/2.0D0
37064 ENDIF
37065 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37066 ISAQ = 6+ISQ
37067C write(*,*) 'MUSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37068**
37069 IF(IPCO.GE.3)
37070 & WRITE(LOUT,*)'MUSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37071 IF(IREJ.GE.1)THEN
37072 IF(IPCO.GE.3)
37073 & WRITE(LOUT,*)'MUSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37074 IPCO=0
37075 RETURN
37076 ENDIF
37077 IF(IPIP.EQ.1)THEN
37078 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37079 ELSEIF(IPIP.EQ.2)THEN
37080 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37081 ENDIF
37082 IF(IPCO.GE.3)THEN
37083 WRITE(LOUT,'(A,4E12.4)')' MUSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37084 * XDIQT,XVQP,XSQ,XSAQ
37085 ENDIF
37086C
37087C subtract xsq,xsaq from NC1T diquark and NC1P quark
37088C
37089C XSQ=0.D0
37090 IF(IPIP.EQ.1)THEN
37091 XDIQT=XDIQT-XSQ
37092 XVQP =XVQP -XSAQ
37093 ELSEIF(IPIP.EQ.2)THEN
37094 XDIQT=XDIQT-XSAQ
37095 XVQP =XVQP -XSQ
37096 ENDIF
37097 IF(IPCO.GE.3)
37098 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37099C
37100C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37101C
37102 XVTHRO=CVQ/UMO
37103 IVTHR=0
37104 3466 CONTINUE
37105 IF(IVTHR.EQ.10)THEN
37106 IREJ=1
37107 IF(ISQ.EQ.3)IREJ=3
37108 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 3466 reject IVTHR 10'
37109 IPCO=0
37110 RETURN
37111 ENDIF
37112 IVTHR=IVTHR+1
37113 XVTHR=XVTHRO/(201-IVTHR)
37114 UNOPRV=UNON
37115 380 CONTINUE
37116 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37117 IREJ=1
37118 IF(ISQ.EQ.3)IREJ=3
37119 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 380 XVTHR large ',
37120 * XVTHR
37121 IPCO=0
37122 RETURN
37123 ENDIF
37124 IF(DT_RNDM(V).LT.0.5D0)THEN
37125 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37126 XVTQII=XDIQT-XVTQI
37127 ELSE
37128 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37129 XVTQI=XDIQT-XVTQII
37130 ENDIF
37131 IF(IPCO.GE.3)THEN
37132 WRITE(LOUT,'(A,2E12.4)')' MUSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37133 ENDIF
37134C
37135C Prepare 4 momenta of new chains and chain ends
37136C
37137C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37138C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37139C +(4,NTMHKK)
37140C
37141C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37142C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37143C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37144C
37145C SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37146C * IP1,IP21,IP22,IPP1,IPP2)
37147C
37148 IF(IPIP.EQ.1)THEN
37149 XSQ1=XSQ
37150 XSAQ1=XSAQ
37151 ISQ1=ISQ
37152 ISAQ1=ISAQ
37153 ELSEIF(IPIP.EQ.2)THEN
37154 XSQ1=XSAQ
37155 XSAQ1=XSQ
37156 ISQ1=ISAQ
37157 ISAQ1=ISQ
37158 ENDIF
37159 IDHKT(1) =IPP1
37160 ISTHKT(1) =951
37161 JMOHKT(1,1)=NC2P
37162 JMOHKT(2,1)=0
37163 JDAHKT(1,1)=3+IIGLU1
37164 JDAHKT(2,1)=0
37165C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37166 PHKT(1,1) =PHKK(1,NC2P)
37167 PHKT(2,1) =PHKK(2,NC2P)
37168 PHKT(3,1) =PHKK(3,NC2P)
37169 PHKT(4,1) =PHKK(4,NC2P)
37170C PHKT(5,1) =PHKK(5,NC2P)
37171 XMIST =(PHKT(4,1)**2-
37172 * PHKT(3,1)**2-PHKT(2,1)**2-
37173 *PHKT(1,1)**2)
37174 IF(XMIST.GT.0.D0)THEN
37175 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
37176 *PHKT(1,1)**2)
37177 ELSE
37178C WRITE(LOUT,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
37179 PHKT(5,1)=0.D0
37180 ENDIF
37181 VHKT(1,1) =VHKK(1,NC2P)
37182 VHKT(2,1) =VHKK(2,NC2P)
37183 VHKT(3,1) =VHKK(3,NC2P)
37184 VHKT(4,1) =VHKK(4,NC2P)
37185 WHKT(1,1) =WHKK(1,NC2P)
37186 WHKT(2,1) =WHKK(2,NC2P)
37187 WHKT(3,1) =WHKK(3,NC2P)
37188 WHKT(4,1) =WHKK(4,NC2P)
37189C Add here IIGLU1 gluons to this chaina
37190 PG1=0.D0
37191 PG2=0.D0
37192 PG3=0.D0
37193 PG4=0.D0
37194 IF(IIGLU1.GE.1)THEN
37195 JJG=NC1P
37196 DO 61 IIG=2,2+IIGLU1-1
37197 KKG=JJG+IIG-1
37198 IDHKT(IIG) =IDHKK(KKG)
37199 ISTHKT(IIG) =921
37200 JMOHKT(1,IIG)=KKG
37201 JMOHKT(2,IIG)=0
37202 JDAHKT(1,IIG)=3+IIGLU1
37203 JDAHKT(2,IIG)=0
37204 PHKT(1,IIG)=PHKK(1,KKG)
37205 PG1=PG1+ PHKT(1,IIG)
37206 PHKT(2,IIG)=PHKK(2,KKG)
37207 PG2=PG2+ PHKT(2,IIG)
37208 PHKT(3,IIG)=PHKK(3,KKG)
37209 PG3=PG3+ PHKT(3,IIG)
37210 PHKT(4,IIG)=PHKK(4,KKG)
37211 PG4=PG4+ PHKT(4,IIG)
37212 PHKT(5,IIG)=PHKK(5,KKG)
37213 VHKT(1,IIG) =VHKK(1,KKG)
37214 VHKT(2,IIG) =VHKK(2,KKG)
37215 VHKT(3,IIG) =VHKK(3,KKG)
37216 VHKT(4,IIG) =VHKK(4,KKG)
37217 WHKT(1,IIG) =WHKK(1,KKG)
37218 WHKT(2,IIG) =WHKK(2,KKG)
37219 WHKT(3,IIG) =WHKK(3,KKG)
37220 WHKT(4,IIG) =WHKK(4,KKG)
37221 61 CONTINUE
37222 ENDIF
37223 IDHKT(2+IIGLU1) =IP21
37224 ISTHKT(2+IIGLU1) =952
37225 JMOHKT(1,2+IIGLU1)=NC1T
37226 JMOHKT(2,2+IIGLU1)=0
37227 JDAHKT(1,2+IIGLU1)=3+IIGLU1
37228 JDAHKT(2,2+IIGLU1)=0
37229 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
37230 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
37231 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
37232 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
37233C PHKT(5,2) =PHKK(5,NC1T)
37234 XMIST =(PHKT(4,2+IIGLU1)**2-
37235 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37236 *PHKT(1,2+IIGLU1)**2)
37237 IF(XMIST.GT.0.D0)THEN
37238 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
37239 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37240 *PHKT(1,2+IIGLU1)**2)
37241 ELSE
37242C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37243 PHKT(5,5+IIGLU1)=0.D0
37244 ENDIF
37245 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
37246 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
37247 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
37248 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
37249 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
37250 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
37251 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
37252 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
37253 IDHKT(3+IIGLU1) =88888
37254 ISTHKT(3+IIGLU1) =95
37255 JMOHKT(1,3+IIGLU1)=1
37256 JMOHKT(2,3+IIGLU1)=2+IIGLU1
37257 JDAHKT(1,3+IIGLU1)=0
37258 JDAHKT(2,3+IIGLU1)=0
37259 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
37260 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
37261 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
37262 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
37263 XMIST
37264 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37265 * -PHKT(3,3+IIGLU1)**2)
37266 IF(XMIST.GT.0.D0)THEN
37267 PHKT(5,3+IIGLU1)
37268 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37269 * -PHKT(3,3+IIGLU1)**2)
37270 ELSE
37271C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37272 PHKT(5,5+IIGLU1)=0.D0
37273 ENDIF
37274 IF(IPIP.GE.2)THEN
37275C IF(NUMEV.EQ.-324)THEN
37276C WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
37277C * JDAHKT(1,1),
37278C *JDAHKT(2,1),(PHKT(III,1),III=1,5)
37279 DO 71 IIG=2,2+IIGLU1-1
37280C WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
37281C & JMOHKT(1,IIG),JMOHKT(2,IIG),
37282C * JDAHKT(1,IIG),
37283C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37284 71 CONTINUE
37285C WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
37286C * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
37287C *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
37288C WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
37289C * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
37290C *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
37291 ENDIF
37292 CHAMAL=CHAM1
37293 IF(IPIP.EQ.1)THEN
37294 IF(IPP1.LE.-3.OR.IP21.GE.3)CHAMAL=CHAM3
37295 ELSEIF(IPIP.EQ.2)THEN
37296 IF(IPP1.GE.3.OR.IP21.LE.-3)CHAMAL=CHAM3
37297 ENDIF
37298 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
37299C IREJ=1
37300 IPCO=0
37301C RETURN
37302C WRITE(LOUT,*)' MUSQBS1 jump back from chain 3'
37303 GO TO 3466
37304 ENDIF
37305 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
37306 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
37307 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
37308 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
37309 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
37310 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
37311 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
37312 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
37313 IF(IPIP.EQ.1)THEN
37314 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37315 ELSEIF(IPIP.EQ.2)THEN
37316 IDHKT(4+IIGLU1) =ISAQ1
37317 ENDIF
37318 ISTHKT(4+IIGLU1) =951
37319 JMOHKT(1,4+IIGLU1)=NC1P
37320 JMOHKT(2,4+IIGLU1)=0
37321 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37322 JDAHKT(2,4+IIGLU1)=0
37323C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37324 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37325 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37326 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37327 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37328C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37329 XMIST =(PHKT(4,4+IIGLU1)**2-
37330 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37331 *PHKT(1,4+IIGLU1)**2)
37332 IF(XMIST.GT.0.D0)THEN
37333 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
37334 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37335 *PHKT(1,4+IIGLU1)**2)
37336 ELSE
37337C WRITE(LOUT,*)'MUSQBS2 parton 4 mass square LT.0 ',XMIST
37338 PHKT(5,4+IIGLU1)=0.D0
37339 ENDIF
37340 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37341 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37342 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37343 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37344 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37345 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37346 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37347 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37348 IDHKT(5+IIGLU1) =IP22
37349 ISTHKT(5+IIGLU1) =952
37350 JMOHKT(1,5+IIGLU1)=NC1T
37351 JMOHKT(2,5+IIGLU1)=0
37352 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37353 JDAHKT(2,5+IIGLU1)=0
37354 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37355 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37356 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37357 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37358C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37359 XMIST =(PHKT(4,5+IIGLU1)**2-
37360 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37361 *PHKT(1,5+IIGLU1)**2)
37362 IF(XMIST.GT.0.D0)THEN
37363 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
37364 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37365 *PHKT(1,5+IIGLU1)**2)
37366 ELSE
37367C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37368 PHKT(5,5+IIGLU1)=0.D0
37369 ENDIF
37370 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37371 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37372 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37373 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37374 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37375 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37376 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37377 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37378 IDHKT(6+IIGLU1) =88888
37379 ISTHKT(6+IIGLU1) =95
37380 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37381 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37382 JDAHKT(1,6+IIGLU1)=0
37383 JDAHKT(2,6+IIGLU1)=0
37384 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37385 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37386 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37387 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37388 XMIST
37389 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37390 * -PHKT(3,6+IIGLU1)**2)
37391 IF(XMIST.GT.0.D0)THEN
37392 PHKT(5,6+IIGLU1)
37393 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37394 * -PHKT(3,6+IIGLU1)**2)
37395 ELSE
37396C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37397 PHKT(5,5+IIGLU1)=0.D0
37398 ENDIF
37399C IF(IPIP.GE.2)THEN
37400C IF(NUMEV.EQ.-324)THEN
37401C WRITE(6,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37402C * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37403C *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37404C WRITE(6,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37405C * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37406C *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37407C WRITE(6,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37408C * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37409C *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37410C ENDIF
37411 CHAMAL=CHAM1
37412 IF(IPIP.EQ.1)THEN
37413 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37414 ELSEIF(IPIP.EQ.2)THEN
37415 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37416 ENDIF
37417 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37418C IREJ=1
37419 IPCO=0
37420C RETURN
37421C WRITE(6,*)' MUSQBS1 jump back from chain 6',
37422C * CHAMAL,PHKT(5,6+IIGLU1)
37423 GO TO 3466
37424 ENDIF
37425 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37426 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37427 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37428 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37429 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
37430 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
37431 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
37432 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
37433C IDHKT(7) =1000*IPP1+100*ISQ+1
37434 IDHKT(7+IIGLU1) =IP1
37435 ISTHKT(7+IIGLU1) =951
37436 JMOHKT(1,7+IIGLU1)=NC1P
37437 JMOHKT(2,7+IIGLU1)=0
37438**NEW
37439C JDAHKT(1,7+IIGLU1)=9+IIGLU1
37440 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
37441**
37442 JDAHKT(2,7+IIGLU1)=0
37443 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
37444 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
37445 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
37446 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
37447C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
37448 XMIST =(PHKT(4,7+IIGLU1)**2-
37449 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37450 *PHKT(1,7+IIGLU1)**2)
37451 IF(XMIST.GT.0.D0)THEN
37452 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
37453 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37454 *PHKT(1,7+IIGLU1)**2)
37455 ELSE
37456C WRITE(6,*)'MUSQBS2 parton 7 mass square LT.0 ',XMIST
37457 PHKT(5,7+IIGLU1)=0.D0
37458 ENDIF
37459 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
37460 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
37461 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
37462 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
37463 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
37464 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
37465 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
37466 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
37467C Insert here the IIGLU2 gluons
37468 PG1=0.D0
37469 PG2=0.D0
37470 PG3=0.D0
37471 PG4=0.D0
37472 IF(IIGLU2.GE.1)THEN
37473 JJG=NC2P
37474 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37475 KKG=JJG+IIG-7-IIGLU1
37476 IDHKT(IIG) =IDHKK(KKG)
37477 ISTHKT(IIG) =921
37478 JMOHKT(1,IIG)=KKG
37479 JMOHKT(2,IIG)=0
37480 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
37481 JDAHKT(2,IIG)=0
37482 PHKT(1,IIG)=PHKK(1,KKG)
37483 PG1=PG1+ PHKT(1,IIG)
37484 PHKT(2,IIG)=PHKK(2,KKG)
37485 PG2=PG2+ PHKT(2,IIG)
37486 PHKT(3,IIG)=PHKK(3,KKG)
37487 PG3=PG3+ PHKT(3,IIG)
37488 PHKT(4,IIG)=PHKK(4,KKG)
37489 PG4=PG4+ PHKT(4,IIG)
37490 PHKT(5,IIG)=PHKK(5,KKG)
37491 VHKT(1,IIG) =VHKK(1,KKG)
37492 VHKT(2,IIG) =VHKK(2,KKG)
37493 VHKT(3,IIG) =VHKK(3,KKG)
37494 VHKT(4,IIG) =VHKK(4,KKG)
37495 WHKT(1,IIG) =WHKK(1,KKG)
37496 WHKT(2,IIG) =WHKK(2,KKG)
37497 WHKT(3,IIG) =WHKK(3,KKG)
37498 WHKT(4,IIG) =WHKK(4,KKG)
37499 81 CONTINUE
37500 ENDIF
37501 IF(IPIP.EQ.1)THEN
37502 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
37503 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
37504 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
37505 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
37506 ELSEIF(IPIP.EQ.2)THEN
37507 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
37508 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
37509 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
37510 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
37511 ENDIF
37512 ISTHKT(8+IIGLU1+IIGLU2) =952
37513 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
37514 JMOHKT(2,8+IIGLU1+IIGLU2)=0
37515 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
37516 JDAHKT(2,8+IIGLU1+IIGLU2)=0
37517 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC2T)+
37518 * PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
37519 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC2T)+
37520 * PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
37521 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC2T)+
37522 * PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
37523 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC2T)+
37524 * PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
37525C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
37526C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
37527 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
37528C IREJ=1
37529C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
37530C * ,PHKT(4,8+IIGLU1+IIGLU2), PHKK(4,NC2T),NC2T
37531 IPCO=0
37532C RETURN
37533 GO TO 3466
37534 ENDIF
37535C PHKT(5,8) =PHKK(5,NC2T)
37536 XMIST =(PHKT(4,8+IIGLU1+IIGLU2)**2-
37537 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37538 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37539 IF(XMIST.GT.0.D0)THEN
37540 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
37541 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37542 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37543 ELSE
37544C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37545 PHKT(5,5+IIGLU1)=0.D0
37546 ENDIF
37547 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
37548 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
37549 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
37550 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
37551 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
37552 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
37553 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
37554 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
37555 IDHKT(9+IIGLU1+IIGLU2) =88888
37556 ISTHKT(9+IIGLU1+IIGLU2) =95
37557 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
37558 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
37559 JDAHKT(1,9+IIGLU1+IIGLU2)=0
37560 JDAHKT(2,9+IIGLU1+IIGLU2)=0
37561**NEW
37562C PHKT(1,9+IIGLU1+IIGLU2)
37563C * =PHKT(1,7+IIGLU1+IIGLU2)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37564C PHKT(2,9+IIGLU1+IIGLU2)
37565C * =PHKT(2,7+IIGLU1+IIGLU2)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37566C PHKT(3,9+IIGLU1+IIGLU2)
37567C * =PHKT(3,7+IIGLU1+IIGLU2)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37568C PHKT(4,9+IIGLU1+IIGLU2)
37569C * =PHKT(4,7+IIGLU1+IIGLU2)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37570 PHKT(1,9+IIGLU1+IIGLU2)
37571 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37572 PHKT(2,9+IIGLU1+IIGLU2)
37573 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37574 PHKT(3,9+IIGLU1+IIGLU2)
37575 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37576 PHKT(4,9+IIGLU1+IIGLU2)
37577 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37578**
37579 XMIST
37580 * =(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37581 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37582 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37583 IF(XMIST.GT.0.D0)THEN
37584 PHKT(5,9+IIGLU1+IIGLU2)
37585 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37586 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37587 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37588 ELSE
37589C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37590 PHKT(5,5+IIGLU1)=0.D0
37591 ENDIF
37592 IF(IPIP.GE.2)THEN
37593C IF(NUMEV.EQ.-324)THEN
37594C WRITE(6,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
37595C * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
37596C *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
37597C DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37598C WRITE(6,*)IIG,ISTHKT(IIG),IDHKT(IIG),JMOHKT(1,IIG),JMOHKT(2,IIG),
37599C * JDAHKT(1,IIG),
37600C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37601C 91 CONTINUE
37602C WRITE(6,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
37603C * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
37604C *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
37605C *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
37606C WRITE(6,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
37607C * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
37608C *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
37609C *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
37610 ENDIF
37611 CHAMAL=CHAB1
37612 IF(IPIP.EQ.1)THEN
37613 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
37614 ELSEIF(IPIP.EQ.2)THEN
37615 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
37616 ENDIF
37617 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
37618C IREJ=1
37619 IPCO=0
37620C RETURN
37621C WRITE(6,*)' MUSQBS1 jump back from chain 9',
37622C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
37623 GO TO 3466
37624 ENDIF
37625 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
37626 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
37627 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
37628 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
37629 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
37630 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
37631 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
37632 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
37633C
37634 IPCO=0
37635 IGCOUN=9+IIGLU1+IIGLU2
37636 RETURN
37637 END
37638
37639*$ CREATE MGSQBS2.FOR
37640*COPY MGSQBS2
37641C
37642C
37643C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
37644 SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37645 * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,ISQ,IGCOUN)
37646C
37647C GSQBS-2 diagram (split target diquark)
37648C
37649 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
37650 SAVE
37651
37652 PARAMETER ( LINP = 10 ,
37653 & LOUT = 6 ,
37654 & LDAT = 9 )
37655* event history
37656 PARAMETER (NMXHKK=200000)
37657 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
37658 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
37659 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
37660* extended event history
37661 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
37662 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
37663 & IHIST(2,NMXHKK)
37664* Lorentz-parameters of the current interaction
37665 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
37666 & UMO,PPCM,EPROJ,PPROJ
37667* diquark-breaking mechanism
37668 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
37669
37670C
37671 PARAMETER (NTMHKK= 300)
37672 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37673 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37674 +(4,NTMHKK)
37675
37676*KEEP,XSEADI.
37677 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
37678 +SSMIMQ,VVMTHR
37679*KEEP,DPRIN.
37680 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
37681C
37682C GSQBS-2 diagram (split target diquark)
37683C
37684C
37685C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
37686C Input chain 2(NC2) valence-diquark(NC2P)-sea-quark(NC2T)
37687C
37688C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
37689C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37690C
37691C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37692C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37693C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37694C
37695C
37696C
37697C Put new chains into COMMON /HKKTMP/
37698C
37699 IIGLU1=NC1T-NC1P-1
37700 IIGLU2=NC2T-NC2P-1
37701 IGCOUN=0
37702C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37703 CVQ=1.D0
37704 IREJ=0
37705C IF(IPIP.EQ.2)THEN
37706C WRITE(6,*)' MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37707C * 'IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN)',
37708C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37709C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN
37710C ENDIF
37711C
37712C
37713C
37714C determine x-values of NC1T diquark
37715 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37716 XVQP=PHKK(4,NC1P)*2.D0/UMO
37717C
37718C determine x-values of sea quark pair
37719C
37720 IPCO=1
37721 ICOU=0
37722 2234 CONTINUE
37723 ICOU=ICOU+1
37724 IF(ICOU.GE.500)THEN
37725 IREJ=1
37726 IF(ISQ.EQ.3)IREJ=3
37727 IF(IPCO.GE.3)
37728 & WRITE(LOUT,*)' MGSQBS2 Rejection 2234 ICOU. GT.500'
37729 IPCO=0
37730 RETURN
37731 ENDIF
37732 IF(IPCO.GE.3)
37733 & WRITE(LOUT,*)'MGSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37734 * UMO, XDIQT,XVQP
37735 XSQ=0.D0
37736 XSAQ=0.D0
37737**NEW
37738C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37739 IF (IPIP.EQ.1) THEN
37740 XQMAX = XDIQT/2.0D0
37741 XAQMAX = 2.D0*XVQP/3.0D0
37742 ELSE
37743 XQMAX = 2.D0*XVQP/3.0D0
37744 XAQMAX = XDIQT/2.0D0
37745 ENDIF
37746 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37747 ISAQ = 6+ISQ
37748C write(*,*) 'MGSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37749**
37750 IF(IPCO.GE.3)
37751 & WRITE(LOUT,*)'MGSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37752 IF(IREJ.GE.1)THEN
37753 IF(IPCO.GE.3)
37754 & WRITE(LOUT,*)'MGSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37755 IPCO=0
37756 RETURN
37757 ENDIF
37758 IF(IPIP.EQ.1)THEN
37759 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37760 ELSEIF(IPIP.EQ.2)THEN
37761 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37762 ENDIF
37763 IF(IPCO.GE.3)THEN
37764 WRITE(LOUT,'(A,4E12.4)')' MGSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37765 * XDIQT,XVQP,XSQ,XSAQ
37766 ENDIF
37767C
37768C subtract xsq,xsaq from NC1T diquark and NC1P quark
37769C
37770C XSQ=0.D0
37771 IF(IPIP.EQ.1)THEN
37772 XDIQT=XDIQT-XSQ
37773 XVQP =XVQP -XSAQ
37774 ELSEIF(IPIP.EQ.2)THEN
37775 XDIQT=XDIQT-XSAQ
37776 XVQP =XVQP -XSQ
37777 ENDIF
37778 IF(IPCO.GE.3)
37779 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37780C
37781C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37782C
37783 XVTHRO=CVQ/UMO
37784 IVTHR=0
37785 3466 CONTINUE
37786 IF(IVTHR.EQ.10)THEN
37787 IREJ=1
37788 IF(ISQ.EQ.3)IREJ=3
37789 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 3466 reject IVTHR 10'
37790 IPCO=0
37791 RETURN
37792 ENDIF
37793 IVTHR=IVTHR+1
37794 XVTHR=XVTHRO/(201-IVTHR)
37795 UNOPRV=UNON
37796 380 CONTINUE
37797 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37798 IREJ=1
37799 IF(ISQ.EQ.3)IREJ=3
37800 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 Rejection 380 XVTHR large ',
37801 * XVTHR
37802 IPCO=0
37803 RETURN
37804 ENDIF
37805 IF(DT_RNDM(V).LT.0.5D0)THEN
37806 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37807 XVTQII=XDIQT-XVTQI
37808 ELSE
37809 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37810 XVTQI=XDIQT-XVTQII
37811 ENDIF
37812 IF(IPCO.GE.3)THEN
37813 WRITE(LOUT,'(A,2E12.4)')' MGSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37814 ENDIF
37815C
37816C Prepare 4 momenta of new chains and chain ends
37817C
37818C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37819C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37820C +(4,NTMHKK)
37821C
37822C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37823C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37824C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37825C
37826C SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37827C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IGCOUN)
37828C
37829 IF(IPIP.EQ.1)THEN
37830 XSQ1=XSQ
37831 XSAQ1=XSAQ
37832 ISQ1=ISQ
37833 ISAQ1=ISAQ
37834 ELSEIF(IPIP.EQ.2)THEN
37835 XSQ1=XSAQ
37836 XSAQ1=XSQ
37837 ISQ1=ISAQ
37838 ISAQ1=ISQ
37839 ENDIF
37840 KK11=IP21
37841C IDHKT(1) =1000*IPP11+100*IPP12+1
37842 KK21=IPP11
37843 KK22=IPP12
37844 XGIVE=0.D0
37845 IF(IPIP.EQ.1)THEN
37846 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37847 ELSEIF(IPIP.EQ.2)THEN
37848 IDHKT(4+IIGLU1) =ISAQ1
37849 ENDIF
37850 ISTHKT(4+IIGLU1) =961
37851 JMOHKT(1,4+IIGLU1)=NC1P
37852 JMOHKT(2,4+IIGLU1)=0
37853 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37854 JDAHKT(2,4+IIGLU1)=0
37855C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37856 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37857 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37858 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37859 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37860C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37861 XXMIST=(PHKT(4,4+IIGLU1)**2-
37862 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37863 *PHKT(1,4+IIGLU1)**2)
37864 IF(XXMIST.GT.0.D0)THEN
37865 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37866 ELSE
37867 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
37868 XXMIST=ABS(XXMIST)
37869 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37870 ENDIF
37871 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37872 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37873 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37874 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37875 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37876 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37877 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37878 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37879 IDHKT(5+IIGLU1) =IP22
37880 ISTHKT(5+IIGLU1) =962
37881 JMOHKT(1,5+IIGLU1)=NC1T
37882 JMOHKT(2,5+IIGLU1)=0
37883 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37884 JDAHKT(2,5+IIGLU1)=0
37885 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37886 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37887 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37888 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37889C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37890 XXMIST=(PHKT(4,5+IIGLU1)**2-
37891 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37892 *PHKT(1,5+IIGLU1)**2)
37893 IF(XXMIST.GT.0.D0)THEN
37894 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37895 ELSE
37896 WRITE(LOUT,*)' MGSQBS2 XXMIST', XXMIST
37897 XXMIST=ABS(XXMIST)
37898 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37899 ENDIF
37900 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37901 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37902 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37903 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37904 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37905 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37906 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37907 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37908 IDHKT(6+IIGLU1) =88888
37909 ISTHKT(6+IIGLU1) =96
37910 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37911 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37912 JDAHKT(1,6+IIGLU1)=0
37913 JDAHKT(2,6+IIGLU1)=0
37914 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37915 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37916 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37917 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37918 PHKT(5,6+IIGLU1)
37919 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37920 * -PHKT(3,6+IIGLU1)**2)
37921 CHAMAL=CHAM1
37922 IF(IPIP.EQ.1)THEN
37923 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37924 ELSEIF(IPIP.EQ.2)THEN
37925 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37926 ENDIF
37927C---------------------------------------------------
37928 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37929 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
37930C we drop chain 6 and give the energy to chain 3
37931 IDHKT(6+IIGLU1)=22888
37932 XGIVE=1.D0
37933C WRITE(6,*)' drop chain 6 xgive=1'
37934 GO TO 7788
37935 ELSEIF(IDHKT(4+IIGLU1).EQ.-IP21)THEN
37936C we drop chain 6 and give the energy to chain 3
37937C and change KK11 to IDHKT(5)
37938 IDHKT(6+IIGLU1)=22888
37939 XGIVE=1.D0
37940C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(5)'
37941 KK11=IDHKT(5+IIGLU1)
37942 GO TO 7788
37943 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP11)THEN
37944C we drop chain 6 and give the energy to chain 3
37945C and change KK21 to IDHKT(5+IIGLU1)
37946C IDHKT(1) =1000*IPP11+100*IPP12+1
37947 IDHKT(6+IIGLU1)=22888
37948 XGIVE=1.D0
37949C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(5+IIGLU1)'
37950 KK21=IDHKT(5+IIGLU1)
37951 GO TO 7788
37952 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP12)THEN
37953C we drop chain 6 and give the energy to chain 3
37954C and change KK22 to IDHKT(5)
37955C IDHKT(1) =1000*IPP11+100*IPP12+1
37956 IDHKT(6+IIGLU1)=22888
37957 XGIVE=1.D0
37958C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(5+IIGLU1)'
37959 KK22=IDHKT(5+IIGLU1)
37960 GO TO 7788
37961 ENDIF
37962C IREJ=1
37963 IPCO=0
37964C RETURN
37965 GO TO 3466
37966 ENDIF
37967 7788 CONTINUE
37968C---------------------------------------------------
37969 IF(IPIP.GE.3)THEN
37970 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37971 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37972 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37973 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37974 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37975 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37976 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37977 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37978 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37979 ENDIF
37980 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37981 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37982 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37983 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37984 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
37985 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
37986 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
37987 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
37988C IDHKT(1) =1000*IPP11+100*IPP12+1
37989 IF(IPIP.EQ.1)THEN
37990 IDHKT(1) =1000*KK21+100*KK22+3
37991 IF(IDHKT(1).EQ.1203)IDHKT(1)=2103
37992 IF(IDHKT(1).EQ.1303)IDHKT(1)=3103
37993 IF(IDHKT(1).EQ.2303)IDHKT(1)=3203
37994 ELSEIF(IPIP.EQ.2)THEN
37995 IDHKT(1) =1000*KK21+100*KK22-3
37996 IF(IDHKT(1).EQ.-1203)IDHKT(1)=-2103
37997 IF(IDHKT(1).EQ.-1303)IDHKT(1)=-3103
37998 IF(IDHKT(1).EQ.-2303)IDHKT(1)=-3203
37999 ENDIF
38000 ISTHKT(1) =961
38001 JMOHKT(1,1)=NC2P
38002 JMOHKT(2,1)=0
38003 JDAHKT(1,1)=3+IIGLU1
38004 JDAHKT(2,1)=0
38005C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
38006 PHKT(1,1) =PHKK(1,NC2P)
38007 *+XGIVE*PHKT(1,4+IIGLU1)
38008 PHKT(2,1) =PHKK(2,NC2P)
38009 *+XGIVE*PHKT(2,4+IIGLU1)
38010 PHKT(3,1) =PHKK(3,NC2P)
38011 *+XGIVE*PHKT(3,4+IIGLU1)
38012 PHKT(4,1) =PHKK(4,NC2P)
38013 *+XGIVE*PHKT(4,4+IIGLU1)
38014C PHKT(5,1) =PHKK(5,NC2P)
38015 XXMIST=PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38016 *PHKT(1,1)**2
38017 IF(XXMIST.GT.0.D0)THEN
38018 PHKT(5,1) =SQRT(XXMIST)
38019 ELSE
38020 WRITE(LOUT,*)'MGSQBS2',XXMIST
38021 XXMIST=ABS(XXMIST)
38022 PHKT(5,1) =SQRT(XXMIST)
38023 ENDIF
38024 VHKT(1,1) =VHKK(1,NC2P)
38025 VHKT(2,1) =VHKK(2,NC2P)
38026 VHKT(3,1) =VHKK(3,NC2P)
38027 VHKT(4,1) =VHKK(4,NC2P)
38028 WHKT(1,1) =WHKK(1,NC2P)
38029 WHKT(2,1) =WHKK(2,NC2P)
38030 WHKT(3,1) =WHKK(3,NC2P)
38031 WHKT(4,1) =WHKK(4,NC2P)
38032C Add here IIGLU1 gluons to this chaina
38033 PG1=0.D0
38034 PG2=0.D0
38035 PG3=0.D0
38036 PG4=0.D0
38037 IF(IIGLU1.GE.1)THEN
38038 JJG=NC1P
38039 DO 61 IIG=2,2+IIGLU1-1
38040 KKG=JJG+IIG-1
38041 IDHKT(IIG) =IDHKK(KKG)
38042 ISTHKT(IIG) =921
38043 JMOHKT(1,IIG)=KKG
38044 JMOHKT(2,IIG)=0
38045 JDAHKT(1,IIG)=3+IIGLU1
38046 JDAHKT(2,IIG)=0
38047 PHKT(1,IIG)=PHKK(1,KKG)
38048 PG1=PG1+ PHKT(1,IIG)
38049 PHKT(2,IIG)=PHKK(2,KKG)
38050 PG2=PG2+ PHKT(2,IIG)
38051 PHKT(3,IIG)=PHKK(3,KKG)
38052 PG3=PG3+ PHKT(3,IIG)
38053 PHKT(4,IIG)=PHKK(4,KKG)
38054 PG4=PG4+ PHKT(4,IIG)
38055 PHKT(5,IIG)=PHKK(5,KKG)
38056 VHKT(1,IIG) =VHKK(1,KKG)
38057 VHKT(2,IIG) =VHKK(2,KKG)
38058 VHKT(3,IIG) =VHKK(3,KKG)
38059 VHKT(4,IIG) =VHKK(4,KKG)
38060 WHKT(1,IIG) =WHKK(1,KKG)
38061 WHKT(2,IIG) =WHKK(2,KKG)
38062 WHKT(3,IIG) =WHKK(3,KKG)
38063 WHKT(4,IIG) =WHKK(4,KKG)
38064 61 CONTINUE
38065 ENDIF
38066C IDHKT(2) =IP21
38067 IDHKT(2+IIGLU1) =KK11
38068 ISTHKT(2+IIGLU1) =962
38069 JMOHKT(1,2+IIGLU1)=NC1T
38070 JMOHKT(2,2+IIGLU1)=0
38071 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38072 JDAHKT(2,2+IIGLU1)=0
38073 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
38074C * +0.5D0*PHKK(1,NC2T)
38075 *+XGIVE*PHKT(1,5+IIGLU1)
38076 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
38077C *+0.5D0*PHKK(2,NC2T)
38078 *+XGIVE*PHKT(2,5+IIGLU1)
38079 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
38080C *+0.5D0*PHKK(3,NC2T)
38081 *+XGIVE*PHKT(3,5+IIGLU1)
38082 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
38083C *+0.5D0*PHKK(4,NC2T)
38084 *+XGIVE*PHKT(4,5+IIGLU1)
38085C PHKT(5,2) =PHKK(5,NC1T)
38086 XXMIST=(PHKT(4,2+IIGLU1)**2-
38087 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38088 *PHKT(1,2+IIGLU1)**2)
38089 IF(XXMIST.GT.0.D0)THEN
38090 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38091 ELSE
38092 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
38093 XXMIST=ABS(XXMIST)
38094 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38095 ENDIF
38096 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
38097 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
38098 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
38099 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
38100 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
38101 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
38102 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
38103 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
38104 IDHKT(3+IIGLU1) =88888
38105 ISTHKT(3+IIGLU1) =96
38106 JMOHKT(1,3+IIGLU1)=1
38107 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38108 JDAHKT(1,3+IIGLU1)=0
38109 JDAHKT(2,3+IIGLU1)=0
38110 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38111 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38112 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38113 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38114 PHKT(5,3+IIGLU1)
38115 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38116 * -PHKT(3,3+IIGLU1)**2)
38117 IF(IPIP.EQ.3)THEN
38118 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
38119 * JDAHKT(1,1),
38120 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38121 DO 71 IIG=2,2+IIGLU1-1
38122 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38123 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38124 * JDAHKT(1,IIG),
38125 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38126 71 CONTINUE
38127 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38128 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38129 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38130 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38131 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38132 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38133 ENDIF
38134 CHAMAL=CHAB1
38135 IF(IPIP.EQ.1)THEN
38136 IF(IPP11.GE.3.OR.IPP12.GE.3.OR.IP21.GE.3)CHAMAL=CHAB3
38137 ELSEIF(IPIP.EQ.2)THEN
38138 IF(IPP11.LE.-3.OR.IPP12.LE.-3.OR.IP21.LE.-3)CHAMAL=CHAB3
38139 ENDIF
38140 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38141C IREJ=1
38142 IPCO=0
38143C RETURN
38144 GO TO 3466
38145 ENDIF
38146 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38147 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38148 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38149 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38150 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38151 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38152 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38153 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38154C IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+1
38155 IDHKT(7+IIGLU1) =IP1
38156 ISTHKT(7+IIGLU1) =961
38157 JMOHKT(1,7+IIGLU1)=NC1P
38158 JMOHKT(2,7+IIGLU1)=0
38159 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38160 JDAHKT(2,7+IIGLU1)=0
38161 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
38162 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
38163 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
38164 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
38165C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
38166 XXMIST=(PHKT(4,7+IIGLU1)**2-
38167 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38168 *PHKT(1,7+IIGLU1)**2)
38169 IF(XXMIST.GT.0.D0)THEN
38170 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38171 ELSE
38172 WRITE(LOUT,*)' MGSQBS2, XXMIST',XXMIST
38173 XXMIST=ABS(XXMIST)
38174 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38175 ENDIF
38176 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
38177 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
38178 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
38179 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
38180 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
38181 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
38182 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
38183 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38184C IDHKT(7) =1000*IPP1+100*ISQ+1
38185C Insert here the IIGLU2 gluons
38186 PG1=0.D0
38187 PG2=0.D0
38188 PG3=0.D0
38189 PG4=0.D0
38190 IF(IIGLU2.GE.1)THEN
38191 JJG=NC2P
38192 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38193 KKG=JJG+IIG-7-IIGLU1
38194 IDHKT(IIG) =IDHKK(KKG)
38195 ISTHKT(IIG) =921
38196 JMOHKT(1,IIG)=KKG
38197 JMOHKT(2,IIG)=0
38198 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38199 JDAHKT(2,IIG)=0
38200 PHKT(1,IIG)=PHKK(1,KKG)
38201 PG1=PG1+ PHKT(1,IIG)
38202 PHKT(2,IIG)=PHKK(2,KKG)
38203 PG2=PG2+ PHKT(2,IIG)
38204 PHKT(3,IIG)=PHKK(3,KKG)
38205 PG3=PG3+ PHKT(3,IIG)
38206 PHKT(4,IIG)=PHKK(4,KKG)
38207 PG4=PG4+ PHKT(4,IIG)
38208 PHKT(5,IIG)=PHKK(5,KKG)
38209 VHKT(1,IIG) =VHKK(1,KKG)
38210 VHKT(2,IIG) =VHKK(2,KKG)
38211 VHKT(3,IIG) =VHKK(3,KKG)
38212 VHKT(4,IIG) =VHKK(4,KKG)
38213 WHKT(1,IIG) =WHKK(1,KKG)
38214 WHKT(2,IIG) =WHKK(2,KKG)
38215 WHKT(3,IIG) =WHKK(3,KKG)
38216 WHKT(4,IIG) =WHKK(4,KKG)
38217 81 CONTINUE
38218 ENDIF
38219 IF(IPIP.EQ.1)THEN
38220 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
38221 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
38222 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
38223 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
38224 ELSEIF(IPIP.EQ.2)THEN
38225**NEW
38226C IDHKT(8) =1000*IPP2+100*(-ISQ1+6)-3
38227 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
38228**
38229 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
38230 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
38231 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
38232 ENDIF
38233 ISTHKT(8+IIGLU1+IIGLU2) =962
38234 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
38235 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38236 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38237 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38238C PHKT(1,8) =0.5D0*PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ/(XDIQT+XSQ)
38239C PHKT(2,8) =0.5D0*PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ/(XDIQT+XSQ)
38240C PHKT(3,8) =0.5D0*PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ/(XDIQT+XSQ)
38241C PHKT(4,8) =0.5D0*PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ/(XDIQT+XSQ)
38242 PHKT(1,8+IIGLU1+IIGLU2) =
38243 * PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
38244 PHKT(2,8+IIGLU1+IIGLU2) =
38245 * PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
38246 PHKT(3,8+IIGLU1+IIGLU2) =
38247 * PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
38248 PHKT(4,8+IIGLU1+IIGLU2) =
38249 * PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
38250C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
38251C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
38252 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
38253C IREJ=1
38254C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
38255 IPCO=0
38256C RETURN
38257 GO TO 3466
38258 ENDIF
38259C PHKT(5,8) =PHKK(5,NC2T)
38260 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38261 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38262 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38263 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
38264 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
38265 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
38266 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
38267 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
38268 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
38269 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
38270 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
38271 IDHKT(9+IIGLU1+IIGLU2) =88888
38272 ISTHKT(9+IIGLU1+IIGLU2) =96
38273 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38274 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38275 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38276 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38277 PHKT(1,9+IIGLU1+IIGLU2)
38278 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38279 PHKT(2,9+IIGLU1+IIGLU2)
38280 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38281 PHKT(3,9+IIGLU1+IIGLU2)
38282 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38283 PHKT(4,9+IIGLU1+IIGLU2)
38284 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38285 PHKT(5,9+IIGLU1+IIGLU2)
38286 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
38287 * PHKT(2,9+IIGLU1+IIGLU2)**2
38288 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38289 IF(IPIP.GE.3)THEN
38290 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38291 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38292 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38293 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38294 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38295 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38296 * JDAHKT(1,IIG),
38297 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38298 91 CONTINUE
38299 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
38300 * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
38301 *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
38302 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38303 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38304 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38305 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38306 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38307 ENDIF
38308 CHAMAL=CHAB1
38309 IF(IPIP.EQ.1)THEN
38310 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38311 ELSEIF(IPIP.EQ.2)THEN
38312 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38313 ENDIF
38314 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38315C IREJ=1
38316 IPCO=0
38317C RETURN
38318 GO TO 3466
38319 ENDIF
38320 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38321 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38322 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38323 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38324 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38325 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38326 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38327 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38328C
38329 IPCO=0
38330 IGCOUN=9+IIGLU1+IIGLU2
38331 RETURN
38332 END
38333
38334*$ CREATE MUSQBS1.FOR
38335*COPY MUSQBS1
38336C
38337C
38338C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
38339 SUBROUTINE MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38340 * IP11,IP12,IP2,IPP1,IPP2,IPIP,ISQ,IGCOUN)
38341C
38342C USQBS-1 diagram (split projectile diquark)
38343C
38344 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
38345 SAVE
38346
38347 PARAMETER ( LINP = 10 ,
38348 & LOUT = 6 ,
38349 & LDAT = 9 )
38350* event history
38351 PARAMETER (NMXHKK=200000)
38352 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
38353 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
38354 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
38355* extended event history
38356 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
38357 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
38358 & IHIST(2,NMXHKK)
38359* Lorentz-parameters of the current interaction
38360 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
38361 & UMO,PPCM,EPROJ,PPROJ
38362* diquark-breaking mechanism
38363 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
38364
38365C
38366 PARAMETER (NTMHKK= 300)
38367 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38368 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38369 +(4,NTMHKK)
38370*KEEP,XSEADI.
38371 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
38372 +SSMIMQ,VVMTHR
38373*KEEP,DPRIN.
38374 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
38375 COMMON /EVFLAG/ NUMEV
38376C
38377C USQBS-1 diagram (split projectile diquark)
38378C
38379C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
38380C Input chain 2(NC2) sea-quark(NC2P)-sea-antiquark(NC2T)
38381C
38382C Create quark(qsP)-antiquark(aqsT) pair, energy from NC1P and NC1T
38383C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38384C
38385C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38386C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38387C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38388C
38389C Put new chains into COMMON /HKKTMP/
38390C
38391 IIGLU1=NC1T-NC1P-1
38392 IIGLU2=NC2T-NC2P-1
38393 IGCOUN=0
38394C WRITE(6,*)'MUSQBS1: IIGLU1,IIGLU2,IPIP ',IIGLU1,IIGLU2,IPIP
38395 CVQ=1.D0
38396 IREJ=0
38397 IF(IPIP.EQ.3)THEN
38398C IF(NUMEV.EQ.-324)THEN
38399 WRITE(LOUT,*)' MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
38400 * ' IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN)',
38401 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38402 * IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN
38403 ENDIF
38404C
38405C
38406C
38407C determine x-values of NC1P diquark
38408 XDIQP=PHKK(4,NC1P)*2.D0/UMO
38409 XVQT=PHKK(4,NC1T)*2.D0/UMO
38410C
38411C determine x-values of sea quark pair
38412C
38413 IPCO=1
38414 ICOU=0
38415 2234 CONTINUE
38416 ICOU=ICOU+1
38417 IF(ICOU.GE.500)THEN
38418 IREJ=1
38419 IF(ISQ.EQ.3)IREJ=3
38420 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 2234 ICOU. GT.100'
38421 IPCO=0
38422 RETURN
38423 ENDIF
38424 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
38425 * UMO, XDIQP,XVQT
38426 XSQ=0.D0
38427 XSAQ=0.D0
38428**NEW
38429C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
38430 IF (IPIP.EQ.1) THEN
38431 XQMAX = XDIQP/2.0D0
38432 XAQMAX = 2.D0*XVQT/3.0D0
38433 ELSE
38434 XQMAX = 2.D0*XVQT/3.0D0
38435 XAQMAX = XDIQP/2.0D0
38436 ENDIF
38437 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
38438 ISAQ = 6+ISQ
38439C write(*,*) 'MUSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
38440**
38441 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38442 IF(IREJ.GE.1)THEN
38443 IF(IPCO.GE.3)
38444 & WRITE(LOUT,*)'MUSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38445 IPCO=0
38446 RETURN
38447 ENDIF
38448 IF(IPIP.EQ.1)THEN
38449 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38450 ELSEIF(IPIP.EQ.2)THEN
38451 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38452 ENDIF
38453 IF(IPCO.GE.3)THEN
38454 WRITE(LOUT,'(A,4E12.4)')' MUSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
38455 * XDIQP,XVQT,XSQ,XSAQ
38456 ENDIF
38457C
38458C subtract xsq,xsaq from NC1P diquark and NC1T quark
38459C
38460C XSQ=0.D0
38461 IF(IPIP.EQ.1)THEN
38462 XDIQP=XDIQP-XSQ
38463 XVQT =XVQT -XSAQ
38464 ELSEIF(IPIP.EQ.2)THEN
38465 XDIQP=XDIQP-XSAQ
38466 XVQT =XVQT -XSQ
38467 ENDIF
38468 IF(IPCO.GE.3)
38469 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
38470C
38471C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38472C
38473 XVTHRO=CVQ/UMO
38474 IVTHR=0
38475 3466 CONTINUE
38476 IF(IVTHR.EQ.10)THEN
38477 IREJ=1
38478 IF(ISQ.EQ.3)IREJ=3
38479 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 3466 reject IVTHR 10'
38480 IPCO=0
38481 RETURN
38482 ENDIF
38483 IVTHR=IVTHR+1
38484 XVTHR=XVTHRO/(201-IVTHR)
38485 UNOPRV=UNON
38486 380 CONTINUE
38487 IF(XVTHR.GT.0.66D0*XDIQP)THEN
38488 IREJ=1
38489 IF(ISQ.EQ.3)IREJ=3
38490 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 380 XVTHR large ',
38491 * XVTHR
38492 IPCO=0
38493 RETURN
38494 ENDIF
38495 IF(DT_RNDM(V).LT.0.5D0)THEN
38496 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38497 XVPQII=XDIQP-XVPQI
38498 ELSE
38499 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38500 XVPQI=XDIQP-XVPQII
38501 ENDIF
38502 IF(IPCO.GE.3)THEN
38503 WRITE(LOUT,'(A,2E12.4)')' MUSQBS1:XVPQI,XVPQII ',XVPQI,XVPQII
38504 ENDIF
38505C
38506C Prepare 4 momenta of new chains and chain ends
38507C
38508C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38509C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38510C +(4,NTMHKK)
38511C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38512C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38513C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38514 IF(IPIP.EQ.1)THEN
38515 XSQ1=XSQ
38516 XSAQ1=XSAQ
38517 ISQ1=ISQ
38518 ISAQ1=ISAQ
38519 ELSEIF(IPIP.EQ.2)THEN
38520 XSQ1=XSAQ
38521 XSAQ1=XSQ
38522 ISQ1=ISAQ
38523 ISAQ1=ISQ
38524 ENDIF
38525 IDHKT(1) =IP11
38526 ISTHKT(1) =931
38527 JMOHKT(1,1)=NC1P
38528 JMOHKT(2,1)=0
38529 JDAHKT(1,1)=3+IIGLU1
38530 JDAHKT(2,1)=0
38531C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38532 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
38533 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
38534 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
38535 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
38536C PHKT(5,1) =PHKK(5,NC1P)
38537 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38538 *PHKT(1,1)**2)
38539 IF(XMIST.GE.0.D0)THEN
38540 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38541 *PHKT(1,1)**2)
38542 ELSE
38543C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38544 PHKT(5,1)=0.D0
38545 ENDIF
38546 VHKT(1,1) =VHKK(1,NC1P)
38547 VHKT(2,1) =VHKK(2,NC1P)
38548 VHKT(3,1) =VHKK(3,NC1P)
38549 VHKT(4,1) =VHKK(4,NC1P)
38550 WHKT(1,1) =WHKK(1,NC1P)
38551 WHKT(2,1) =WHKK(2,NC1P)
38552 WHKT(3,1) =WHKK(3,NC1P)
38553 WHKT(4,1) =WHKK(4,NC1P)
38554C Add here IIGLU1 gluons to this chaina
38555 PG1=0.D0
38556 PG2=0.D0
38557 PG3=0.D0
38558 PG4=0.D0
38559 IF(IIGLU1.GE.1)THEN
38560 JJG=NC1P
38561 DO 61 IIG=2,2+IIGLU1-1
38562 KKG=JJG+IIG-1
38563 IDHKT(IIG) =IDHKK(KKG)
38564 ISTHKT(IIG) =921
38565 JMOHKT(1,IIG)=KKG
38566 JMOHKT(2,IIG)=0
38567 JDAHKT(1,IIG)=3+IIGLU1
38568 JDAHKT(2,IIG)=0
38569 PHKT(1,IIG)=PHKK(1,KKG)
38570 PG1=PG1+ PHKT(1,IIG)
38571 PHKT(2,IIG)=PHKK(2,KKG)
38572 PG2=PG2+ PHKT(2,IIG)
38573 PHKT(3,IIG)=PHKK(3,KKG)
38574 PG3=PG3+ PHKT(3,IIG)
38575 PHKT(4,IIG)=PHKK(4,KKG)
38576 PG4=PG4+ PHKT(4,IIG)
38577 PHKT(5,IIG)=PHKK(5,KKG)
38578 VHKT(1,IIG) =VHKK(1,KKG)
38579 VHKT(2,IIG) =VHKK(2,KKG)
38580 VHKT(3,IIG) =VHKK(3,KKG)
38581 VHKT(4,IIG) =VHKK(4,KKG)
38582 WHKT(1,IIG) =WHKK(1,KKG)
38583 WHKT(2,IIG) =WHKK(2,KKG)
38584 WHKT(3,IIG) =WHKK(3,KKG)
38585 WHKT(4,IIG) =WHKK(4,KKG)
38586 61 CONTINUE
38587 ENDIF
38588 IDHKT(2+IIGLU1) =IPP2
38589 ISTHKT(2+IIGLU1) =932
38590 JMOHKT(1,2+IIGLU1)=NC2T
38591 JMOHKT(2,2+IIGLU1)=0
38592 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38593 JDAHKT(2,2+IIGLU1)=0
38594 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
38595 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
38596 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
38597 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
38598C PHKT(5,2+IIGLU1) =PHKK(5,NC2T)
38599 XMIST=(PHKT(4,2+IIGLU1)**2-
38600 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38601 *PHKT(1,2+IIGLU1)**2)
38602 IF(XMIST.GT.0.D0)THEN
38603 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
38604 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38605 *PHKT(1,2+IIGLU1)**2)
38606 ELSE
38607C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38608 PHKT(5,2+IIGLU1)=0.D0
38609 ENDIF
38610 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
38611 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
38612 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
38613 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
38614 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
38615 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
38616 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
38617 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
38618 IDHKT(3+IIGLU1) =88888
38619 ISTHKT(3+IIGLU1) =94
38620 JMOHKT(1,3+IIGLU1)=1
38621 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38622 JDAHKT(1,3+IIGLU1)=0
38623 JDAHKT(2,3+IIGLU1)=0
38624 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38625 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38626 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38627 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38628 XMIST
38629 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38630 * -PHKT(3,3+IIGLU1)**2)
38631 IF(XMIST.GE.0.D0)THEN
38632 PHKT(5,3+IIGLU1)
38633 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38634 * -PHKT(3,3+IIGLU1)**2)
38635 ELSE
38636C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38637 PHKT(5,1)=0.D0
38638 ENDIF
38639 IF(IPIP.GE.3)THEN
38640C IF(NUMEV.EQ.-324)THEN
38641 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),
38642 * JMOHKT(2,1),JDAHKT(1,1),
38643 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38644 DO 71 IIG=2,2+IIGLU1-1
38645 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38646 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38647 * JDAHKT(1,IIG),
38648 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38649 71 CONTINUE
38650 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38651 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38652 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38653 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38654 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38655 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38656 ENDIF
38657 CHAMAL=CHAM1
38658 IF(IPIP.EQ.1)THEN
38659 IF(IP11.GE.3.OR.IPP2.GE.3)CHAMAL=CHAM3
38660 ELSEIF(IPIP.EQ.2)THEN
38661 IF(IP11.LE.-3.OR.IPP2.LE.-3)CHAMAL=CHAM3
38662 ENDIF
38663 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38664C IREJ=1
38665 IPCO=0
38666C RETURN
38667C WRITE(6,*)' MUSQBS1 jump back from chain 3'
38668 GO TO 3466
38669 ENDIF
38670 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38671 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38672 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38673 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38674 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38675 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38676 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38677 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38678 IDHKT(4+IIGLU1) =IP12
38679 ISTHKT(4+IIGLU1) =931
38680 JMOHKT(1,4+IIGLU1)=NC1P
38681 JMOHKT(2,4+IIGLU1)=0
38682 JDAHKT(1,4+IIGLU1)=6+IIGLU1
38683 JDAHKT(2,4+IIGLU1)=0
38684C create chain 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38685 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
38686 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
38687 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
38688 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
38689C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
38690 XMIST =(PHKT(4,4+IIGLU1)**2-
38691 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38692 *PHKT(1,4+IIGLU1)**2)
38693 IF(XMIST.GT.0.D0)THEN
38694 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
38695 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38696 *PHKT(1,4+IIGLU1)**2)
38697 ELSE
38698C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38699 PHKT(5,4+IIGLU1)=0.D0
38700 ENDIF
38701 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
38702 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
38703 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
38704 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
38705 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
38706 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
38707 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
38708 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
38709 IF(IPIP.EQ.1)THEN
38710 IDHKT(5+IIGLU1) =-(ISAQ1-6)
38711 ELSEIF(IPIP.EQ.2)THEN
38712 IDHKT(5+IIGLU1) =ISAQ1
38713 ENDIF
38714 ISTHKT(5+IIGLU1) =932
38715 JMOHKT(1,5+IIGLU1)=NC1T
38716 JMOHKT(2,5+IIGLU1)=0
38717 JDAHKT(1,5+IIGLU1)=6+IIGLU1
38718 JDAHKT(2,5+IIGLU1)=0
38719 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
38720 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
38721 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
38722 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
38723C IF( PHKT(4,5).EQ.0.D0)THEN
38724C IREJ=1
38725CIPCO=0
38726CRETURN
38727C ENDIF
38728C PHKT(5,5) =PHKK(5,NC1T)
38729 XMIST=(PHKT(4,5+IIGLU1)**2-
38730 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38731 *PHKT(1,5+IIGLU1)**2)
38732 IF(XMIST.GT.0.D0)THEN
38733 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
38734 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38735 *PHKT(1,5+IIGLU1)**2)
38736 ELSE
38737C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38738 PHKT(5,5+IIGLU1)=0.D0
38739 ENDIF
38740 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
38741 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
38742 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
38743 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
38744 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
38745 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
38746 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
38747 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
38748 IDHKT(6+IIGLU1) =88888
38749 ISTHKT(6+IIGLU1) =94
38750 JMOHKT(1,6+IIGLU1)=4+IIGLU1
38751 JMOHKT(2,6+IIGLU1)=5+IIGLU1
38752 JDAHKT(1,6+IIGLU1)=0
38753 JDAHKT(2,6+IIGLU1)=0
38754 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
38755 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
38756 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
38757 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
38758 XMIST
38759 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38760 * -PHKT(3,6+IIGLU1)**2)
38761 IF(XMIST.GE.0.D0)THEN
38762 PHKT(5,6+IIGLU1)
38763 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38764 * -PHKT(3,6+IIGLU1)**2)
38765 ELSE
38766C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38767 PHKT(5,1)=0.D0
38768 ENDIF
38769C IF(IPIP.EQ.3)THEN
38770 CHAMAL=CHAM1
38771 IF(IPIP.EQ.1)THEN
38772 IF(IP12.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
38773 ELSEIF(IPIP.EQ.2)THEN
38774 IF(IP12.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
38775 ENDIF
38776 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
38777C IREJ=1
38778 IPCO=0
38779C RETURN
38780C WRITE(6,*)' MGSQBS1 jump back from chain 6',
38781C * CHAMAL,PHKT(5,6+IIGLU1)
38782 GO TO 3466
38783 ENDIF
38784 IF(IPIP.GE.3)THEN
38785C IF(NUMEV.EQ.-324)THEN
38786 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
38787 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
38788 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
38789 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
38790 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
38791 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
38792 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
38793 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
38794 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
38795 ENDIF
38796 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
38797 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
38798 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
38799 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
38800 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
38801 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
38802 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
38803 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
38804 IF(IPIP.EQ.1)THEN
38805 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+3
38806 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
38807 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
38808 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
38809 ELSEIF(IPIP.EQ.2)THEN
38810 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
38811 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
38812 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
38813 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
38814C WRITE(6,*)'IDHKT(7+IIGLU1),IPP1,ISQ1',IDHKT(7+IIGLU1),IPP1,ISQ1
38815 ENDIF
38816 ISTHKT(7+IIGLU1) =931
38817 JMOHKT(1,7+IIGLU1)=NC2P
38818 JMOHKT(2,7+IIGLU1)=0
38819 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38820 JDAHKT(2,7+IIGLU1)=0
38821C create chain 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38822 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
38823 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
38824 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
38825 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
38826C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
38827C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
38828 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
38829C IREJ=1
38830C WRITE(6,*)'reject PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P)'
38831 IPCO=0
38832C RETURN
38833 GO TO 3466
38834 ENDIF
38835C PHKT(5,7) =PHKK(5,NC2P)
38836 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
38837 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38838 *PHKT(1,7+IIGLU1)**2)
38839 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
38840 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
38841 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
38842 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
38843 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
38844 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
38845 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
38846 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38847C Insert here the IIGLU2 gluons
38848 PG1=0.D0
38849 PG2=0.D0
38850 PG3=0.D0
38851 PG4=0.D0
38852 IF(IIGLU2.GE.1)THEN
38853 JJG=NC2P
38854 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38855 KKG=JJG+IIG-7-IIGLU1
38856 IDHKT(IIG) =IDHKK(KKG)
38857 ISTHKT(IIG) =921
38858 JMOHKT(1,IIG)=KKG
38859 JMOHKT(2,IIG)=0
38860 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38861 JDAHKT(2,IIG)=0
38862 PHKT(1,IIG)=PHKK(1,KKG)
38863 PG1=PG1+ PHKT(1,IIG)
38864 PHKT(2,IIG)=PHKK(2,KKG)
38865 PG2=PG2+ PHKT(2,IIG)
38866 PHKT(3,IIG)=PHKK(3,KKG)
38867 PG3=PG3+ PHKT(3,IIG)
38868 PHKT(4,IIG)=PHKK(4,KKG)
38869 PG4=PG4+ PHKT(4,IIG)
38870 PHKT(5,IIG)=PHKK(5,KKG)
38871 VHKT(1,IIG) =VHKK(1,KKG)
38872 VHKT(2,IIG) =VHKK(2,KKG)
38873 VHKT(3,IIG) =VHKK(3,KKG)
38874 VHKT(4,IIG) =VHKK(4,KKG)
38875 WHKT(1,IIG) =WHKK(1,KKG)
38876 WHKT(2,IIG) =WHKK(2,KKG)
38877 WHKT(3,IIG) =WHKK(3,KKG)
38878 WHKT(4,IIG) =WHKK(4,KKG)
38879 81 CONTINUE
38880 ENDIF
38881 IDHKT(8+IIGLU1+IIGLU2) =IP2
38882 ISTHKT(8+IIGLU1+IIGLU2) =932
38883 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
38884 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38885 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38886 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38887 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
38888 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
38889 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
38890 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
38891C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
38892 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
38893 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38894 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38895 IF(XMIST.GT.0.D0)THEN
38896 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38897 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38898 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38899 ELSE
38900C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38901 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
38902 ENDIF
38903 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
38904 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
38905 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
38906 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
38907 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
38908 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
38909 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
38910 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
38911 IDHKT(9+IIGLU1+IIGLU2) =88888
38912 ISTHKT(9+IIGLU1+IIGLU2) =94
38913 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38914 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38915 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38916 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38917 PHKT(1,9+IIGLU1+IIGLU2)
38918 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38919 PHKT(2,9+IIGLU1+IIGLU2)
38920 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38921 PHKT(3,9+IIGLU1+IIGLU2)
38922 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38923 PHKT(4,9+IIGLU1+IIGLU2)
38924 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38925 XMIST
38926 *=(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38927 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38928 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38929 IF(XMIST.GE.0.D0)THEN
38930 PHKT(5,9+IIGLU1+IIGLU2)
38931 *=SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38932 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38933 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38934 ELSE
38935C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38936 PHKT(5,1)=0.D0
38937 ENDIF
38938 IF(IPIP.GE.3)THEN
38939C IF(NUMEV.EQ.-324)THEN
38940 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38941 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38942 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38943 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38944 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38945 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38946 * JDAHKT(1,IIG),
38947 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38948 91 CONTINUE
38949 WRITE(LOUT,*)8+IIGLU1+IIGLU2,
38950 * ISTHKT(8+IIGLU1+IIGLU2),IDHKT(8+IIGLU1+IIGLU2),
38951 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
38952 *JDAHKT(1,8+IIGLU1+IIGLU2),
38953 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38954 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38955 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38956 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38957 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38958 ENDIF
38959 CHAMAL=CHAB1
38960 IF(IPIP.EQ.1)THEN
38961 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38962 ELSEIF(IPIP.EQ.2)THEN
38963 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38964 ENDIF
38965 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38966C IREJ=1
38967 IPCO=0
38968C RETURN
38969C WRITE(6,*)' MGSQBS1 jump back from chain 9',
38970C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
38971 GO TO 3466
38972 ENDIF
38973 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38974 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38975 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38976 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38977 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38978 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38979 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38980 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38981C
38982 IPCO=0
38983 IGCOUN=9+IIGLU1+IIGLU2
38984 RETURN
38985 END
38986
38987*$ CREATE MGSQBS1.FOR
38988*COPY MGSQBS1
38989C
38990C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
38991 SUBROUTINE MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38992 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,ISQ,IGCOUN)
38993C
38994C GSQBS-1 diagram (split projectile diquark)
38995C
38996 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
38997 SAVE
38998
38999 PARAMETER ( LINP = 10 ,
39000 & LOUT = 6 ,
39001 & LDAT = 9 )
39002* event history
39003 PARAMETER (NMXHKK=200000)
39004 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39005 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39006 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39007* extended event history
39008 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39009 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39010 & IHIST(2,NMXHKK)
39011* Lorentz-parameters of the current interaction
39012 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
39013 & UMO,PPCM,EPROJ,PPROJ
39014* diquark-breaking mechanism
39015 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39016
39017C
39018 PARAMETER (NTMHKK= 300)
39019 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39020 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39021 +(4,NTMHKK)
39022*KEEP,XSEADI.
39023 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
39024 +SSMIMQ,VVMTHR
39025*KEEP,DPRIN.
39026 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
39027C
39028C GSQBS-1 diagram (split projectile diquark)
39029C
39030C
39031C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
39032C Input chain 2(NC2) sea-quark(NC2P)-valence-diquark(NC2T)
39033C
39034C Create quark(qs)-antiquark(aqs) pair energy from NC1P and NC1T
39035C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39036C
39037C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39038C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39039C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39040C
39041C Put new chains into COMMON /HKKTMP/
39042C
39043 IIGLU1=NC1T-NC1P-1
39044 IIGLU2=NC2T-NC2P-1
39045 IGCOUN=0
39046C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
39047 CVQ=1.D0
39048 NNNC1=IDHKK(NC1)/1000
39049 MMMC1=IDHKK(NC1)-NNNC1*1000
39050 KKKC1=ISTHKK(NC1)
39051 NNNC2=IDHKK(NC2)/1000
39052 MMMC2=IDHKK(NC2)-NNNC2*1000
39053 KKKC2=ISTHKK(NC2)
39054 IREJ=0
39055 IF(IPIP.EQ.3)THEN
39056 WRITE(LOUT,*)' MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
39057 * ' IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN)',
39058 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
39059 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN
39060 ENDIF
39061C
39062C
39063C
39064C determine x-values of NC1P diquark
39065 XDIQP=PHKK(4,NC1P)*2.D0/UMO
39066 XVQT=PHKK(4,NC1T)*2.D0/UMO
39067C
39068C determine x-values of sea quark pair
39069C
39070 IPCO=1
39071 ICOU=0
39072 2234 CONTINUE
39073 ICOU=ICOU+1
39074 IF(ICOU.GE.500)THEN
39075 IREJ=1
39076 IF(ISQ.EQ.3)IREJ=3
39077 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 Rejection 2234 ICOU. GT.100'
39078 IPCO=0
39079 RETURN
39080 ENDIF
39081 IF(IPCO.GE.3)WRITE(LOUT,*)'MGSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
39082 * UMO, XDIQP,XVQT
39083 XSQ=0.D0
39084 XSAQ=0.D0
39085**NEW
39086C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
39087 IF (IPIP.EQ.1) THEN
39088 XQMAX = XDIQP/2.0D0
39089 XAQMAX = 2.D0*XVQT/3.0D0
39090 ELSE
39091 XQMAX = 2.D0*XVQT/3.0D0
39092 XAQMAX = XDIQP/2.0D0
39093 ENDIF
39094 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
39095 ISAQ = 6+ISQ
39096C write(*,*) 'MGSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
39097**
39098 IF(IPCO.GE.3)
39099 & WRITE(LOUT,*)'MGSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39100 IF(IREJ.GE.1)THEN
39101 IF(IPCO.GE.3)
39102 & WRITE(LOUT,*)'MGSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39103 IPCO=0
39104 RETURN
39105 ENDIF
39106 IF(IPIP.EQ.1)THEN
39107 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39108 ELSEIF(IPIP.EQ.2)THEN
39109 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39110 ENDIF
39111 IF(IPCO.GE.3)THEN
39112 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
39113 * XDIQP,XVQT,XSQ,XSAQ
39114 ENDIF
39115C
39116C subtract xsq,xsaq from NC1P diquark and NC1T quark
39117C
39118C XSQ=0.D0
39119 IF(IPIP.EQ.1)THEN
39120 XDIQP=XDIQP-XSQ
39121**NEW
39122C IF (XDIQP.LT.0.0D0) WRITE(*,*) ' mgsqbs1: XDIQP<0!!',XDIQP
39123**
39124 XVQT =XVQT -XSAQ
39125 ELSEIF(IPIP.EQ.2)THEN
39126 XDIQP=XDIQP-XSAQ
39127 XVQT =XVQT -XSQ
39128 ENDIF
39129 IF(IPCO.GE.3)
39130 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
39131C
39132C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39133C
39134 XVTHRO=CVQ/UMO
39135 IVTHR=0
39136 3466 CONTINUE
39137 IF(IVTHR.EQ.10)THEN
39138 IREJ=1
39139 IF(ISQ.EQ.3)IREJ=3
39140 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 3466 reject IVTHR 10'
39141 IPCO=0
39142 RETURN
39143 ENDIF
39144 IVTHR=IVTHR+1
39145 XVTHR=XVTHRO/(201-IVTHR)
39146 UNOPRV=UNON
39147 380 CONTINUE
39148 IF(XVTHR.GT.0.66D0*XDIQP)THEN
39149 IREJ=1
39150 IF(ISQ.EQ.3)IREJ=3
39151 IF(IPCO.GE.3)
39152 & WRITE(LOUT,*)' MGSQBS1 Rejection 380 XVTHR large ',
39153 * XVTHR
39154 IPCO=0
39155 RETURN
39156 ENDIF
39157 IF(DT_RNDM(V).LT.0.5D0)THEN
39158 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39159 XVPQII=XDIQP-XVPQI
39160 ELSE
39161 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39162 XVPQI=XDIQP-XVPQII
39163 ENDIF
39164 IF(IPCO.GE.3)THEN
39165 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1:XVTHR,XDIQP,XVPQI,XVPQII ',
39166 * XVTHR,XDIQP,XVPQI,XVPQII
39167 ENDIF
39168C
39169C Prepare 4 momenta of new chains and chain ends
39170C
39171C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39172C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39173C +(4,NTMHKK)
39174C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39175C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39176C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39177 IF(IPIP.EQ.1)THEN
39178 XSQ1=XSQ
39179 XSAQ1=XSAQ
39180 ISQ1=ISQ
39181 ISAQ1=ISAQ
39182 ELSEIF(IPIP.EQ.2)THEN
39183 XSQ1=XSAQ
39184 XSAQ1=XSQ
39185 ISQ1=ISAQ
39186 ISAQ1=ISQ
39187 ENDIF
39188 KK11=IP11
39189C IDHKT(2) =1000*IPP21+100*IPP22+1
39190 KK21= IPP21
39191 KK22= IPP22
39192 XGIVE=0.D0
39193 IDHKT(4+IIGLU1) =IP12
39194 ISTHKT(4+IIGLU1) =921
39195 JMOHKT(1,4+IIGLU1)=NC1P
39196 JMOHKT(2,4+IIGLU1)=0
39197 JDAHKT(1,4+IIGLU1)=6+IIGLU1
39198 JDAHKT(2,4+IIGLU1)=0
39199**NEW
39200 IF ((XDIQP.LT.0.0D0).OR.(XVPQII.LT.0.0D0).OR.
39201 & (XSQ1.LT.0.0D0)) WRITE(LOUT,*) ' mgsqbs1: ',XDIQP,XVPQII,XSQ1
39202**
39203 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
39204 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
39205 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
39206 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
39207C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
39208 XXMIST=(PHKT(4,4+IIGLU1)**2-
39209 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
39210 * PHKT(1,4+IIGLU1)**2)
39211 IF(XXMIST.GT.0.D0)THEN
39212 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39213 ELSE
39214 WRITE(LOUT,*)'MGSQBS1 XXMIST',XXMIST
39215 XXMIST=ABS(XXMIST)
39216 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39217 ENDIF
39218 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
39219 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
39220 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
39221 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
39222 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
39223 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
39224 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
39225 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
39226 IF(IPIP.EQ.1)THEN
39227 IDHKT(5+IIGLU1) =-(ISAQ1-6)
39228 ELSEIF(IPIP.EQ.2)THEN
39229 IDHKT(5+IIGLU1) =ISAQ1
39230 ENDIF
39231 ISTHKT(5+IIGLU1) =922
39232 JMOHKT(1,5+IIGLU1)=NC1T
39233 JMOHKT(2,5+IIGLU1)=0
39234 JDAHKT(1,5+IIGLU1)=6+IIGLU1
39235 JDAHKT(2,5+IIGLU1)=0
39236**NEW
39237 IF ((XSAQ1.LT.0.0D0).OR.(XVQT .LT.0.0D0))
39238 & WRITE(LOUT,*) ' mgsqbs2: ',XSAQ1,XVQT
39239**
39240 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
39241 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
39242 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
39243 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
39244C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
39245 XMIST=(PHKT(4,5+IIGLU1)**2-
39246 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39247 *PHKT(1,5+IIGLU1)**2)
39248 IF(XMIST.GT.0.D0)THEN
39249 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
39250 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39251 *PHKT(1,5+IIGLU1)**2)
39252 ELSE
39253C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
39254 PHKT(5,5+IIGLU1)=0.D0
39255 ENDIF
39256 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
39257 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
39258 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
39259 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
39260 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
39261 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
39262 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
39263 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
39264 IDHKT(6+IIGLU1) =88888
39265C IDHKT(6) =1000*NNNC1+MMMC1
39266 ISTHKT(6+IIGLU1) =93
39267C ISTHKT(6) =KKKC1
39268 JMOHKT(1,6+IIGLU1)=4+IIGLU1
39269 JMOHKT(2,6+IIGLU1)=5+IIGLU1
39270 JDAHKT(1,6+IIGLU1)=0
39271 JDAHKT(2,6+IIGLU1)=0
39272 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
39273 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
39274 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
39275 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
39276 PHKT(5,6+IIGLU1)
39277 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
39278 * -PHKT(3,6+IIGLU1)**2)
39279 CHAMAL=CHAM1
39280 IF(IPIP.EQ.1)THEN
39281 IF(IP12.GE.3.OR.ISAQ.GE.9)CHAMAL=CHAM3
39282 ELSEIF(IPIP.EQ.2)THEN
39283 IF(IP12.LE.-3.OR.ISAQ.GE.3)CHAMAL=CHAM3
39284 ENDIF
39285 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
39286 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
39287C we drop chain 6 and give the energy to chain 3
39288 IDHKT(6+IIGLU1)=33888
39289 XGIVE=1.D0
39290C WRITE(6,*)' drop chain 6 xgive=1'
39291 GO TO 7788
39292 ELSEIF(IDHKT(5+IIGLU1).EQ.-IP11)THEN
39293C we drop chain 6 and give the energy to chain 3
39294C and change KK11 to IDHKT(4)
39295 IDHKT(6+IIGLU1)=33888
39296 XGIVE=1.D0
39297C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(4+IIGLU1)'
39298 KK11=IDHKT(4+IIGLU1)
39299 GO TO 7788
39300 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP21)THEN
39301C we drop chain 6 and give the energy to chain 3
39302C and change KK21 to IDHKT(4)
39303C IDHKT(2) =1000*IPP21+100*IPP22+1
39304 IDHKT(6+IIGLU1)=33888
39305 XGIVE=1.D0
39306C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(4+IIGLU1)'
39307 KK21=IDHKT(4+IIGLU1)
39308 GO TO 7788
39309 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP22)THEN
39310C we drop chain 6 and give the energy to chain 3
39311C and change KK22 to IDHKT(4)
39312C IDHKT(2) =1000*IPP21+100*IPP22+1
39313 IDHKT(6+IIGLU1)=33888
39314 XGIVE=1.D0
39315C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(4+IIGLU1)'
39316 KK22=IDHKT(4+IIGLU1)
39317 GO TO 7788
39318 ENDIF
39319C IREJ=1
39320 IPCO=0
39321C RETURN
39322C WRITE(6,*)' MGSQBS1 jump back from chain 6'
39323 GO TO 3466
39324 ENDIF
39325 7788 CONTINUE
39326 IF(IPIP.GE.3)THEN
39327 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
39328 * JMOHKT(1,4+IIGLU1),
39329 * JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
39330 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
39331 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
39332 * JMOHKT(1,5+IIGLU1),
39333 * JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
39334 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
39335 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
39336 * JMOHKT(1,6+IIGLU1),
39337 * JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
39338 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
39339 ENDIF
39340 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
39341 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
39342 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
39343 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
39344 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
39345 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
39346 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
39347 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
39348C IDHKT(1) =IP11
39349 IDHKT(1) =KK11
39350 ISTHKT(1) =921
39351 JMOHKT(1,1)=NC1P
39352 JMOHKT(2,1)=0
39353 JDAHKT(1,1)=3+IIGLU1
39354 JDAHKT(2,1)=0
39355 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
39356C * +0.5D0*PHKK(1,NC2P)
39357 *+XGIVE*PHKT(1,4+IIGLU1)
39358 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
39359C * +0.5D0*PHKK(2,NC2P)
39360 *+XGIVE*PHKT(2,4+IIGLU1)
39361 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
39362C * +0.5D0*PHKK(3,NC2P)
39363 *+XGIVE*PHKT(3,4+IIGLU1)
39364 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
39365C * +0.5D0*PHKK(4,NC2P)
39366 *+XGIVE*PHKT(4,4+IIGLU1)
39367C PHKT(5,1) =PHKK(5,NC1P)
39368 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39369 *PHKT(1,1)**2)
39370 IF(XMIST.GE.0.D0)THEN
39371 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39372 *PHKT(1,1)**2)
39373 ELSE
39374C WRITE(6,*)'MGSQBS1 parton 1 mass square LT.0 ',XMIST
39375 PHKT(5,1)=0.D0
39376 ENDIF
39377 VHKT(1,1) =VHKK(1,NC1P)
39378 VHKT(2,1) =VHKK(2,NC1P)
39379 VHKT(3,1) =VHKK(3,NC1P)
39380 VHKT(4,1) =VHKK(4,NC1P)
39381 WHKT(1,1) =WHKK(1,NC1P)
39382 WHKT(2,1) =WHKK(2,NC1P)
39383 WHKT(3,1) =WHKK(3,NC1P)
39384 WHKT(4,1) =WHKK(4,NC1P)
39385C Add here IIGLU1 gluons to this chaina
39386 PG1=0.D0
39387 PG2=0.D0
39388 PG3=0.D0
39389 PG4=0.D0
39390 IF(IIGLU1.GE.1)THEN
39391 JJG=NC1P
39392 DO 61 IIG=2,2+IIGLU1-1
39393 KKG=JJG+IIG-1
39394 IDHKT(IIG) =IDHKK(KKG)
39395 ISTHKT(IIG) =921
39396 JMOHKT(1,IIG)=KKG
39397 JMOHKT(2,IIG)=0
39398 JDAHKT(1,IIG)=3+IIGLU1
39399 JDAHKT(2,IIG)=0
39400 PHKT(1,IIG)=PHKK(1,KKG)
39401 PG1=PG1+ PHKT(1,IIG)
39402 PHKT(2,IIG)=PHKK(2,KKG)
39403 PG2=PG2+ PHKT(2,IIG)
39404 PHKT(3,IIG)=PHKK(3,KKG)
39405 PG3=PG3+ PHKT(3,IIG)
39406 PHKT(4,IIG)=PHKK(4,KKG)
39407 PG4=PG4+ PHKT(4,IIG)
39408 PHKT(5,IIG)=PHKK(5,KKG)
39409 VHKT(1,IIG) =VHKK(1,KKG)
39410 VHKT(2,IIG) =VHKK(2,KKG)
39411 VHKT(3,IIG) =VHKK(3,KKG)
39412 VHKT(4,IIG) =VHKK(4,KKG)
39413 WHKT(1,IIG) =WHKK(1,KKG)
39414 WHKT(2,IIG) =WHKK(2,KKG)
39415 WHKT(3,IIG) =WHKK(3,KKG)
39416 WHKT(4,IIG) =WHKK(4,KKG)
39417 61 CONTINUE
39418 ENDIF
39419C IDHKT(2) =1000*IPP21+100*IPP22+1
39420 IF(IPIP.EQ.1)THEN
39421 IDHKT(2+IIGLU1) =1000*KK21+100*KK22+3
39422 IF(IDHKT(2+IIGLU1).EQ.1203)IDHKT(2+IIGLU1)=2103
39423 IF(IDHKT(2+IIGLU1).EQ.1303)IDHKT(2+IIGLU1)=3103
39424 IF(IDHKT(2+IIGLU1).EQ.2303)IDHKT(2+IIGLU1)=3203
39425 ELSEIF(IPIP.EQ.2)THEN
39426 IDHKT(2+IIGLU1) =1000*KK21+100*KK22-3
39427 IF(IDHKT(2+IIGLU1).EQ.-1203)IDHKT(2+IIGLU1)=-2103
39428 IF(IDHKT(2+IIGLU1).EQ.-1303)IDHKT(2+IIGLU1)=-3103
39429 IF(IDHKT(2+IIGLU1).EQ.-2303)IDHKT(2+IIGLU1)=-3203
39430 ENDIF
39431 ISTHKT(2+IIGLU1) =922
39432 JMOHKT(1,2+IIGLU1)=NC2T
39433 JMOHKT(2,2+IIGLU1)=0
39434 JDAHKT(1,2+IIGLU1)=3+IIGLU1
39435 JDAHKT(2,2+IIGLU1)=0
39436 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
39437 *+XGIVE*PHKT(1,5+IIGLU1)
39438 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
39439 *+XGIVE*PHKT(2,5+IIGLU1)
39440 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
39441 *+XGIVE*PHKT(3,5+IIGLU1)
39442 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
39443 *+XGIVE*PHKT(4,5+IIGLU1)
39444C PHKT(5,2) =PHKK(5,NC2T)
39445 XMIST=(PHKT(4,2+IIGLU1)**2-
39446 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39447 *PHKT(1,2+IIGLU1)**2)
39448 IF(XMIST.GT.0.D0)THEN
39449 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
39450 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39451 *PHKT(1,2+IIGLU1)**2)
39452 ELSE
39453C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39454 PHKT(5,2+IIGLU1)=0.D0
39455 ENDIF
39456 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
39457 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
39458 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
39459 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
39460 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
39461 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
39462 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
39463 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
39464 IDHKT(3+IIGLU1) =88888
39465C IDHKT(3) =1000*NNNC1+MMMC1+10
39466 ISTHKT(3+IIGLU1) =93
39467C ISTHKT(3) =KKKC1
39468 JMOHKT(1,3+IIGLU1)=1
39469 JMOHKT(2,3+IIGLU1)=2+IIGLU1
39470 JDAHKT(1,3+IIGLU1)=0
39471 JDAHKT(2,3+IIGLU1)=0
39472 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
39473 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
39474 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
39475 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
39476 PHKT(5,3+IIGLU1)
39477 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
39478 * -PHKT(3,3+IIGLU1)**2)
39479 IF(IPIP.GE.3)THEN
39480 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
39481 * JDAHKT(1,1),
39482 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
39483 DO 71 IIG=2,2+IIGLU1-1
39484 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39485 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39486 * JDAHKT(1,IIG),
39487 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39488 71 CONTINUE
39489 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),
39490 & IDHKT(2),JMOHKT(1,2+IIGLU1),
39491 * JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
39492 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
39493 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
39494 * JMOHKT(1,3+IIGLU1),
39495 * JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
39496 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
39497 ENDIF
39498 CHAMAL=CHAB1
39499**NEW
39500C IF(IPIP.EQ.1)THEN
39501C IF(IPP21.GE.3.OR.IPP22.GE.3.OR.IP11.GE.3)CHAMAL=CHAB3
39502C ELSEIF(IPIP.EQ.2)THEN
39503C IF(IPP21.LE.-3.OR.IPP22.LE.-3.OR.IP11.LE.-3)CHAMAL=CHAB3
39504C ENDIF
39505 IF(IPIP.EQ.1)THEN
39506 IF(KK21.GE.3.OR.KK22.GE.3.OR.KK11.GE.3)CHAMAL=CHAB3
39507 ELSEIF(IPIP.EQ.2)THEN
39508 IF(KK21.LE.-3.OR.KK22.LE.-3.OR.KK11.LE.-3)CHAMAL=CHAB3
39509 ENDIF
39510**
39511 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
39512C IREJ=1
39513 IPCO=0
39514C RETURN
39515C WRITE(6,*)' MGSQBS1 jump back from chain 3'
39516 GO TO 3466
39517 ENDIF
39518 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
39519 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
39520 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
39521 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
39522 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
39523 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
39524 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
39525 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
39526 IF(IPIP.EQ.1)THEN
39527 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ1+3
39528 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
39529 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
39530 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
39531 ELSEIF(IPIP.EQ.2)THEN
39532 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
39533 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
39534 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
39535 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
39536C WRITE(6,*)'IDHKT(7),IPP1,ISQ1',IDHKT(7),IPP1,ISQ1
39537 ENDIF
39538 ISTHKT(7+IIGLU1) =921
39539 JMOHKT(1,7+IIGLU1)=NC2P
39540 JMOHKT(2,7+IIGLU1)=0
39541 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
39542 JDAHKT(2,7+IIGLU1)=0
39543C PHKT(1,7) =0.5D0*PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ/(XDIQP+XSQ)
39544C PHKT(2,7) =0.5D0*PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ/(XDIQP+XSQ)
39545C PHKT(3,7) =0.5D0*PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ/(XDIQP+XSQ)
39546C PHKT(4,7+IIGLU1) =0.5D0*PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ/(XDIQP+XSQ)
39547**NEW
39548 IF ((XSQ1 .LT.0.0D0).OR.(XDIQP .LT.0.0D0))
39549 & WRITE(LOUT,*) ' mgsqbs3: ',XSQ1,XDIQP
39550**
39551 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
39552 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
39553 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
39554 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
39555C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
39556C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
39557 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
39558C IREJ=1
39559C WRITE(6,*)'reject PHKT(4,7).GE. PHKK(4,NC1P)'
39560 IPCO=0
39561C RETURN
39562 GO TO 3466
39563 ENDIF
39564C PHKT(5,7) =PHKK(5,NC2P)
39565 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
39566 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
39567 *PHKT(1,7+IIGLU1)**2)
39568 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
39569 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
39570 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
39571 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
39572 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
39573 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
39574 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
39575 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
39576C Insert here the IIGLU2 gluons
39577 PG1=0.D0
39578 PG2=0.D0
39579 PG3=0.D0
39580 PG4=0.D0
39581 IF(IIGLU2.GE.1)THEN
39582 JJG=NC2P
39583 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39584 KKG=JJG+IIG-7-IIGLU1
39585 IDHKT(IIG) =IDHKK(KKG)
39586 ISTHKT(IIG) =921
39587 JMOHKT(1,IIG)=KKG
39588 JMOHKT(2,IIG)=0
39589 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
39590 JDAHKT(2,IIG)=0
39591 PHKT(1,IIG)=PHKK(1,KKG)
39592 PG1=PG1+ PHKT(1,IIG)
39593 PHKT(2,IIG)=PHKK(2,KKG)
39594 PG2=PG2+ PHKT(2,IIG)
39595 PHKT(3,IIG)=PHKK(3,KKG)
39596 PG3=PG3+ PHKT(3,IIG)
39597 PHKT(4,IIG)=PHKK(4,KKG)
39598 PG4=PG4+ PHKT(4,IIG)
39599 PHKT(5,IIG)=PHKK(5,KKG)
39600 VHKT(1,IIG) =VHKK(1,KKG)
39601 VHKT(2,IIG) =VHKK(2,KKG)
39602 VHKT(3,IIG) =VHKK(3,KKG)
39603 VHKT(4,IIG) =VHKK(4,KKG)
39604 WHKT(1,IIG) =WHKK(1,KKG)
39605 WHKT(2,IIG) =WHKK(2,KKG)
39606 WHKT(3,IIG) =WHKK(3,KKG)
39607 WHKT(4,IIG) =WHKK(4,KKG)
39608 81 CONTINUE
39609 ENDIF
39610 IDHKT(8+IIGLU1+IIGLU2) =IP2
39611 ISTHKT(8+IIGLU1+IIGLU2) =922
39612 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
39613 JMOHKT(2,8+IIGLU1+IIGLU2)=0
39614 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
39615 JDAHKT(2,8+IIGLU1+IIGLU2)=0
39616**NEW
39617 IF ((XVQT.LT.0.0D0).OR.(XSAQ1 .LT.0.0D0))
39618 & WRITE(LOUT,*) ' mgsqbs4: ',XVQT,XSAQ1
39619**
39620 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
39621 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
39622 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
39623 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
39624C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
39625 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
39626 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39627 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39628 IF(XMIST.GT.0.D0)THEN
39629 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
39630 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39631 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39632 ELSE
39633C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39634 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
39635 ENDIF
39636 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
39637 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
39638 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
39639 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
39640 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
39641 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
39642 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
39643 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
39644 IDHKT(9+IIGLU1+IIGLU2) =88888
39645C IDHKT(9) =1000*NNNC2+MMMC2+10
39646 ISTHKT(9+IIGLU1+IIGLU2) =93
39647C ISTHKT(9) =KKKC2
39648 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
39649 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
39650 JDAHKT(1,9+IIGLU1+IIGLU2)=0
39651 JDAHKT(2,9+IIGLU1+IIGLU2)=0
39652 PHKT(1,9+IIGLU1+IIGLU2) =PHKT(1,7+IIGLU1)
39653 * +PHKT(1,8+IIGLU1+IIGLU2)+PG1
39654 PHKT(2,9+IIGLU1+IIGLU2) =PHKT(2,7+IIGLU1)
39655 * +PHKT(2,8+IIGLU1+IIGLU2)+PG2
39656 PHKT(3,9+IIGLU1+IIGLU2) =PHKT(3,7+IIGLU1)
39657 * +PHKT(3,8+IIGLU1+IIGLU2)+PG3
39658 PHKT(4,9+IIGLU1+IIGLU2) =PHKT(4,7+IIGLU1)
39659 * +PHKT(4,8+IIGLU1+IIGLU2)+PG4
39660 PHKT(5,9+IIGLU1+IIGLU2)
39661 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
39662 * PHKT(2,9+IIGLU1+IIGLU2)**2
39663 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
39664 IF(IPIP.GE.3)THEN
39665 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
39666 * JMOHKT(1,7+IIGLU1),
39667 * JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
39668 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
39669 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39670 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39671 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39672 * JDAHKT(1,IIG),
39673 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39674 91 CONTINUE
39675 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
39676 * IDHKT(8+IIGLU1+IIGLU2),
39677 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
39678 * JDAHKT(1,8+IIGLU1+IIGLU2),
39679 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
39680 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
39681 * IDHKT(9+IIGLU1+IIGLU2),
39682 * JMOHKT(1,9+IIGLU1+IIGLU2),JMOHKT(2,9+IIGLU1+IIGLU2),
39683 * JDAHKT(1,9+IIGLU1+IIGLU2),
39684 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
39685 ENDIF
39686 CHAMAL=CHAB1
39687 IF(IPIP.EQ.1)THEN
39688 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
39689 ELSEIF(IPIP.EQ.2)THEN
39690 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
39691 ENDIF
39692 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
39693C IREJ=1
39694 IPCO=0
39695C RETURN
39696C WRITE(6,*)' MGSQBS1 jump back from chain 9',
39697C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
39698 GO TO 3466
39699 ENDIF
39700 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
39701 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
39702 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
39703 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
39704 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
39705 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
39706 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
39707 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
39708C
39709 IGCOUN=9+IIGLU1+IIGLU2
39710 IPCO=0
39711 RETURN
39712 END
39713
39714*$ CREATE HKKHKT.FOR
39715*COPY HKKHKT
39716C
39717C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
39718C
39719 SUBROUTINE HKKHKT(I,J)
39720 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39721 SAVE
39722
39723* event history
39724 PARAMETER (NMXHKK=200000)
39725 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39726 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39727 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39728* extended event history
39729 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39730 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39731 & IHIST(2,NMXHKK)
39732
39733 PARAMETER (NTMHKK= 300)
39734 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39735 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39736 +(4,NTMHKK)
39737C
39738 ISTHKK(I) =ISTHKT(J)
39739 IDHKK(I) =IDHKT(J)
39740C IF(J.EQ.3.OR.J.EQ.6.OR.J.EQ.9)THEN
39741 IF(IDHKK(I).EQ.88888)THEN
39742C JMOHKK(1,I)=I-2
39743C JMOHKK(2,I)=I-1
39744 JMOHKK(1,I)=I-(J-JMOHKT(1,J))
39745 JMOHKK(2,I)=I-(J-JMOHKT(2,J))
39746 ELSE
39747 JMOHKK(1,I)=JMOHKT(1,J)
39748 JMOHKK(2,I)=JMOHKT(2,J)
39749 ENDIF
39750 JDAHKK(1,I)=JDAHKT(1,J)
39751 JDAHKK(2,I)=JDAHKT(2,J)
39752C IF(J.EQ.1.OR.J.EQ.4.OR.J.EQ.7)THEN
39753C JDAHKK(1,I)=I+2
39754C ELSEIF(J.EQ.2.OR.J.EQ.5.OR.J.EQ.8)THEN
39755C JDAHKK(1,I)=I+1
39756C ENDIF
39757 IF(JDAHKT(1,J).GT.0)THEN
39758 JDAHKK(1,I)=I+(JDAHKT(1,J)-J)
39759 ENDIF
39760 PHKK(1,I) =PHKT(1,J)
39761 PHKK(2,I) =PHKT(2,J)
39762 PHKK(3,I) =PHKT(3,J)
39763 PHKK(4,I) =PHKT(4,J)
39764 PHKK(5,I) =PHKT(5,J)
39765 VHKK(1,I) =VHKT(1,J)
39766 VHKK(2,I) =VHKT(2,J)
39767 VHKK(3,I) =VHKT(3,J)
39768 VHKK(4,I) =VHKT(4,J)
39769 WHKK(1,I) =WHKT(1,J)
39770 WHKK(2,I) =WHKT(2,J)
39771 WHKK(3,I) =WHKT(3,J)
39772 WHKK(4,I) =WHKT(4,J)
39773 RETURN
39774 END
39775
39776*$ CREATE DT_DBREAK.FOR
39777*COPY DT_DBREAK
39778*
39779*===dbreak=============================================================*
39780*
39781 SUBROUTINE DT_DBREAK(MODE)
39782
39783************************************************************************
39784* This is the steering subroutine for the different diquark breaking *
39785* mechanisms. *
39786* *
39787* MODE = 1 breaking of projectile diquark in qq-q chain using *
39788* a sea quark (q-qq chain) of the same projectile *
39789* = 2 breaking of target diquark in q-qq chain using *
39790* a sea quark (qq-q chain) of the same target *
39791* = 3 breaking of projectile diquark in qq-q chain using *
39792* a sea quark (q-aq chain) of the same projectile *
39793* = 4 breaking of target diquark in q-qq chain using *
39794* a sea quark (aq-q chain) of the same target *
39795* = 5 breaking of projectile anti-diquark in aqaq-aq chain using *
39796* a sea anti-quark (aq-aqaq chain) of the same projectile *
39797* = 6 breaking of target anti-diquark in aq-aqaq chain using *
39798* a sea anti-quark (aqaq-aq chain) of the same target *
39799* = 7 breaking of projectile anti-diquark in aqaq-aq chain using *
39800* a sea anti-quark (aq-q chain) of the same projectile *
39801* = 8 breaking of target anti-diquark in aq-aqaq chain using *
39802* a sea anti-quark (q-aq chain) of the same target *
39803* *
39804* Original version by J. Ranft. *
39805* This version dated 17.5.00 is written by S. Roesler. *
39806************************************************************************
39807
39808 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39809 SAVE
39810 PARAMETER ( LINP = 10 ,
39811 & LOUT = 6 ,
39812 & LDAT = 9 )
39813
39814* event history
39815 PARAMETER (NMXHKK=200000)
39816 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39817 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39818 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39819* extended event history
39820 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39821 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39822 & IHIST(2,NMXHKK)
39823* flags for input different options
39824 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
39825 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
39826 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
39827* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
39828 PARAMETER (MAXCHN=10000)
39829 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
39830* diquark-breaking mechanism
39831 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39832* flags for particle decays
39833 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
39834 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
39835 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
39836
39837*
39838* chain identifiers
39839* ( 1 = q-aq, 2 = aq-q, 3 = q-qq, 4 = qq-q,
39840* 5 = aq-adq, 6 = adq-aq, 7 = dq-adq, 8 = adq-dq )
39841 DIMENSION IDCHN1(8),IDCHN2(8)
39842 DATA IDCHN1 / 4, 3, 4, 3, 6, 5, 6, 5/
39843 DATA IDCHN2 / 3, 4, 1, 2, 5, 6, 2, 1/
39844*
39845* parton identifiers
39846* ( +-21/22 = valence, +-31/32 = Glauber-sea, +-41/42 = Pomeron (diff),
39847* +-51/52 = unitarity-sea, +-61/62 = gluons )
39848 DIMENSION ISP1P(8,3),ISP1T(8,3),ISP2P(8,3),ISP2T(8,3)
39849 DATA ISP1P / 21, 21, 21, 21, 21, 21, 21, 21,
39850 & 31, 31, 31, 31, 31, 31, 31, 31,
39851 & 41, 41, 41, 41, 51, 51, 51, 51/
39852 DATA ISP1T / 22, 22, 22, 22, 22, 22, 22, 22,
39853 & 32, 32, 32, 32, 32, 32, 32, 32,
39854 & 42, 42, 42, 42, 52, 52, 52, 52/
39855 DATA ISP2P / 31, 21, 31, 31, 21, 21, 21, 21,
39856 & 51, 31, 41, 41, 31, 31, 31, 31,
39857 & 0, 41, 51, 51, 51, 51, 51, 51/
39858 DATA ISP2T / 22, 32, 32, 32, 22, 22, 22, 22,
39859 & 32, 52, 42, 42, 32, 32, 32, 32,
39860 & 42, 0, 52, 52, 52, 52, 52, 52/
39861
39862 IF (NCHAIN.LE.0) RETURN
39863 DO 1 I=1,NCHAIN
39864 IDX1 = IDXCHN(1,I)
39865 IS1P = ABS(ISTHKK(JMOHKK(1,IDX1)))
39866 IS1T = ABS(ISTHKK(JMOHKK(2,IDX1)))
39867 IF ( (IDXCHN(2,I).EQ.IDCHN1(MODE))
39868 & .AND.
39869 & ((IS1P.EQ.ISP1P(MODE,1)).OR.(IS1P.EQ.ISP1P(MODE,2)).OR.
39870 & (IS1P.EQ.ISP1P(MODE,3)))
39871 & .AND.
39872 & ((IS1T.EQ.ISP1T(MODE,1)).OR.(IS1T.EQ.ISP1T(MODE,2)).OR.
39873 & (IS1T.EQ.ISP1T(MODE,3)))
39874 & ) THEN
39875 DO 2 J=1,NCHAIN
39876 IDX2 = IDXCHN(1,J)
39877 IS2P = ABS(ISTHKK(JMOHKK(1,IDX2)))
39878 IS2T = ABS(ISTHKK(JMOHKK(2,IDX2)))
39879 IF ( (IDXCHN(2,J).EQ.IDCHN2(MODE))
39880 & .AND.
39881 & ((IS2P.EQ.ISP2P(MODE,1)).OR.(IS2P.EQ.ISP2P(MODE,2))
39882 & .OR.(IS2P.EQ.ISP2P(MODE,3)))
39883 & .AND.
39884 & ((IS2T.EQ.ISP2T(MODE,1)).OR.(IS2T.EQ.ISP2T(MODE,2))
39885 & .OR.(IS2T.EQ.ISP2T(MODE,3)))
39886 & ) THEN
39887* find mother nucleons of the diquark to be splitted and of the
39888* sea-quark and reject this combination if it is not the same
39889 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.
39890 & (MODE.EQ.5).OR.(MODE.EQ.7)) THEN
39891 IANCES = 1
39892 ELSE
39893 IANCES = 2
39894 ENDIF
39895 IDXMO1 = JMOHKK(IANCES,IDX1)
39896 4 CONTINUE
39897 IF ((JMOHKK(1,IDXMO1).NE.0).AND.
39898 & (JMOHKK(2,IDXMO1).NE.0)) THEN
39899 IANC = IANCES
39900 ELSE
39901 IANC = 1
39902 ENDIF
39903 IF (JMOHKK(IANC,IDXMO1).NE.0) THEN
39904 IDXMO1 = JMOHKK(IANC,IDXMO1)
39905 GOTO 4
39906 ENDIF
39907 IDXMO2 = JMOHKK(IANCES,IDX2)
39908 5 CONTINUE
39909 IF ((JMOHKK(1,IDXMO2).NE.0).AND.
39910 & (JMOHKK(2,IDXMO2).NE.0)) THEN
39911 IANC = IANCES
39912 ELSE
39913 IANC = 1
39914 ENDIF
39915 IF (JMOHKK(IANC,IDXMO2).NE.0) THEN
39916 IDXMO2 = JMOHKK(IANC,IDXMO2)
39917 GOTO 5
39918 ENDIF
39919 IF (IDXMO1.NE.IDXMO2) GOTO 2
39920* quark content of projectile parton
39921 IP1 = IDHKK(JMOHKK(1,IDX1))
39922 IP11 = IP1/1000
39923 IP12 = (IP1-1000*IP11)/100
39924 IP2 = IDHKK(JMOHKK(2,IDX1))
39925 IP21 = IP2/1000
39926 IP22 = (IP2-1000*IP21)/100
39927* quark content of target parton
39928 IT1 = IDHKK(JMOHKK(1,IDX2))
39929 IT11 = IT1/1000
39930 IT12 = (IT1-1000*IT11)/100
39931 IT2 = IDHKK(JMOHKK(2,IDX2))
39932 IT21 = IT2/1000
39933 IT22 = (IT2-1000*IT21)/100
39934* split diquark and form new chains
39935 IF (MODE.EQ.1) THEN
39936 IF (IT1.EQ.4) GOTO 2
39937 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39938 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39939 & IP11,IP12,IP2,IT1,IT21,IT22,1,IPQ,IGCOUN)
39940 ELSEIF (MODE.EQ.2) THEN
39941 IF (IT2.EQ.4) GOTO 2
39942 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39943 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39944 & IP1,IP21,IP22,IT11,IT12,IT2,1,IPQ,IGCOUN)
39945 ELSEIF (MODE.EQ.3) THEN
39946 IF (IT1.EQ.4) GOTO 2
39947 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39948 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39949 & IP11,IP12,IP2,IT1,IT2,1,IPQ,IGCOUN)
39950 ELSEIF (MODE.EQ.4) THEN
39951 IF (IT2.EQ.4) GOTO 2
39952 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39953 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39954 & IP1,IP21,IP22,IT1,IT2,1,IPQ,IGCOUN)
39955 ELSEIF (MODE.EQ.5) THEN
39956 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39957 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39958 & IP11,IP12,IP2,IT1,IT21,IT22,2,IPQ,IGCOUN)
39959 ELSEIF (MODE.EQ.6) THEN
39960 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39961 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39962 & IP1,IP21,IP22,IT11,IT12,IT2,2,IPQ,IGCOUN)
39963 ELSEIF (MODE.EQ.7) THEN
39964 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39965 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39966 & IP11,IP12,IP2,IT1,IT2,2,IPQ,IGCOUN)
39967 ELSEIF (MODE.EQ.8) THEN
39968 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39969 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39970 & IP1,IP21,IP22,IT1,IT2,2,IPQ,IGCOUN)
39971 ENDIF
39972 IF (IREJ.GE.1) THEN
39973 if ((ipq.lt.0).or.(ipq.ge.4))
39974 & write(LOUT,*) 'ipq !!!',ipq,mode
39975 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
39976* accept or reject new chains corresponding to PDBSEA
39977 ELSE
39978 IF ((IPQ.EQ.1).OR.(IPQ.EQ.2)) THEN
39979 ACC = DBRKA(1,MODE)+DBRKA(2,MODE)
39980 REJ = DBRKR(1,MODE)+DBRKR(2,MODE)
39981 ELSEIF (IPQ.EQ.3) THEN
39982 ACC = DBRKA(3,MODE)
39983 REJ = DBRKR(3,MODE)
39984 ELSE
39985 WRITE(LOUT,*) ' inconsistent IPQ ! ',IPQ
39986 STOP
39987 ENDIF
39988 IF (ACC/(ACC+REJ).LE.PDBSEA(IPQ)) THEN
39989 DBRKA(IPQ,MODE) = DBRKA(IPQ,MODE)+1.0D0
39990 IACC = 1
39991 ELSE
39992 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
39993 IACC = 0
39994 ENDIF
39995* new chains have been accepted and are now copied into HKKEVT
39996 IF (IACC.EQ.1) THEN
39997 IF (LEMCCK) THEN
39998 CALL DT_EVTEMC(PHKK(1,IDX1),PHKK(2,IDX1),
39999 & PHKK(3,IDX1),PHKK(4,IDX1),
40000 & 1,IDUM1,IDUM2)
40001 CALL DT_EVTEMC(PHKK(1,IDX2),PHKK(2,IDX2),
40002 & PHKK(3,IDX2),PHKK(4,IDX2),
40003 & 2,IDUM1,IDUM2)
40004 ENDIF
40005 IDHKK(IDX1) = 99888
40006 IDHKK(IDX2) = 99888
40007 IDXCHN(2,I) = -1
40008 IDXCHN(2,J) = -1
40009 DO 3 K=1,IGCOUN
40010 NHKK = NHKK+1
40011 CALL HKKHKT(NHKK,K)
40012 IF ((LEMCCK).AND.(IDHKK(NHKK).EQ.88888))THEN
40013 PX = -PHKK(1,NHKK)
40014 PY = -PHKK(2,NHKK)
40015 PZ = -PHKK(3,NHKK)
40016 PE = -PHKK(4,NHKK)
40017 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
40018 ENDIF
40019 3 CONTINUE
40020 IF (LEMCCK) THEN
40021 CHKLEV = 0.1D0
40022 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,9000,
40023 & IREJ)
40024 IF (IREJ.NE.0) CALL DT_EVTOUT(4)
40025 ENDIF
40026 GOTO 1
40027 ENDIF
40028 ENDIF
40029 ENDIF
40030 2 CONTINUE
40031 ENDIF
40032 1 CONTINUE
40033 RETURN
40034 END
40035
40036*$ CREATE DT_CQPAIR.FOR
40037*COPY DT_CQPAIR
40038*
40039*===cqpair=============================================================*
40040*
40041 SUBROUTINE DT_CQPAIR(XQMAX,XAQMAX,XQ,XAQ,IFLV,IREJ)
40042
40043************************************************************************
40044* This subroutine Creates a Quark-antiquark PAIR from the sea. *
40045* *
40046* XQMAX maxium energy fraction of quark (input) *
40047* XAQMAX maxium energy fraction of antiquark (input) *
40048* XQ energy fraction of quark (output) *
40049* XAQ energy fraction of antiquark (output) *
40050* IFLV quark flavour (- antiquark flavor) (output) *
40051* *
40052* This version dated 14.5.00 is written by S. Roesler. *
40053************************************************************************
40054
40055 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
40056 SAVE
40057 PARAMETER ( LINP = 10 ,
40058 & LOUT = 6 ,
40059 & LDAT = 9 )
40060
40061* Lorentz-parameters of the current interaction
40062 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
40063 & UMO,PPCM,EPROJ,PPROJ
40064
40065*
40066 IREJ = 0
40067 XQ = 0.0D0
40068 XAQ = 0.0D0
40069*
40070* sample quark flavour
40071*
40072* set seasq here (the one from DTCHAI should be used in the future)
40073 SEASQ = 0.5D0
40074 IFLV = INT(1.0D0+DT_RNDM(XQMAX)*(2.0D0+SEASQ))
40075*
40076* sample energy fractions of sea pair
40077* we first sample the energy fraction of a gluon and then split the gluon
40078*
40079* maximum energy fraction of the gluon forced via input
40080 XGMAXI = XQMAX+XAQMAX
40081* minimum energy fraction of the gluon
40082 XTHR1 = 4.0D0 /UMO**2
40083 XTHR2 = 0.54D0/UMO**1.5D0
40084 XGMIN = MAX(XTHR1,XTHR2)
40085* maximum energy fraction of the gluon
40086 XGMAX = 0.3D0
40087 XGMAX = MIN(XGMAXI,XGMAX)
40088 IF (XGMIN.GE.XGMAX) THEN
40089 IREJ = 1
40090 RETURN
40091 ENDIF
40092*
40093* sample energy fraction of the gluon
40094 NLOOP = 0
40095 1 CONTINUE
40096 NLOOP = NLOOP+1
40097 IF (NLOOP.GE.50) THEN
40098 IREJ = 1
40099 RETURN
40100 ENDIF
40101 XGLUON = DT_SAMSQX(XGMIN,XGMAX)
40102 EGLUON = XGLUON*UMO/2.0D0
40103*
40104* split gluon into q-aq pair (we follow PHOJET's subroutine PHO_GLU2QU)
40105 ZMIN = MIN(0.1D0,0.5D0/EGLUON)
40106 ZMAX = 1.0D0-ZMIN
40107 RZ = DT_RNDM(ZMAX)
40108 XHLP = ((1.0D0-RZ)*ZMIN**3+RZ*ZMAX**3)**0.33333
40109 RQ = DT_RNDM(ZMAX)
40110 IF (RQ.LT.0.5D0) THEN
40111 XQ = XGLUON*XHLP
40112 XAQ = XGLUON-XQ
40113 ELSE
40114 XAQ = XGLUON*XHLP
40115 XQ = XGLUON-XAQ
40116 ENDIF
40117 IF ((XQ.GT.XQMAX).OR.(XAQ.GT.XAQMAX)) GOTO 1
40118
40119 RETURN
40120 END