]> git.uio.no Git - u/mrichter/AliRoot.git/blame - DPMJET/dpmjet3.0-5.f
Coverity fix (an obsolete constructor removed)
[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
2169 PARAMETER (NMXHKK=200000)
2170 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
2171 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
2172 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
2173* extended event history
2174 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
2175 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
2176 & IHIST(2,NMXHKK)
2177* particle properties (BAMJET index convention)
2178 CHARACTER*8 ANAME
2179 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2180 & IICH(210),IIBAR(210),K1(210),K2(210)
2181* properties of interacting particles
2182 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2183* Lorentz-parameters of the current interaction
2184 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
2185 & UMO,PPCM,EPROJ,PPROJ
2186* flags for input different options
2187 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2188 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2189 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2190* flags for particle decays
2191 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
2192 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
2193 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
2194* cuts for variable energy runs
2195 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
2196* Glauber formalism: flags and parameters for statistics
2197 LOGICAL LPROD
2198 CHARACTER*8 CGLB
2199 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
2200
2201 DIMENSION WHAT(6)
2202
2203 IREJ = 0
2204 ILOOP = 0
2205 100 CONTINUE
2206 IF (ILOOP.EQ.4) THEN
2207 WRITE(LOUT,1000) NEVHKK
2208 1000 FORMAT(1X,'KKINC: event ',I8,' rejected!')
2209 GOTO 9999
2210 ENDIF
2211 ILOOP = ILOOP+1
2212
2213* variable energy-runs, recalculate parameters for LT's
2214 IF ((ABS(VAREHI).GT.ZERO).OR.(IOGLB.EQ.100)) THEN
2215 PDUM = ZERO
2216 CDUM = ZERO
2217 CALL DT_LTINI(IDP,1,EPN,PDUM,CDUM,1)
2218 ENDIF
2219 IF (EPN.GT.EPROJ) THEN
2220 WRITE(LOUT,'(A,E9.3,2A,E9.3,A)')
2221 & ' Requested energy (',EPN,'GeV) exceeds',
2222 & ' initialization energy (',EPROJ,'GeV) !'
2223 STOP
2224 ENDIF
2225
2226* re-initialize /DTPRTA/
2227 IP = NPMASS
2228 IPZ = NPCHAR
2229 IT = NTMASS
2230 ITZ = NTCHAR
2231 IJPROJ = IDP
2232 IBPROJ = IIBAR(IJPROJ)
2233
2234* calculate nuclear potentials (common /DTNPOT/)
2235 CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0)
2236
2237* initialize treatment for residual nuclei
2238 CALL DT_RESNCL(EPN,NLOOP,1)
2239
2240* sample hadron/nucleus-nucleus interaction
2241 CALL DT_KKEVNT(KKMAT,IREJ1)
2242 IF (IREJ1.GT.0) THEN
2243 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKINC'
2244 GOTO 9999
2245 ENDIF
2246
2247 IF ((NPMASS.GT.1).OR.(NTMASS.GT.1)) THEN
2248
2249* intranuclear cascade of final state particles for KTAUGE generations
2250* of secondaries
2251 CALL DT_FOZOCA(LFZC,IREJ1)
2252 IF (IREJ1.GT.0) THEN
2253 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKINC'
2254 GOTO 9999
2255 ENDIF
2256
2257* baryons unable to escape the nuclear potential are treated as
2258* excited nucleons (ISTHKK=15,16)
2259 CALL DT_SCN4BA
2260
2261* decay of resonances produced in intranuclear cascade processes
2262**sr 15-11-95 should be obsolete
2263C IF (LFZC) CALL DT_DECAY1
2264
2265 101 CONTINUE
2266* treatment of residual nuclei
2267 CALL DT_RESNCL(EPN,NLOOP,2)
2268
2269* evaporation / fission / fragmentation
2270* (if intranuclear cascade was sampled only)
2271 IF (LFZC) THEN
2272 CALL DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ1)
2273 IF (IREJ1.GT.1) GOTO 101
2274 IF (IREJ1.EQ.1) GOTO 100
2275 ENDIF
2276
2277 ENDIF
2278
2279* rejection of unphysical configurations
2280 CALL DT_REJUCO(1,IREJ1)
2281 IF (IREJ1.GT.0) THEN
2282 IF (IOULEV(1).GT.0)
2283 & WRITE(LOUT,*) 'rejected 3 in KKINC: too large x'
2284 GOTO 100
2285 ENDIF
2286
2287* transform finale state into Lab.
2288 IFLAG = 2
2289 CALL DT_BEAMPR(WHAT,DUM,IFLAG)
2290 IF ((IFRAME.EQ.1).AND.(IFLAG.EQ.-1)) CALL DT_LT2LAB
2291
2292 IF (IPI0.EQ.1) CALL DT_DECPI0
2293
2294C IF (NEVHKK.EQ.5) CALL DT_EVTOUT(4)
2295
2296 RETURN
2297 9999 CONTINUE
2298 IREJ = 1
2299 RETURN
2300 END
2301
2302*$ CREATE DT_DEFAUL.FOR
2303*COPY DT_DEFAUL
2304*
2305*===defaul=============================================================*
2306*
2307 SUBROUTINE DT_DEFAUL(EPN,PPN)
2308
2309************************************************************************
2310* Variables are set to default values. *
2311* This version dated 8.5.95 is written by S. Roesler. *
2312************************************************************************
2313
2314 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2315 SAVE
2316 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
2317 PARAMETER (TWOPI = 6.283185307179586454D+00)
2318
2319* particle properties (BAMJET index convention)
2320 CHARACTER*8 ANAME
2321 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2322 & IICH(210),IIBAR(210),K1(210),K2(210)
2323* nuclear potential
2324 LOGICAL LFERMI
2325 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
2326 & EBINDP(2),EBINDN(2),EPOT(2,210),
2327 & ETACOU(2),ICOUL,LFERMI
2328* interface HADRIN-DPM
2329 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
2330* central particle production, impact parameter biasing
2331 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
2332* properties of interacting particles
2333 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2334* properties of photon/lepton projectiles
2335 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
2336 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2337* emulsion treatment
2338 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2339 & NCOMPO,IEMUL
2340* parameter for intranuclear cascade
2341 LOGICAL LPAULI
2342 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
2343* various options for treatment of partons (DTUNUC 1.x)
2344* (chain recombination, Cronin,..)
2345 LOGICAL LCO2CR,LINTPT
2346 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
2347 & LCO2CR,LINTPT
2348* threshold values for x-sampling (DTUNUC 1.x)
2349 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
2350 & SSMIMQ,VVMTHR
2351* flags for input different options
2352 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2353 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2354 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2355* n-n cross section fluctuations
2356 PARAMETER (NBINS = 1000)
2357 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
2358* flags for particle decays
2359 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
2360 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
2361 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
2362* diquark-breaking mechanism
2363 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
2364* nucleon-nucleon event-generator
2365 CHARACTER*8 CMODEL
2366 LOGICAL LPHOIN
2367 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
2368* flags for diffractive interactions (DTUNUC 1.x)
2369 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
2370* VDM parameter for photon-nucleus interactions
2371 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
2372* Glauber formalism: flags and parameters for statistics
2373 LOGICAL LPROD
2374 CHARACTER*8 CGLB
2375 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
2376* kinematical cuts for lepton-nucleus interactions
2377 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
2378 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
2379* flags for activated histograms
2380 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
2381* cuts for variable energy runs
2382 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
2383* parameters for hA-diffraction
2384 COMMON /DTDIHA/ DIBETA,DIALPH
2385* LEPTO
2386 REAL RPPN
2387 COMMON /LEPTOI/ RPPN,LEPIN,INTER
2388* steering flags for qel neutrino scattering modules
2389 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
2390* event flag
2391 COMMON /DTEVNO/ NEVENT,ICASCA
2392
2393 DATA POTMES /0.002D0/
2394
2395* common /DTNPOT/
2396 DO 10 I=1,2
2397 PFERMP(I) = ZERO
2398 PFERMN(I) = ZERO
2399 EBINDP(I) = ZERO
2400 EBINDN(I) = ZERO
2401 DO 11 J=1,210
2402 EPOT(I,J) = ZERO
2403 11 CONTINUE
2404* nucleus independent meson potential
2405 EPOT(I,13) = POTMES
2406 EPOT(I,14) = POTMES
2407 EPOT(I,15) = POTMES
2408 EPOT(I,16) = POTMES
2409 EPOT(I,23) = POTMES
2410 EPOT(I,24) = POTMES
2411 EPOT(I,25) = POTMES
2412 10 CONTINUE
2413 FERMOD = 0.55D0
2414 ETACOU(1) = ZERO
2415 ETACOU(2) = ZERO
2416 ICOUL = 1
2417 LFERMI = .TRUE.
2418
2419* common /HNTHRE/
2420 EHADTH = -99.0D0
2421 EHADLO = 4.06D0
2422 EHADHI = 6.0D0
2423 INTHAD = 1
2424 IDXTA = 2
2425
2426* common /DTIMPA/
2427 ICENTR = 0
2428 BIMIN = ZERO
2429 BIMAX = 1.0D10
2430 XSFRAC = 1.0D0
2431
2432* common /DTPRTA/
2433 IP = 1
2434 IPZ = 1
2435 IT = 1
2436 ITZ = 1
2437 IJPROJ = 1
2438 IBPROJ = 1
2439 IJTARG = 1
2440 IBTARG = 1
2441* common /DTGPRO/
2442 VIRT = ZERO
2443 DO 14 I=1,4
2444 PGAMM(I) = ZERO
2445 PLEPT0(I) = ZERO
2446 PLEPT1(I) = ZERO
2447 PNUCL(I) = ZERO
2448 14 CONTINUE
2449 IDIREC = 0
2450
2451* common /DTFOTI/
2452**sr 7.4.98: changed after corrected B-sampling
2453C TAUFOR = 4.4D0
2454 TAUFOR = 3.5D0
2455 KTAUGE = 25
2456 ITAUVE = 1
2457 INCMOD = 1
2458 LPAULI = .TRUE.
2459
2460* common /DTCHAI/
2461 SEASQ = ONE
2462 MKCRON = 1
2463 CRONCO = 0.64D0
2464 ISICHA = 0
2465 CUTOF = 100.0D0
2466 LCO2CR = .FALSE.
2467 IRECOM = 1
2468 LINTPT = .TRUE.
2469
2470* common /DTXCUT/
2471* definition of soft quark distributions
2472 XSEACU = 0.05D0
2473 UNON = 2.0D0
2474 UNOM = 1.5D0
2475 UNOSEA = 5.0D0
2476* cutoff parameters for x-sampling
2477 CVQ = 1.0D0
2478 CDQ = 2.0D0
2479C CSEA = 0.3D0
2480 CSEA = 0.1D0
2481 SSMIMA = 1.2D0
2482 SSMIMQ = SSMIMA**2
2483 VVMTHR = 2.0D0
2484
2485* common /DTXSFL/
2486 IFLUCT = 0
2487
2488* common /DTFRPA/
2489 PDB = 0.15D0
2490 PDBSEA(1) = 0.0D0
2491 PDBSEA(2) = 0.0D0
2492 PDBSEA(3) = 0.0D0
2493 ISIG0 = 0
2494 IPI0 = 0
2495 NMSTU = 0
2496 NPARU = 0
2497 NMSTJ = 0
2498 NPARJ = 0
2499
2500* common /DTDIQB/
2501 DO 15 I=1,8
2502 DBRKR(1,I) = 5.0D0
2503 DBRKR(2,I) = 5.0D0
2504 DBRKR(3,I) = 10.0D0
2505 DBRKA(1,I) = ZERO
2506 DBRKA(2,I) = ZERO
2507 DBRKA(3,I) = ZERO
2508 15 CONTINUE
2509 CHAM1 = 0.2D0
2510 CHAM3 = 0.5D0
2511 CHAB1 = 0.7D0
2512 CHAB3 = 1.0D0
2513
2514* common /DTFLG3/
2515 ISINGD = 0
2516 IDOUBD = 0
2517 IFLAGD = 0
2518 IDIFF = 0
2519
2520* common /DTMODL/
2521 MCGENE = 2
2522 CMODEL(1) = 'DTUNUC '
2523 CMODEL(2) = 'PHOJET '
2524 CMODEL(3) = 'LEPTO '
2525 CMODEL(4) = 'QNEUTRIN'
2526 LPHOIN = .TRUE.
2527 ELOJET = 5.0D0
2528
2529* common /DTLCUT/
2530 ECMIN = 3.5D0
2531 ECMAX = 1.0D10
2532 XBJMIN = ZERO
2533 ELMIN = ZERO
2534 EGMIN = ZERO
2535 EGMAX = 1.0D10
2536 YMIN = TINY10
2537 YMAX = 0.999D0
2538 Q2MIN = TINY10
2539 Q2MAX = 10.0D0
2540 THMIN = ZERO
2541 THMAX = TWOPI
2542 Q2LI = ZERO
2543 Q2HI = 1.0D10
2544 ECMLI = ZERO
2545 ECMHI = 1.0D10
2546
2547* common /DTVDMP/
2548 RL2 = 2.0D0
2549 INTRGE(1) = 1
2550 INTRGE(2) = 3
2551 IDPDF = 2212
2552 MODEGA = 4
2553 ISHAD(1) = 1
2554 ISHAD(2) = 1
2555 ISHAD(3) = 1
2556 EPSPOL = ZERO
2557
2558* common /DTGLGP/
2559 JSTATB = 1000
2560 JBINSB = 49
2561 CGLB = ' '
2562 IF (ITRSPT.EQ.1) THEN
2563 IOGLB = 100
2564 ELSE
2565 IOGLB = 0
2566 ENDIF
2567 LPROD = .TRUE.
2568
2569* common /DTHIS3/
2570 DO 16 I=1,50
2571 IHISPP(I) = 0
2572 IHISXS(I) = 0
2573 16 CONTINUE
2574 IXSTBL = 0
2575
2576* common /DTVARE/
2577 VARELO = ZERO
2578 VAREHI = ZERO
2579 VARCLO = ZERO
2580 VARCHI = ZERO
2581
2582* common /DTDIHA/
2583 DIBETA = -1.0D0
2584 DIALPH = ZERO
2585
2586* common /LEPTOI/
2587 RPPN = 0.0
2588 LEPIN = 0
2589 INTER = 0
2590
2591* common /QNEUTO/
2592 NEUTYP = 1
2593 NEUDEC = 0
2594
2595* common /DTEVNO/
2596 NEVENT = 1
2597 IF (ITRSPT.EQ.1) THEN
2598 ICASCA = 1
2599 ELSE
2600 ICASCA = 0
2601 ENDIF
2602
2603* default Lab.-energy
2604 EPN = 200.0D0
2605 PPN = SQRT((EPN-AAM(IJPROJ))*(EPN+AAM(IJPROJ)))
2606
2607 RETURN
2608 END
2609
2610*$ CREATE DT_AAEVT.FOR
2611*COPY DT_AAEVT
2612*
2613*===aaevt==============================================================*
2614*
2615 SUBROUTINE DT_AAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
2616 & IDP,IGLAU)
2617
2618************************************************************************
2619* This version dated 22.03.96 is written by S. Roesler. *
2620************************************************************************
2621
2622 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2623 SAVE
2624 PARAMETER ( LINP = 10 ,
2625 & LOUT = 6 ,
2626 & LDAT = 9 )
2627
2628 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2629* emulsion treatment
2630 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2631 & NCOMPO,IEMUL
2632* event flag
2633 COMMON /DTEVNO/ NEVENT,ICASCA
2634
2635 CHARACTER*8 DATE,HHMMSS
2636 DIMENSION IDMNYR(3)
2637
2638 KKMAT = 1
2639 NMSG = MAX(NEVTS/100,1)
2640
2641* initialization of run-statistics and histograms
2642 CALL DT_STATIS(1)
2643 CALL PHO_PHIST(1000,DUM)
2644
2645* initialization of Glauber-formalism
2646 IF (NCOMPO.LE.0) THEN
2647 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
2648 ELSE
2649 DO 1 I=1,NCOMPO
2650 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
2651 1 CONTINUE
2652 ENDIF
2653 CALL DT_SIGEMU
2654
2655 CALL IDATE(IDMNYR)
2656 WRITE(DATE,'(I2,''/'',I2,''/'',I2)')
2657 & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100)
2658 CALL ITIME(IDMNYR)
2659 WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)')
2660 & IDMNYR(1),IDMNYR(2),IDMNYR(3)
2661 WRITE(LOUT,1001) DATE,HHMMSS
2662 1001 FORMAT(/,' DT_AAEVT: Initialisation finished. ( Date: ',A8,
2663 & ' Time: ',A8,' )')
2664
2665* generate NEVTS events
2666 DO 2 IEVT=1,NEVTS
2667
2668* print run-status message
2669 IF (MOD(IEVT,NMSG).EQ.0) THEN
2670 CALL IDATE(IDMNYR)
2671 WRITE(DATE,'(I2,''/'',I2,''/'',I2)')
2672 & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100)
2673 CALL ITIME(IDMNYR)
2674 WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)')
2675 & IDMNYR(1),IDMNYR(2),IDMNYR(3)
2676 WRITE(LOUT,1000) IEVT-1,NEVTS,DATE,HHMMSS
2677 1000 FORMAT(/,1X,I8,' out of ',I8,' events sampled ( Date: ',A,
2678 & ' Time: ',A,' )',/)
2679C WRITE(LOUT,1000) IEVT-1
2680C1000 FORMAT(1X,I8,' events sampled')
2681 ENDIF
2682 NEVENT = IEVT
2683* treat nuclear emulsions
2684 IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0)
2685* composite targets only
2686 KKMAT = -KKMAT
2687* sample this event
2688 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,KKMAT,IREJ)
2689
2690 CALL PHO_PHIST(2000,DUM)
2691
2692 2 CONTINUE
2693
2694* print run-statistics and histograms to output-unit 6
2695 CALL PHO_PHIST(3000,DUM)
2696 CALL DT_STATIS(2)
2697
2698 RETURN
2699 END
2700
2701*$ CREATE DT_LAEVT.FOR
2702*COPY DT_LAEVT
2703*
2704*===laevt==============================================================*
2705*
2706 SUBROUTINE DT_LAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
2707 & IDP,IGLAU)
2708
2709************************************************************************
2710* Interface to run DPMJET for lepton-nucleus interactions. *
2711* Kinematics is sampled using the equivalent photon approximation *
2712* Based on GPHERA-routine by R. Engel. *
2713* This version dated 23.03.96 is written by S. Roesler. *
2714************************************************************************
2715
2716 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2717 SAVE
2718 PARAMETER ( LINP = 10 ,
2719 & LOUT = 6 ,
2720 & LDAT = 9 )
2721 PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4,
2722 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
2723 PARAMETER (TWOPI = 6.283185307179586454D+00,
2724 & PI = TWOPI/TWO,
2725 & ALPHEM = ONE/137.0D0)
2726
2727C CHARACTER*72 HEADER
2728
2729* particle properties (BAMJET index convention)
2730 CHARACTER*8 ANAME
2731 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2732 & IICH(210),IIBAR(210),K1(210),K2(210)
2733* event history
2734 PARAMETER (NMXHKK=200000)
2735 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
2736 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
2737 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
2738* extended event history
2739 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
2740 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
2741 & IHIST(2,NMXHKK)
2742* kinematical cuts for lepton-nucleus interactions
2743 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
2744 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
2745* properties of interacting particles
2746 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2747* properties of photon/lepton projectiles
2748 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
2749* kinematics at lepton-gamma vertex
2750 COMMON /DTLGVX/ PPL0(4),PPL1(4),PPG(4),PPA(4)
2751* flags for activated histograms
2752 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
2753 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2754* emulsion treatment
2755 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2756 & NCOMPO,IEMUL
2757* Glauber formalism: cross sections
2758 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
2759 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
2760 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
2761 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
2762 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
2763 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
2764 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
2765 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
2766 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
2767 & BSLOPE,NEBINI,NQBINI
2768* nucleon-nucleon event-generator
2769 CHARACTER*8 CMODEL
2770 LOGICAL LPHOIN
2771 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
2772* flags for input different options
2773 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2774 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2775 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2776* event flag
2777 COMMON /DTEVNO/ NEVENT,ICASCA
2778
2779 DIMENSION XDUMB(40),BGTA(4)
2780
2781* LEPTO
2782 IF (MCGENE.EQ.3) THEN
2783 STOP ' This version does not contain LEPTO !'
2784 ENDIF
2785
2786 KKMAT = 1
2787 NMSG = MAX(NEVTS/10,1)
2788
2789* mass of incident lepton
2790 AMLPT = AAM(IDP)
2791 AMLPT2 = AMLPT**2
2792 IDPPDG = IDT_IPDGHA(IDP)
2793
2794* consistency of kinematical limits
2795 Q2MIN = MAX(Q2MIN,TINY10)
2796 Q2MAX = MAX(Q2MAX,TINY10)
2797 YMIN = MIN(MAX(YMIN,TINY10),0.999D0)
2798 YMAX = MIN(MAX(YMAX,TINY10),0.999D0)
2799
2800* total energy of the lepton-nucleon system
2801 PTOTLN = SQRT( (PLEPT0(1)+PNUCL(1))**2+(PLEPT0(2)+PNUCL(2))**2
2802 & +(PLEPT0(3)+PNUCL(3))**2 )
2803 ETOTLN = PLEPT0(4)+PNUCL(4)
2804 ECMLN = SQRT((ETOTLN-PTOTLN)*(ETOTLN+PTOTLN))
2805 ECMAX = MIN(ECMAX,ECMLN)
2806 WRITE(LOUT,1003) ECMIN,ECMAX,YMIN,YMAX,Q2MIN,Q2MAX,EGMIN,
2807 & THMIN,THMAX,ELMIN
2808 1003 FORMAT(1X,'LAEVT:',16X,'kinematical cuts',/,22X,
2809 & '------------------',/,9X,'W (min) =',
2810 & F7.1,' GeV (max) =',F7.1,' GeV',/,9X,'y (min) =',
2811 & F7.3,8X,'(max) =',F7.3,/,9X,'Q^2 (min) =',F7.1,
2812 & ' GeV^2 (max) =',F7.1,' GeV^2',/,' (Lab) E_g (min) ='
2813 & ,F7.1,' GeV',/,' (Lab) theta (min) =',F7.4,8X,'(max) =',
2814 & F7.4,' for E_lpt >',F7.1,' GeV',/)
2815
2816* Lorentz-parameter for transf. into Lab
2817 BGTA(1) = PNUCL(1)/AAM(1)
2818 BGTA(2) = PNUCL(2)/AAM(1)
2819 BGTA(3) = PNUCL(3)/AAM(1)
2820 BGTA(4) = PNUCL(4)/AAM(1)
2821* LT of incident lepton into Lab and dump it in DTEVT1
2822 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
2823 & PLEPT0(1),PLEPT0(2),PLEPT0(3),PLEPT0(4),
2824 & PLTOT,PPL0(1),PPL0(2),PPL0(3),PPL0(4))
2825 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
2826 & PNUCL(1),PNUCL(2),PNUCL(3),PNUCL(4),
2827 & PLTOT,PPA(1),PPA(2),PPA(3),PPA(4))
2828* maximum energy of photon nucleon system
2829 PTOTGN = SQRT((YMAX*PPL0(1)+PPA(1))**2+(YMAX*PPL0(2)+PPA(2))**2
2830 & +(YMAX*PPL0(3)+PPA(3))**2)
2831 ETOTGN = YMAX*PPL0(4)+PPA(4)
2832 EGNMAX = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN))
2833 EGNMAX = MIN(EGNMAX,ECMAX)
2834* minimum energy of photon nucleon system
2835 PTOTGN = SQRT((YMIN*PPL0(1)+PPA(1))**2+(YMIN*PPL0(2)+PPA(2))**2
2836 & +(YMIN*PPL0(3)+PPA(3))**2)
2837 ETOTGN = YMIN*PPL0(4)+PPA(4)
2838 EGNMIN = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN))
2839 EGNMIN = MAX(EGNMIN,ECMIN)
2840
2841* limits for Glauber-initialization
2842 Q2LI = Q2MIN
2843 Q2HI = MAX(Q2LI,MIN(Q2HI,Q2MAX))
2844 ECMLI = MAX(EGNMIN,THREE)
2845 ECMHI = EGNMAX
2846 WRITE(LOUT,1004) EGNMIN,EGNMAX,ECMLI,ECMHI,Q2LI,Q2HI
2847 1004 FORMAT(1X,'resulting limits:',/,9X,'W (min) =',F7.1,
2848 & ' GeV (max) =',F7.1,' GeV',/,/,' limits for ',
2849 & 'Glauber-initialization:',/,9X,'W (min) =',F7.1,
2850 & ' GeV (max) =',F7.1,' GeV',/,9X,'Q^2 (min) =',F7.1,
2851 & ' GeV^2 (max) =',F7.1,' GeV^2',/)
2852* initialization of Glauber-formalism
2853 IF (NCOMPO.LE.0) THEN
2854 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
2855 ELSE
2856 DO 9 I=1,NCOMPO
2857 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
2858 9 CONTINUE
2859 ENDIF
2860 CALL DT_SIGEMU
2861
2862* initialization of run-statistics and histograms
2863 CALL DT_STATIS(1)
2864 CALL PHO_PHIST(1000,DUM)
2865
2866* maximum photon-nucleus cross section
2867 I1 = 1
2868 I2 = 1
2869 RAT = ONE
2870 IF (EGNMAX.GE.ECMNN(NEBINI)) THEN
2871 I1 = NEBINI
2872 I2 = NEBINI
2873 RAT = ONE
2874 ELSEIF (EGNMAX.GT.ECMNN(1)) THEN
2875 DO 5 I=2,NEBINI
2876 IF (EGNMAX.LT.ECMNN(I)) THEN
2877 I1 = I-1
2878 I2 = I
2879 RAT = (EGNMAX-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
2880 GOTO 6
2881 ENDIF
2882 5 CONTINUE
2883 6 CONTINUE
2884 ENDIF
2885 SIGMAX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1))
2886 EGNXX = EGNMAX
2887 I1 = 1
2888 I2 = 1
2889 RAT = ONE
2890 IF (EGNMIN.GE.ECMNN(NEBINI)) THEN
2891 I1 = NEBINI
2892 I2 = NEBINI
2893 RAT = ONE
2894 ELSEIF (EGNMIN.GT.ECMNN(1)) THEN
2895 DO 7 I=2,NEBINI
2896 IF (EGNMIN.LT.ECMNN(I)) THEN
2897 I1 = I-1
2898 I2 = I
2899 RAT = (EGNMIN-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
2900 GOTO 8
2901 ENDIF
2902 7 CONTINUE
2903 8 CONTINUE
2904 ENDIF
2905 SIGXX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1))
2906 IF (SIGXX.GT.SIGMAX) EGNXX = EGNMIN
2907 SIGMAX = MAX(SIGMAX,SIGXX)
2908 WRITE(LOUT,'(9X,A,F8.3,A)') 'Sigma_tot (max) =',SIGMAX,' mb'
2909
2910* plot photon flux table
2911 AYMIN = LOG(YMIN)
2912 AYMAX = LOG(YMAX)
2913 AYRGE = AYMAX-AYMIN
2914 MAXTAB = 50
2915 ADY = LOG(YMAX/YMIN)/DBLE(MAXTAB-1)
2916C WRITE(LOUT,'(/,1X,A)') 'LAEVT: photon flux '
2917 DO 1 I=1,MAXTAB
2918 Y = EXP(AYMIN+ADY*DBLE(I-1))
2919 Q2LOW = MAX(Q2MIN,AMLPT2*Y**2/(ONE-Y))
2920 FF1 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW)
2921 & -TWO*AMLPT2*Y*(ONE/Q2LOW-ONE/Q2MAX))
2922 FF2 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW)
2923 & -TWO*(ONE-Y)/Y*(ONE-Q2LOW/Q2MAX))
2924C WRITE(LOUT,'(5X,3E15.4)') Y,FF1,FF2
2925 1 CONTINUE
2926
2927* maximum residual weight for flux sampling (dy/y)
2928 YY = YMIN
2929 Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY))
2930 WGHMAX = (ONE+(ONE-YY)**2)*LOG(Q2MAX/Q2LOW)
2931 & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY
2932
2933 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY0)
2934 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY1)
2935 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY2)
2936 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ0)
2937 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ1)
2938 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ2)
2939 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE0)
2940 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE1)
2941 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE2)
2942 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU0)
2943 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU1)
2944 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU2)
2945 XBLOW = 0.001D0
2946 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX0)
2947 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX1)
2948 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX2)
2949
2950 ITRY = 0
2951 ITRW = 0
2952 NC0 = 0
2953 NC1 = 0
2954
2955* generate events
2956 DO 2 IEVT=1,NEVTS
2957 IF (MOD(IEVT,NMSG).EQ.0) THEN
2958C OPEN(LDAT,FILE='/scrtch3/hr/sroesler/statusd5.out',
2959C & STATUS='UNKNOWN')
2960 WRITE(LOUT,'(1X,I8,A)') IEVT-1,' events sampled'
2961C CLOSE(LDAT)
2962 ENDIF
2963 NEVENT = IEVT
2964
2965 100 CONTINUE
2966 ITRY = ITRY+1
2967
2968* sample y
2969 101 CONTINUE
2970 ITRW = ITRW+1
2971 YY = EXP(AYRGE*DT_RNDM(RAT)+AYMIN)
2972 Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY))
2973 Q2LOG = LOG(Q2MAX/Q2LOW)
2974 WGH = (ONE+(ONE-YY)**2)*Q2LOG
2975 & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY
2976 IF (WGHMAX.LT.WGH) WRITE(LOUT,1000) YY,WGHMAX,WGH
2977 1000 FORMAT(1X,'LAEVT: weight error!',3E12.5)
2978 IF (DT_RNDM(YY)*WGHMAX.GT.WGH) GOTO 101
2979
2980* sample Q2
2981 YEFF = ONE+(ONE-YY)**2
2982 102 CONTINUE
2983 Q2 = Q2LOW*EXP(Q2LOG*DT_RNDM(YY))
2984 WGH = (YEFF-TWO*(ONE-YY)*Q2LOW/Q2)/YEFF
2985 IF (WGH.LT.DT_RNDM(Q2)) GOTO 102
2986
2987c NC0 = NC0+1
2988c CALL DT_FILHGR(YY,ONE,IHFLY0,NC0)
2989c CALL DT_FILHGR(Q2,ONE,IHFLQ0,NC0)
2990
2991* kinematics at lepton-photon vertex
2992* scattered electron
2993 YQ2 = SQRT((ONE-YY)*Q2)
2994 Q2E = Q2/(4.0D0*PLEPT0(4))
2995 E1Y = (ONE-YY)*PLEPT0(4)
2996 CALL DT_DSFECF(SIF,COF)
2997 PLEPT1(1) = YQ2*COF
2998 PLEPT1(2) = YQ2*SIF
2999 PLEPT1(3) = E1Y-Q2E
3000 PLEPT1(4) = E1Y+Q2E
3001C THETA = ACOS( (E1Y-Q2E)/(E1Y+Q2E) )
3002* radiated photon
3003 PGAMM(1) = -PLEPT1(1)
3004 PGAMM(2) = -PLEPT1(2)
3005 PGAMM(3) = PLEPT0(3)-PLEPT1(3)
3006 PGAMM(4) = PLEPT0(4)-PLEPT1(4)
3007* E_cm cut
3008 PTOTGN = SQRT( (PGAMM(1)+PNUCL(1))**2+(PGAMM(2)+PNUCL(2))**2
3009 & +(PGAMM(3)+PNUCL(3))**2 )
3010 ETOTGN = PGAMM(4)+PNUCL(4)
3011 ECMGN = (ETOTGN-PTOTGN)*(ETOTGN+PTOTGN)
3012 IF (ECMGN.LT.0.1D0) GOTO 101
3013 ECMGN = SQRT(ECMGN)
3014 IF ((ECMGN.LT.ECMIN).OR.(ECMGN.GT.ECMAX)) GOTO 101
3015
3016* Lorentz-transformation into nucleon-rest system
3017 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
3018 & PGAMM(1),PGAMM(2),PGAMM(3),PGAMM(4),
3019 & PGTOT,PPG(1),PPG(2),PPG(3),PPG(4))
3020 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
3021 & PLEPT1(1),PLEPT1(2),PLEPT1(3),PLEPT1(4),
3022 & PLTOT,PPL1(1),PPL1(2),PPL1(3),PPL1(4))
3023* temporary checks..
3024 Q2TMP = ABS(PPG(4)**2-PGTOT**2)
3025 IF (ABS(Q2-Q2TMP).GT.0.01D0) WRITE(LOUT,1001) Q2,Q2TMP
3026 1001 FORMAT(1X,'LAEVT: inconsistent kinematics (Q2,Q2TMP) ',
3027 & 2F10.4)
3028 ECMTMP = SQRT((PPG(4)+AAM(1)-PGTOT)*(PPG(4)+AAM(1)+PGTOT))
3029 IF (ABS(ECMGN-ECMTMP).GT.TINY10) WRITE(LOUT,1002) ECMGN,ECMTMP
3030 1002 FORMAT(1X,'LAEVT: inconsistent kinematics (ECMGN,ECMTMP) ',
3031 & 2F10.2)
3032 YYTMP = PPG(4)/PPL0(4)
3033 IF (ABS(YY-YYTMP).GT.0.01D0) WRITE(LOUT,1005) YY,YYTMP
3034 1005 FORMAT(1X,'LAEVT: inconsistent kinematics (YY,YYTMP) ',
3035 & 2F10.4)
3036
3037* lepton tagger (Lab)
3038 THETA = ACOS( PPL1(3)/PLTOT )
3039 IF (PPL1(4).GT.ELMIN) THEN
3040 IF ((THETA.LT.THMIN).OR.(THETA.GT.THMAX)) GOTO 101
3041 ENDIF
3042* photon energy-cut (Lab)
3043 IF (PPG(4).LT.EGMIN) GOTO 101
3044 IF (PPG(4).GT.EGMAX) GOTO 101
3045* x_Bj cut
3046 XBJ = ABS(Q2/(1.876D0*PPG(4)))
3047 IF (XBJ.LT.XBJMIN) GOTO 101
3048
3049 NC0 = NC0+1
3050 CALL DT_FILHGR( Q2,ONE,IHFLQ0,NC0)
3051 CALL DT_FILHGR( YY,ONE,IHFLY0,NC0)
3052 CALL DT_FILHGR( XBJ,ONE,IHFLX0,NC0)
3053 CALL DT_FILHGR(PPG(4),ONE,IHFLU0,NC0)
3054 CALL DT_FILHGR( ECMGN,ONE,IHFLE0,NC0)
3055
3056* rotation angles against z-axis
3057 COD = PPG(3)/PGTOT
3058C SID = SQRT((ONE-COD)*(ONE+COD))
3059 PPT = SQRT(PPG(1)**2+PPG(2)**2)
3060 SID = PPT/PGTOT
3061 COF = ONE
3062 SIF = ZERO
3063 IF (PGTOT*SID.GT.TINY10) THEN
3064 COF = PPG(1)/(SID*PGTOT)
3065 SIF = PPG(2)/(SID*PGTOT)
3066 ANORF = SQRT(COF*COF+SIF*SIF)
3067 COF = COF/ANORF
3068 SIF = SIF/ANORF
3069 ENDIF
3070
3071 IF (IXSTBL.EQ.0) THEN
3072* change to photon projectile
3073 IJPROJ = 7
3074* set virtuality
3075 VIRT = Q2
3076* re-initialize LTs with new kinematics
3077* !!PGAMM ist set in cms (ECMGN) along z
3078 EPN = ZERO
3079 PPN = ZERO
3080 CALL DT_LTINI(IJPROJ,IJTARG,EPN,PPN,ECMGN,0)
3081* force Lab-system
3082 IFRAME = 1
3083* get emulsion component if requested
3084 IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0)
3085* convolute with cross section
3086 CALL DT_SIGGAT(Q2LOW,EGNXX,STOTX,KKMAT)
3087 CALL DT_SIGGAT(Q2,ECMGN,STOT,KKMAT)
3088 IF (STOTX.LT.STOT) WRITE(LOUT,'(1X,A,/,6E12.3)')
3089 & 'LAEVT: warning STOTX<STOT ! ',Q2LOW,EGNMAX,STOTX,
3090 & Q2,ECMGN,STOT
3091 IF (DT_RNDM(Q2)*STOTX.GT.STOT) GOTO 100
3092 NC1 = NC1+1
3093 CALL DT_FILHGR( Q2,ONE,IHFLQ1,NC1)
3094 CALL DT_FILHGR( YY,ONE,IHFLY1,NC1)
3095 CALL DT_FILHGR( XBJ,ONE,IHFLX1,NC1)
3096 CALL DT_FILHGR(PPG(4),ONE,IHFLU1,NC1)
3097 CALL DT_FILHGR( ECMGN,ONE,IHFLE1,NC1)
3098* composite targets only
3099 KKMAT = -KKMAT
3100* sample this event
3101 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IJPROJ,EPN,KKMAT,
3102 & IREJ)
3103* rotate momenta of final state particles back in photon-nucleon syst.
3104 DO 4 I=NPOINT(4),NHKK
3105 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
3106 & (ISTHKK(I).EQ.1001)) THEN
3107 PX = PHKK(1,I)
3108 PY = PHKK(2,I)
3109 PZ = PHKK(3,I)
3110 CALL DT_MYTRAN(1,PX,PY,PZ,COD,SID,COF,SIF,
3111 & PHKK(1,I),PHKK(2,I),PHKK(3,I))
3112 ENDIF
3113 4 CONTINUE
3114 ENDIF
3115
3116 CALL DT_FILHGR( Q2,ONE,IHFLQ2,NC1)
3117 CALL DT_FILHGR( YY,ONE,IHFLY2,NC1)
3118 CALL DT_FILHGR( XBJ,ONE,IHFLX2,NC1)
3119 CALL DT_FILHGR(PPG(4),ONE,IHFLU2,NC1)
3120 CALL DT_FILHGR( ECMGN,ONE,IHFLE2,NC1)
3121
3122* dump this event to histograms
3123 CALL PHO_PHIST(2000,DUM)
3124
3125 2 CONTINUE
3126
3127 WGY = ALPHEM/TWOPI*WGHMAX*DBLE(ITRY)/DBLE(ITRW)
3128 WGY = WGY*LOG(YMAX/YMIN)
3129 WEIGHT = WGY*SIGMAX*DBLE(NEVTS)/DBLE(ITRY)
3130
3131C HEADER = ' LAEVT: Q^2 distribution 0'
3132C CALL DT_OUTHGR(IHFLQ0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3133C HEADER = ' LAEVT: Q^2 distribution 1'
3134C CALL DT_OUTHGR(IHFLQ1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3135C HEADER = ' LAEVT: Q^2 distribution 2'
3136C CALL DT_OUTHGR(IHFLQ2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3137C HEADER = ' LAEVT: y distribution 0'
3138C CALL DT_OUTHGR(IHFLY0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3139C HEADER = ' LAEVT: y distribution 1'
3140C CALL DT_OUTHGR(IHFLY1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3141C HEADER = ' LAEVT: y distribution 2'
3142C CALL DT_OUTHGR(IHFLY2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3143C HEADER = ' LAEVT: x distribution 0'
3144C CALL DT_OUTHGR(IHFLX0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3145C HEADER = ' LAEVT: x distribution 1'
3146C CALL DT_OUTHGR(IHFLX1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3147C HEADER = ' LAEVT: x distribution 2'
3148C CALL DT_OUTHGR(IHFLX2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3149C HEADER = ' LAEVT: E_g distribution 0'
3150C CALL DT_OUTHGR(IHFLU0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3151C HEADER = ' LAEVT: E_g distribution 1'
3152C CALL DT_OUTHGR(IHFLU1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3153C HEADER = ' LAEVT: E_g distribution 2'
3154C CALL DT_OUTHGR(IHFLU2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3155C HEADER = ' LAEVT: E_c distribution 0'
3156C CALL DT_OUTHGR(IHFLE0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3157C HEADER = ' LAEVT: E_c distribution 1'
3158C CALL DT_OUTHGR(IHFLE1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3159C HEADER = ' LAEVT: E_c distribution 2'
3160C CALL DT_OUTHGR(IHFLE2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3161
3162* print run-statistics and histograms to output-unit 6
3163 CALL PHO_PHIST(3000,DUM)
3164 IF (IXSTBL.EQ.0) CALL DT_STATIS(2)
3165
3166 RETURN
3167 END
3168
3169*$ CREATE DT_DTUINI.FOR
3170*COPY DT_DTUINI
3171*
3172*===dtuini=============================================================*
3173*
3174 SUBROUTINE DT_DTUINI(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
3175 & IDP,IEMU)
3176
3177 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3178 SAVE
3179
3180 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
3181* emulsion treatment
3182 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
3183 & NCOMPO,IEMUL
3184* Glauber formalism: flags and parameters for statistics
3185 LOGICAL LPROD
3186 CHARACTER*8 CGLB
3187 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
3188
3189 CALL DT_INIT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,IGLAU)
3190 CALL DT_STATIS(1)
3191 CALL PHO_PHIST(1000,DUM)
3192 IF (NCOMPO.LE.0) THEN
3193 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
3194 ELSE
3195 DO 1 I=1,NCOMPO
3196 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
3197 1 CONTINUE
3198 ENDIF
3199 IF (IOGLB.NE.100) CALL DT_SIGEMU
3200 IEMU = IEMUL
3201
3202 RETURN
3203 END
3204
3205*$ CREATE DT_DTUOUT.FOR
3206*COPY DT_DTUOUT
3207*
3208*===dtuout=============================================================*
3209*
3210 SUBROUTINE DT_DTUOUT
3211
3212 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3213 SAVE
3214
3215 CALL PHO_PHIST(3000,DUM)
3216 CALL DT_STATIS(2)
3217
3218 RETURN
3219 END
3220
3221*$ CREATE DT_BEAMPR.FOR
3222*COPY DT_BEAMPR
3223*
3224*===beampr=============================================================*
3225*
3226 SUBROUTINE DT_BEAMPR(WHAT,PLAB,MODE)
3227
3228************************************************************************
3229* Initialization of event generation *
3230* This version dated 7.4.98 is written by S. Roesler. *
3231************************************************************************
3232
3233 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3234 SAVE
3235
3236 PARAMETER ( LINP = 10 ,
3237 & LOUT = 6 ,
3238 & LDAT = 9 )
3239 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
3240 PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
3241
3242 LOGICAL LBEAM
3243
3244* event history
3245 PARAMETER (NMXHKK=200000)
3246 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3247 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3248 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3249* extended event history
3250 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3251 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3252 & IHIST(2,NMXHKK)
3253* properties of interacting particles
3254 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
3255* particle properties (BAMJET index convention)
3256 CHARACTER*8 ANAME
3257 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
3258 & IICH(210),IIBAR(210),K1(210),K2(210)
3259* beam momenta
3260 COMMON /DTBEAM/ P1(4),P2(4)
3261
3262C DIMENSION WHAT(6),P1(4),P2(4),P1CMS(4),P2CMS(4)
3263 DIMENSION WHAT(6),P1CMS(4),P2CMS(4)
3264
3265 DATA LBEAM /.FALSE./
3266
3267 GOTO (1,2) MODE
3268
3269 1 CONTINUE
3270
3271 E1 = WHAT(1)
3272 IF (E1.LT.ZERO) E1 = DBLE(IPZ)/DBLE(IP)*ABS(WHAT(1))
3273 E2 = WHAT(2)
3274 IF (E2.LT.ZERO) E2 = DBLE(ITZ)/DBLE(IT)*ABS(WHAT(2))
3275 PP1 = SQRT( (E1+AAM(IJPROJ))*(E1-AAM(IJPROJ)) )
3276 PP2 = SQRT( (E2+AAM(IJTARG))*(E2-AAM(IJTARG)) )
3277 TH = 1.D-6*WHAT(3)/2.D0
3278 PH = WHAT(4)*BOG
3279 P1(1) = PP1*SIN(TH)*COS(PH)
3280 P1(2) = PP1*SIN(TH)*SIN(PH)
3281 P1(3) = PP1*COS(TH)
3282 P1(4) = E1
3283 P2(1) = PP2*SIN(TH)*COS(PH)
3284 P2(2) = PP2*SIN(TH)*SIN(PH)
3285 P2(3) = -PP2*COS(TH)
3286 P2(4) = E2
3287 ECM = SQRT( (P1(4)+P2(4))**2-(P1(1)+P2(1))**2-(P1(2)+P2(2))**2
3288 & -(P1(3)+P2(3))**2 )
3289 ELAB = (ECM**2-AAM(IJPROJ)**2-AAM(IJTARG)**2)/(2.0D0*AAM(IJTARG))
3290 PLAB = SQRT( (ELAB+AAM(IJPROJ))*(ELAB-AAM(IJPROJ)) )
3291 BGX = (P1(1)+P2(1))/ECM
3292 BGY = (P1(2)+P2(2))/ECM
3293 BGZ = (P1(3)+P2(3))/ECM
3294 BGE = (P1(4)+P2(4))/ECM
3295 CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P1(1),P1(2),P1(3),P1(4),
3296 & P1TOT,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4))
3297 CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P2(1),P2(2),P2(3),P2(4),
3298 & P2TOT,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4))
3299 COD = P1CMS(3)/P1TOT
3300C SID = SQRT((ONE-COD)*(ONE+COD))
3301 PPT = SQRT(P1CMS(1)**2+P1CMS(2)**2)
3302 SID = PPT/P1TOT
3303 COF = ONE
3304 SIF = ZERO
3305 IF (P1TOT*SID.GT.TINY10) THEN
3306 COF = P1CMS(1)/(SID*P1TOT)
3307 SIF = P1CMS(2)/(SID*P1TOT)
3308 ANORF = SQRT(COF*COF+SIF*SIF)
3309 COF = COF/ANORF
3310 SIF = SIF/ANORF
3311 ENDIF
3312**check
3313C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4)
3314C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4)
3315C WRITE(LOUT,'(5E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4),P1TOT
3316C WRITE(LOUT,'(5E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4),P2TOT
3317C PAX = ZERO
3318C PAY = ZERO
3319C PAZ = P1TOT
3320C PAE = SQRT(AAM(IJPROJ)**2+PAZ**2)
3321C PBX = ZERO
3322C PBY = ZERO
3323C PBZ = -P2TOT
3324C PBE = SQRT(AAM(IJTARG)**2+PBZ**2)
3325C WRITE(LOUT,'(4E15.4)') PAX,PAY,PAZ,PAE
3326C WRITE(LOUT,'(4E15.4)') PBX,PBY,PBZ,PBE
3327C CALL DT_MYTRAN(1,PAX,PAY,PAZ,COD,SID,COF,SIF,
3328C & P1CMS(1),P1CMS(2),P1CMS(3))
3329C CALL DT_MYTRAN(1,PBX,PBY,PBZ,COD,SID,COF,SIF,
3330C & P2CMS(1),P2CMS(2),P2CMS(3))
3331C WRITE(LOUT,'(4E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4)
3332C WRITE(LOUT,'(4E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4)
3333C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4),
3334C & P1TOT,P1(1),P1(2),P1(3),P1(4))
3335C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4),
3336C & P2TOT,P2(1),P2(2),P2(3),P2(4))
3337C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4)
3338C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4)
3339C STOP
3340**
3341
3342 LBEAM = .TRUE.
3343
3344 RETURN
3345
3346 2 CONTINUE
3347
3348 IF (LBEAM) THEN
3349 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
3350 DO 20 I=NPOINT(4),NHKK
3351 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
3352 & (ISTHKK(I).EQ.1001)) THEN
3353 CALL DT_MYTRAN(1,PHKK(1,I),PHKK(2,I),PHKK(3,I),
3354 & COD,SID,COF,SIF,PXCMS,PYCMS,PZCMS)
3355 PECMS = PHKK(4,I)
3356 CALL DT_DALTRA(BGE,BGX,BGY,BGZ,PXCMS,PYCMS,PZCMS,PECMS,
3357 & PTOT,PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I))
3358 ENDIF
3359 20 CONTINUE
3360 ELSE
3361 MODE = -1
3362 ENDIF
3363
3364 RETURN
3365 END
3366
3367*$ CREATE DT_REJUCO.FOR
3368*COPY DT_REJUCO
3369*
3370*===rejuco=============================================================*
3371*
3372 SUBROUTINE DT_REJUCO(MODE,IREJ)
3373
3374************************************************************************
3375* REJection of Unphysical COnfigurations *
3376* MODE = 1 rejection of particles with unphysically large energy *
3377* *
3378* This version dated 27.12.2006 is written by S. Roesler. *
3379************************************************************************
3380
3381 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3382 SAVE
3383
3384 PARAMETER ( LINP = 10 ,
3385 & LOUT = 6 ,
3386 & LDAT = 9 )
3387 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
3388 PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
3389
3390* maximum x_cms of final state particle
3391 PARAMETER (XCMSMX = 1.4D0)
3392
3393* event history
3394 PARAMETER (NMXHKK=200000)
3395 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3396 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3397 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3398* extended event history
3399 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3400 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3401 & IHIST(2,NMXHKK)
3402* Lorentz-parameters of the current interaction
3403 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
3404 & UMO,PPCM,EPROJ,PPROJ
3405
3406 IREJ = 0
3407
3408 IF (MODE.EQ.1) THEN
3409 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
3410 ECMHLF = UMO/2.0D0
3411 DO 10 I=NPOINT(4),NHKK
3412 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDHKK(I).NE.80000)) THEN
3413 XCMS = ABS(PHKK(4,I))/ECMHLF
3414 IF (XCMS.GT.XCMSMX) GOTO 9999
3415 ENDIF
3416 10 CONTINUE
3417 ENDIF
3418
3419 RETURN
3420 9999 CONTINUE
3421 IREJ = 1
3422 RETURN
3423 END
3424
3425*$ CREATE DT_EVENTB.FOR
3426*COPY DT_EVENTB
3427*
3428*===eventb=============================================================*
3429*
3430 SUBROUTINE DT_EVENTB(NCSY,IREJ)
3431
3432************************************************************************
3433* Treatment of nucleon-nucleon interactions with full two-component *
3434* Dual Parton Model. *
3435* NCSY number of nucleon-nucleon interactions *
3436* IREJ rejection flag *
3437* This version dated 14.01.2000 is written by S. Roesler *
3438************************************************************************
3439
3440 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3441 SAVE
3442 PARAMETER ( LINP = 10 ,
3443 & LOUT = 6 ,
3444 & LDAT = 9 )
3445 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
3446
3447* event history
3448 PARAMETER (NMXHKK=200000)
3449 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3450 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3451 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3452* extended event history
3453 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3454 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3455 & IHIST(2,NMXHKK)
3456*! uncomment this line for internal phojet-fragmentation
3457C #include "dtu_dtevtp.inc"
3458* particle properties (BAMJET index convention)
3459 CHARACTER*8 ANAME
3460 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
3461 & IICH(210),IIBAR(210),K1(210),K2(210)
3462* flags for input different options
3463 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
3464 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
3465 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
3466* rejection counter
3467 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
3468 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
3469 & IREXCI(3),IRDIFF(2),IRINC
3470* properties of interacting particles
3471 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
3472* properties of photon/lepton projectiles
3473 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
3474* various options for treatment of partons (DTUNUC 1.x)
3475* (chain recombination, Cronin,..)
3476 LOGICAL LCO2CR,LINTPT
3477 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
3478 & LCO2CR,LINTPT
3479* statistics
3480 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
3481 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
3482 & ICEVTG(8,0:30)
3483* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
3484 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
3485* Glauber formalism: collision properties
3486 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
3487 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
3488* flags for diffractive interactions (DTUNUC 1.x)
3489 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
3490* statistics: double-Pomeron exchange
3491 COMMON /DTFLG2/ INTFLG,IPOPO
3492* flags for particle decays
3493 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
3494 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
3495 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
3496* nucleon-nucleon event-generator
3497 CHARACTER*8 CMODEL
3498 LOGICAL LPHOIN
3499 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
3500C nucleon-nucleus / nucleus-nucleus interface to DPMJET
3501 INTEGER IDEQP,IDEQB,IHFLD,IHFLS
3502 DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
3503 COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
3504 & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
3505C model switches and parameters
3506 CHARACTER*8 MDLNA
3507 INTEGER ISWMDL,IPAMDL
3508 DOUBLE PRECISION PARMDL
3509 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
3510C initial state parton radiation (internal part)
3511 INTEGER MXISR3,MXISR4
3512 PARAMETER ( MXISR3 = 50, MXISR4 = 100 )
3513 INTEGER IFL1,IFL2,IBRA,IFANO,ISH,NACC
3514 DOUBLE PRECISION Q2SH,PT2SH,XPSH,ZPSH,THSH,SHAT
3515 COMMON /POINT6/ Q2SH(2,MXISR3),PT2SH(2,MXISR3),XPSH(2,MXISR3),
3516 & ZPSH(2,MXISR3),THSH(2,MXISR3),SHAT(MXISR3),
3517 & IFL1(2,MXISR3),IFL2(2,MXISR3),
3518 & IBRA(2,MXISR4),IFANO(2),ISH(2),NACC
3519C event debugging information
3520 INTEGER NMAXD
3521 PARAMETER (NMAXD=100)
3522 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
3523 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3524 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
3525 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3526C general process information
3527 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
3528 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
3529
3530 DIMENSION PP(4),PT(4),PTOT(4),PP1(4),PP2(4),PT1(4),PT2(4),
3531 & PPNN(4),PTNN(4),PTOTNN(4),PPSUB(4),PTSUB(4),
3532 & PPTCMS(4),PTTCMS(4),PPTMP(4),PTTMP(4),
3533 & KPRON(15),ISINGL(2000)
3534
3535* initial values for max. number of phojet scatterings and dtunuc chains
3536* to be fragmented with one pyexec call
3537 DATA MXPHFR,MXDTFR /10,100/
3538
3539 IREJ = 0
3540* pointer to first parton of the first chain in dtevt common
3541 NPOINT(3) = NHKK+1
3542* special flag for double-Pomeron statistics
3543 IPOPO = 1
3544* counter for low-mass (DTUNUC) interactions
3545 NDTUSC = 0
3546* counter for interactions treated by PHOJET
3547 NPHOSC = 0
3548
3549* scan interactions for single nucleon-nucleon interactions
3550* (this has to be checked here because Cronin modifies parton momenta)
3551 NC = NPOINT(2)
3552 IF (NCSY.GT.2000) STOP ' DT_EVENTB: NCSY > 2000 ! '
3553 DO 8 I=1,NCSY
3554 ISINGL(I) = 0
3555 MOP = JMOHKK(1,NC)
3556 MOT = JMOHKK(1,NC+1)
3557 DIFF1 = ABS(PHKK(4,MOP)-PHKK(4, NC)-PHKK(4,NC+2))
3558 DIFF2 = ABS(PHKK(4,MOT)-PHKK(4,NC+1)-PHKK(4,NC+3))
3559 IF ((DIFF1.LT.TINY10).AND.(DIFF2.LT.TINY10)) ISINGL(I) = 1
3560 NC = NC+4
3561 8 CONTINUE
3562
3563* multiple scattering of chain ends
3564 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
3565 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
3566
3567* switch to PHOJET-settings for JETSET parameter
3568 CALL DT_INITJS(1)
3569
3570* loop over nucleon-nucleon interaction
3571 NC = NPOINT(2)
3572 DO 2 I=1,NCSY
3573*
3574* pick up one nucleon-nucleon interaction from DTEVT1
3575* ppnn / ptnn - momenta of the interacting nucleons (cms)
3576* ptotnn - total momentum of the interacting nucleons (cms)
3577* pp1,2 / pt1,2 - momenta of the four partons
3578* pp / pt - total momenta of the proj / targ partons
3579* ptot - total momentum of the four partons
3580 MOP = JMOHKK(1,NC)
3581 MOT = JMOHKK(1,NC+1)
3582 DO 3 K=1,4
3583 PPNN(K) = PHKK(K,MOP)
3584 PTNN(K) = PHKK(K,MOT)
3585 PTOTNN(K) = PPNN(K)+PTNN(K)
3586 PP1(K) = PHKK(K,NC)
3587 PT1(K) = PHKK(K,NC+1)
3588 PP2(K) = PHKK(K,NC+2)
3589 PT2(K) = PHKK(K,NC+3)
3590 PP(K) = PP1(K)+PP2(K)
3591 PT(K) = PT1(K)+PT2(K)
3592 PTOT(K) = PP(K)+PT(K)
3593 3 CONTINUE
3594*
3595*-----------------------------------------------------------------------
3596* this is a complete nucleon-nucleon interaction
3597*
3598 IF (ISINGL(I).EQ.1) THEN
3599*
3600* initialize PHOJET-variables for remnant/valence-partons
3601 IHFLD(1,1) = 0
3602 IHFLD(1,2) = 0
3603 IHFLD(2,1) = 0
3604 IHFLD(2,2) = 0
3605 IHFLS(1) = 1
3606 IHFLS(2) = 1
3607* save current settings of PHOJET process and min. bias flags
3608 DO 9 K=1,11
3609 KPRON(K) = IPRON(K,1)
3610 9 CONTINUE
3611 ISWSAV = ISWMDL(2)
3612*
3613* check if forced sampling of diffractive interaction requested
3614 IF (ISINGD.LT.-1) THEN
3615 DO 90 K=1,11
3616 IPRON(K,1) = 0
3617 90 CONTINUE
3618 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-3)) IPRON(5,1) = 1
3619 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-4)) IPRON(6,1) = 1
3620 IF (ISINGD.EQ.-5) IPRON(4,1) = 1
3621 ENDIF
3622*
3623* for photons: a direct/anomalous interaction is not sampled
3624* in PHOJET but already in Glauber-formalism. Here we check if such
3625* an interaction is requested
3626 IF (IJPROJ.EQ.7) THEN
3627* first switch off direct interactions
3628 IPRON(8,1) = 0
3629* this is a direct interactions
3630 IF (IDIREC.EQ.1) THEN
3631 DO 12 K=1,11
3632 IPRON(K,1) = 0
3633 12 CONTINUE
3634 IPRON(8,1) = 1
3635* this is an anomalous interactions
3636* (iswmdl(2) = 0 only hard int. generated ( = 1 min. bias) )
3637 ELSEIF (IDIREC.EQ.2) THEN
3638 ISWMDL(2) = 0
3639 ENDIF
3640 ELSE
3641 IF (IDIREC.NE.0) STOP ' DT_EVENTB: IDIREC > 0 ! '
3642 ENDIF
3643*
3644* make sure that total momenta of partons, pp and pt, are on mass
3645* shell (Cronin may have srewed this up..)
3646 CALL DT_MASHEL(PP,PT,PHKK(5,MOP),PHKK(5,MOT),PPNN,PTNN,IR1)
3647 IF (IR1.NE.0) THEN
3648 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A)')
3649 & 'EVENTB: mass shell correction rejected'
3650 GOTO 9999
3651 ENDIF
3652*
3653* initialize the incoming particles in PHOJET
3654 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3655 CALL PHO_SETPAR(1,22,0,VIRT)
3656 ELSE
3657 CALL PHO_SETPAR(1,IDHKK(MOP),0,ZERO)
3658 ENDIF
3659 CALL PHO_SETPAR(2,IDHKK(MOT),0,ZERO)
3660*
3661* initialize rejection loop counter for anomalous processes
3662 IRJANO = 0
3663 800 CONTINUE
3664 IRJANO = IRJANO+1
3665*
3666* temporary fix for ifano problem
3667 IFANO(1) = 0
3668 IFANO(2) = 0
3669*
3670* generate complete hadron/nucleon/photon-nucleon event with PHOJET
3671 CALL PHO_EVENT(2,PPNN,PTNN,DUM,IREJ1)
3672*
3673* for photons: special consistency check for anomalous interactions
3674 IF (IJPROJ.EQ.7) THEN
3675 IF (IRJANO.LT.30) THEN
3676 IF (IFANO(1).NE.0) THEN
3677* here, an anomalous interaction was generated. Check if it
3678* was also requested. Otherwise reject this event.
3679 IF (IDIREC.EQ.0) GOTO 800
3680 ELSE
3681* here, an anomalous interaction was not generated. Check if it
3682* was requested in which case we need to reject this event.
3683 IF (IDIREC.EQ.2) GOTO 800
3684 ENDIF
3685 ELSE
3686 WRITE(LOUT,*) ' DT_EVENTB: Warning! IRJANO > 30 ',
3687 & IRJANO,IDIREC,NEVHKK
3688 ENDIF
3689 ENDIF
3690*
3691* copy back original settings of PHOJET process and min. bias flags
3692 DO 10 K=1,11
3693 IPRON(K,1) = KPRON(K)
3694 10 CONTINUE
3695 ISWMDL(2) = ISWSAV
3696*
3697* check if PHOJET has rejected this event
3698 IF (IREJ1.NE.0) THEN
3699C IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3700 WRITE(LOUT,'(1X,A,I4)')
3701 & 'EVENTB: chain system rejected',IDIREC
3702 CALL PHO_PREVNT(0)
3703 GOTO 9999
3704 ENDIF
3705*
3706* copy partons and strings from PHOJET common back into DTEVT for
3707* external fragmentation
3708 MO1 = NC
3709 MO2 = NC+3
3710*! uncomment this line for internal phojet-fragmentation
3711C CALL DT_GETFSP(MO1,MO2,PPNN,PTNN,-1)
3712 NPHOSC = NPHOSC+1
3713 CALL DT_GETPJE(MO1,MO2,PPNN,PTNN,-1,NPHOSC,IREJ1)
3714 IF (IREJ1.NE.0) THEN
3715 IF (IOULEV(1).GT.0)
3716 & WRITE(LOUT,'(1X,A,I4)') 'EVENTB: chain system rejected 1'
3717 GOTO 9999
3718 ENDIF
3719*
3720* update statistics counter
3721 ICEVTG(IDCH(NC),29) = ICEVTG(IDCH(NC),29)+1
3722*
3723*-----------------------------------------------------------------------
3724* this interaction involves "remnants"
3725*
3726 ELSE
3727*
3728* total mass of this system
3729 PPTOT = SQRT(PTOT(1)**2+PTOT(2)**2+PTOT(3)**2)
3730 AMTOT2 = (PTOT(4)-PPTOT)*(PTOT(4)+PPTOT)
3731 IF (AMTOT2.LT.ZERO) THEN
3732 AMTOT = ZERO
3733 ELSE
3734 AMTOT = SQRT(AMTOT2)
3735 ENDIF
3736*
3737* systems with masses larger than elojet are treated with PHOJET
3738 IF (AMTOT.GT.ELOJET) THEN
3739*
3740* initialize PHOJET-variables for remnant/valence-partons
3741* projectile parton flavors and valence flag
3742 IHFLD(1,1) = IDHKK(NC)
3743 IHFLD(1,2) = IDHKK(NC+2)
3744 IHFLS(1) = 0
3745 IF ((IDCH(NC).EQ.6).OR.(IDCH(NC).EQ.7)
3746 & .OR.(IDCH(NC).EQ.8)) IHFLS(1) = 1
3747* target parton flavors and valence flag
3748 IHFLD(2,1) = IDHKK(NC+1)
3749 IHFLD(2,2) = IDHKK(NC+3)
3750 IHFLS(2) = 0
3751 IF ((IDCH(NC).EQ.4).OR.(IDCH(NC).EQ.5)
3752 & .OR.(IDCH(NC).EQ.8)) IHFLS(2) = 1
3753* flag signalizing PHOJET how to treat the remnant:
3754* iremn = -1 sea-quark remnant: PHOJET takes flavors from ihfld
3755* iremn > -1 valence remnant: PHOJET assumes flavors according
3756* to mother particle
3757 IREMN1 = IHFLS(1)-1
3758 IREMN2 = IHFLS(2)-1
3759*
3760* initialize the incoming particles in PHOJET
3761 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3762 CALL PHO_SETPAR(1,22,IREMN1,VIRT)
3763 ELSE
3764 CALL PHO_SETPAR(1,IDHKK(MOP),IREMN1,ZERO)
3765 ENDIF
3766 CALL PHO_SETPAR(2,IDHKK(MOT),IREMN2,ZERO)
3767*
3768* calculate Lorentz parameter of the nucleon-nucleon cm-system
3769 PPTOTN = SQRT(PTOTNN(1)**2+PTOTNN(2)**2+PTOTNN(3)**2)
3770 AMNN = SQRT( (PTOTNN(4)-PPTOTN)*(PTOTNN(4)+PPTOTN) )
3771 BGX = PTOTNN(1)/AMNN
3772 BGY = PTOTNN(2)/AMNN
3773 BGZ = PTOTNN(3)/AMNN
3774 GAM = PTOTNN(4)/AMNN
3775* transform interacting nucleons into nucleon-nucleon cm-system
3776 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3777 & PPNN(1),PPNN(2),PPNN(3),PPNN(4),PPCMS,
3778 & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4))
3779 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3780 & PTNN(1),PTNN(2),PTNN(3),PTNN(4),PTCMS,
3781 & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4))
3782* transform (total) momenta of the proj and targ partons into
3783* nucleon-nucleon cm-system
3784 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3785 & PP(1),PP(2),PP(3),PP(4),
3786 & PPTSUB,PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4))
3787 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3788 & PT(1),PT(2),PT(3),PT(4),
3789 & PTTSUB,PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4))
3790* energy fractions of the proj and targ partons
3791 XPSUB = MIN(PPSUB(4)/PPTCMS(4),ONE)
3792 XTSUB = MIN(PTSUB(4)/PTTCMS(4),ONE)
3793***
3794* testprint
3795c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3796c & (PPTCMS(2)+PTTCMS(2))**2 +
3797c & (PPTCMS(3)+PTTCMS(3))**2 )
3798c EOLDCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3799c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3800c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3801c & (PPSUB(2)+PTSUB(2))**2 +
3802c & (PPSUB(3)+PTSUB(3))**2 )
3803c EOLDSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3804c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3805***
3806*
3807* save current settings of PHOJET process and min. bias flags
3808 DO 7 K=1,11
3809 KPRON(K) = IPRON(K,1)
3810 7 CONTINUE
3811* disallow direct photon int. (does not make sense here anyway)
3812 IPRON(8,1) = 0
3813* disallow double pomeron processes (due to technical problems
3814* in PHOJET, needs to be solved sometime)
3815 IPRON(4,1) = 0
3816* disallow diffraction for sea-diquarks
3817 IF ((IABS(IHFLD(1,1)).GT.1100).AND.
3818 & (IABS(IHFLD(1,2)).GT.1100)) THEN
3819 IPRON(3,1) = 0
3820 IPRON(6,1) = 0
3821 ENDIF
3822 IF ((IABS(IHFLD(2,1)).GT.1100).AND.
3823 & (IABS(IHFLD(2,2)).GT.1100)) THEN
3824 IPRON(3,1) = 0
3825 IPRON(5,1) = 0
3826 ENDIF
3827*
3828* we need massless partons: transform them on mass shell
3829 XMP = ZERO
3830 XMT = ZERO
3831 DO 6 K=1,4
3832 PPTMP(K) = PPSUB(K)
3833 PTTMP(K) = PTSUB(K)
3834 6 CONTINUE
3835 CALL DT_MASHEL(PPTMP,PTTMP,XMP,XMT,PPSUB,PTSUB,IREJ1)
3836 PPSUTO = SQRT(PPSUB(1)**2+PPSUB(2)**2+PPSUB(3)**2)
3837 PTSUTO = SQRT(PTSUB(1)**2+PTSUB(2)**2+PTSUB(3)**2)
3838 PSUTOT = SQRT((PPSUB(1)+PTSUB(1))**2+
3839 & (PPSUB(2)+PTSUB(2))**2+(PPSUB(3)+PTSUB(3))**2)
3840* total energy of the subsysten after mass transformation
3841* (should be the same as before..)
3842 SECM = SQRT( (PPSUB(4)+PTSUB(4)-PSUTOT)*
3843 & (PPSUB(4)+PTSUB(4)+PSUTOT) )
3844*
3845* after mass shell transformation the x_sub - relation has to be
3846* corrected. We therefore create "pseudo-momenta" of mother-nucleons.
3847*
3848* The old version was to scale based on the original x_sub and the
3849* 4-momenta of the subsystem. At very high energy this could lead to
3850* "pseudo-cm energies" of the parent system considerably exceeding
3851* the true cm energy. Now we keep the true cm energy and calculate
3852* new x_sub instead.
3853C old version PPTCMS(4) = PPSUB(4)/XPSUB
3854 PPTCMS(4) = MAX(PPTCMS(4),PPSUB(4))
3855 XPSUB = PPSUB(4)/PPTCMS(4)
3856 IF (IJPROJ.EQ.7) THEN
3857 AMP2 = PHKK(5,MOT)**2
3858 PTOT1 = SQRT(PPTCMS(4)**2-AMP2)
3859 ELSE
3860*???????
3861 PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOP))
3862 & *(PPTCMS(4)+PHKK(5,MOP)))
3863C PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOT))
3864C & *(PPTCMS(4)+PHKK(5,MOT)))
3865 ENDIF
3866C old version PTTCMS(4) = PTSUB(4)/XTSUB
3867 PTTCMS(4) = MAX(PTTCMS(4),PTSUB(4))
3868 XTSUB = PTSUB(4)/PTTCMS(4)
3869 PTOT2 = SQRT((PTTCMS(4)-PHKK(5,MOT))
3870 & *(PTTCMS(4)+PHKK(5,MOT)))
3871 DO 4 K=1,3
3872 PPTCMS(K) = PTOT1*PPSUB(K)/PPSUTO
3873 PTTCMS(K) = PTOT2*PTSUB(K)/PTSUTO
3874 4 CONTINUE
3875***
3876* testprint
3877*
3878* ppnn / ptnn - momenta of the int. nucleons (cms, negl. Fermi)
3879* ptotnn - total momentum of the int. nucleons (cms, negl. Fermi)
3880* pptcms/ pttcms - momenta of the interacting nucleons (cms)
3881* pp1,2 / pt1,2 - momenta of the four partons
3882*
3883* pp / pt - total momenta of the pr/ta partons (cms, negl. Fermi)
3884* ptot - total momentum of the four partons (cms, negl. Fermi)
3885* ppsub / ptsub - total momenta of the proj / targ partons (cms)
3886*
3887c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3888c & (PPTCMS(2)+PTTCMS(2))**2 +
3889c & (PPTCMS(3)+PTTCMS(3))**2 )
3890c ENEWCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3891c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3892c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3893c & (PPSUB(2)+PTSUB(2))**2 +
3894c & (PPSUB(3)+PTSUB(3))**2 )
3895c ENEWSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3896c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3897c IF (ENEWCM/EOLDCM.GT.1.1D0) THEN
3898c WRITE(*,*) ' EOLDCM, ENEWCM : ',EOLDCM,ENEWCM
3899c WRITE(*,*) ' EOLDSU, ENEWSU : ',EOLDSU,ENEWSU
3900c WRITE(*,*) ' XPSUB, XTSUB : ',XPSUB,XTSUB
3901c ENDIF
3902c BBGX = (PPTCMS(1)+PTTCMS(1))/ENEWCM
3903c BBGY = (PPTCMS(2)+PTTCMS(2))/ENEWCM
3904c BBGZ = (PPTCMS(3)+PTTCMS(3))/ENEWCM
3905c BGAM = (PPTCMS(4)+PTTCMS(4))/ENEWCM
3906* transform interacting nucleons into nucleon-nucleon cm-system
3907c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3908c & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4),PPTOT,
3909c & PPNEW1,PPNEW2,PPNEW3,PPNEW4)
3910c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3911c & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4),PTTOT,
3912c & PTNEW1,PTNEW2,PTNEW3,PTNEW4)
3913c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3914c & PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4),PPTOT,
3915c & PPSUB1,PPSUB2,PPSUB3,PPSUB4)
3916c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3917c & PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4),PTTOT,
3918c & PTSUB1,PTSUB2,PTSUB3,PTSUB4)
3919c PTSTCM = SQRT( (PPNEW1+PTNEW1)**2 +
3920c & (PPNEW2+PTNEW2)**2 +
3921c & (PPNEW3+PTNEW3)**2 )
3922c ETSTCM = SQRT( (PPNEW4+PTNEW4-PTSTCM) *
3923c & (PPNEW4+PTNEW4+PTSTCM) )
3924c PTSTSU = SQRT( (PPSUB1+PTSUB1)**2 +
3925c & (PPSUB2+PTSUB2)**2 +
3926c & (PPSUB3+PTSUB3)**2 )
3927c ETSTSU = SQRT( (PPSUB4+PTSUB4-PTSTSU) *
3928c & (PPSUB4+PTSUB4+PTSTSU) )
3929C WRITE(*,*) ' mother cmE :'
3930C WRITE(*,*) ETSTCM,ENEWCM
3931C WRITE(*,*) ' subsystem cmE :'
3932C WRITE(*,*) ETSTSU,ENEWSU
3933C WRITE(*,*) ' projectile mother :'
3934C WRITE(*,*) PPNEW1,PPNEW2,PPNEW3,PPNEW4
3935C WRITE(*,*) ' target mother :'
3936C WRITE(*,*) PTNEW1,PTNEW2,PTNEW3,PTNEW4
3937C WRITE(*,*) ' projectile subsystem:'
3938C WRITE(*,*) PPSUB1,PPSUB2,PPSUB3,PPSUB4
3939C WRITE(*,*) ' target subsystem:'
3940C WRITE(*,*) PTSUB1,PTSUB2,PTSUB3,PTSUB4
3941C WRITE(*,*) ' projectile subsystem should be:'
3942C WRITE(*,*) ZERO,ZERO,XPSUB*ETSTCM/2.0D0,
3943C & XPSUB*ETSTCM/2.0D0
3944C WRITE(*,*) ' target subsystem should be:'
3945C WRITE(*,*) ZERO,ZERO,-XTSUB*ETSTCM/2.0D0,
3946C & XTSUB*ETSTCM/2.0D0
3947C WRITE(*,*) ' subsystem cmE should be: '
3948C WRITE(*,*) SQRT(XPSUB*XTSUB)*ETSTCM,XPSUB,XTSUB
3949***
3950*
3951* generate complete remnant - nucleon/remnant event with PHOJET
3952 CALL PHO_EVENT(3,PPTCMS,PTTCMS,DUM,IREJ1)
3953*
3954* copy back original settings of PHOJET process flags
3955 DO 11 K=1,11
3956 IPRON(K,1) = KPRON(K)
3957 11 CONTINUE
3958*
3959* check if PHOJET has rejected this event
3960 IF (IREJ1.NE.0) THEN
3961 IF (IOULEV(1).GT.0)
3962 & WRITE(LOUT,'(1X,A)') 'EVENTB: chain system rejected'
3963 WRITE(LOUT,*)
3964 & 'XPSUB,XTSUB,SECM ',XPSUB,XTSUB,SECM,AMTOT
3965 CALL PHO_PREVNT(0)
3966 GOTO 9999
3967 ENDIF
3968*
3969* copy partons and strings from PHOJET common back into DTEVT for
3970* external fragmentation
3971 MO1 = NC
3972 MO2 = NC+3
3973*! uncomment this line for internal phojet-fragmentation
3974C CALL DT_GETFSP(MO1,MO2,PP,PT,1)
3975 NPHOSC = NPHOSC+1
3976 CALL DT_GETPJE(MO1,MO2,PP,PT,1,NPHOSC,IREJ1)
3977 IF (IREJ1.NE.0) THEN
3978 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3979 & 'EVENTB: chain system rejected 2'
3980 GOTO 9999
3981 ENDIF
3982*
3983* update statistics counter
3984 ICEVTG(IDCH(NC),2) = ICEVTG(IDCH(NC),2)+1
3985*
3986*-----------------------------------------------------------------------
3987* two-chain approx. for smaller systems
3988*
3989 ELSE
3990*
3991 NDTUSC = NDTUSC+1
3992* special flag for double-Pomeron statistics
3993 IPOPO = 0
3994*
3995* pick up flavors at the ends of the two chains
3996 IFP1 = IDHKK(NC)
3997 IFT1 = IDHKK(NC+1)
3998 IFP2 = IDHKK(NC+2)
3999 IFT2 = IDHKK(NC+3)
4000* ..and the indices of the mothers
4001 MOP1 = NC
4002 MOT1 = NC+1
4003 MOP2 = NC+2
4004 MOT2 = NC+3
4005 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
4006 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
4007*
4008* check if this chain system was rejected
4009 IF (IREJ1.GT.0) THEN
4010 IF (IOULEV(1).GT.0) THEN
4011 WRITE(LOUT,*) 'rejected 1 in EVENTB'
4012 WRITE(LOUT,'(1X,4(I6,4E12.3,/),E12.3)')
4013 & IFP1,PP1,IFT1,PT1,IFP2,PP2,IFT2,PT2,AMTOT
4014 ENDIF
4015 IRHHA = IRHHA+1
4016 GOTO 9999
4017 ENDIF
4018* the following lines are for sea-sea chains rejected in GETCSY
4019 IF (IREJ1.EQ.-1) NDTUSC = NDTUSC-1
4020 ICEVTG(IDCH(NC),1) = ICEVTG(IDCH(NC),1)+1
4021 ENDIF
4022*
4023 ENDIF
4024*
4025* update statistics counter
4026 ICEVTG(IDCH(NC),0) = ICEVTG(IDCH(NC),0)+1
4027*
4028 NC = NC+4
4029*
4030 2 CONTINUE
4031*
4032*-----------------------------------------------------------------------
4033* treatment of low-mass chains (if there are any)
4034*
4035 IF (NDTUSC.GT.0) THEN
4036*
4037* correct chains of very low masses for possible resonances
4038 IF (IRESCO.EQ.1) THEN
4039 CALL DT_EVTRES(IREJ1)
4040 IF (IREJ1.GT.0) THEN
4041 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2a in EVENTB'
4042 IRRES(1) = IRRES(1)+1
4043 GOTO 9999
4044 ENDIF
4045 ENDIF
4046* fragmentation of low-mass chains
4047*! uncomment this line for internal phojet-fragmentation
4048* (of course it will still be fragmented by DPMJET-routines but it
4049* has to be done here instead of further below)
4050C CALL DT_EVTFRA(IREJ1)
4051C IF (IREJ1.GT.0) THEN
4052C IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2b in EVENTB'
4053C IRFRAG = IRFRAG+1
4054C GOTO 9999
4055C ENDIF
4056 ELSE
4057*! uncomment this line for internal phojet-fragmentation
4058C NPOINT(4) = NHKK+1
4059 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
4060 ENDIF
4061*
4062*-----------------------------------------------------------------------
4063* new di-quark breaking mechanisms
4064*
4065 MXLEFT = 2
4066 CALL DT_CHASTA(0)
4067 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
4068 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
4069 CALL DT_DIQBRK
4070 MXLEFT = 4
4071 ENDIF
4072*
4073*-----------------------------------------------------------------------
4074* hadronize this event
4075*
4076* hadronize PHOJET chain systems
4077 NPYMAX = 0
4078 NPJE = NPHOSC/MXPHFR
4079 IF (MXPHFR.LT.MXLEFT) MXLEFT = 2
4080 IF (NPJE.GT.1) THEN
4081 NLEFT = NPHOSC-NPJE*MXPHFR
4082 DO 20 JFRG=1,NPJE
4083 NFRG = JFRG*MXPHFR
4084 IF ((JFRG.EQ.NPJE).AND.(NLEFT.LE.MXLEFT)) THEN
4085 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4086 IF (IREJ1.GT.0) GOTO 22
4087 NLEFT = 0
4088 ELSE
4089 CALL DT_EVTFRG(1,NFRG,NPYMEM,IREJ1)
4090 IF (IREJ1.GT.0) GOTO 22
4091 ENDIF
4092 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4093 20 CONTINUE
4094 IF (NLEFT.GT.0) THEN
4095 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4096 IF (IREJ1.GT.0) GOTO 22
4097 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4098 ENDIF
4099 ELSE
4100 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4101 IF (IREJ1.GT.0) GOTO 22
4102 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4103 ENDIF
4104*
4105* check max. filling level of jetset common and
4106* reduce mxphfr if necessary
4107 IF (NPYMAX.GT.3000) THEN
4108 IF (NPYMAX.GT.3500) THEN
4109 MXPHFR = MAX(1,MXPHFR-2)
4110 ELSE
4111 MXPHFR = MAX(1,MXPHFR-1)
4112 ENDIF
4113C WRITE(LOUT,*) ' EVENTB: Mxphfr reduced to ',MXPHFR
4114 ENDIF
4115*
4116* hadronize DTUNUC chain systems
4117 23 CONTINUE
4118 IBACK = MXDTFR
4119 CALL DT_EVTFRG(2,IBACK,NPYMEM,IREJ2)
4120 IF (IREJ2.GT.0) GOTO 22
4121*
4122* check max. filling level of jetset common and
4123* reduce mxdtfr if necessary
4124 IF (NPYMEM.GT.3000) THEN
4125 IF (NPYMEM.GT.3500) THEN
4126 MXDTFR = MAX(1,MXDTFR-20)
4127 ELSE
4128 MXDTFR = MAX(1,MXDTFR-10)
4129 ENDIF
4130C WRITE(LOUT,*) ' EVENTB: Mxdtfr reduced to ',MXDTFR
4131 ENDIF
4132*
4133 IF (IBACK.EQ.-1) GOTO 23
4134*
4135 22 CONTINUE
4136C CALL DT_EVTFRG(1,IREJ1)
4137C CALL DT_EVTFRG(2,IREJ2)
4138 IF ((IREJ1.GT.0).OR.(IREJ2.GT.0)) THEN
4139 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTB'
4140 IRFRAG = IRFRAG+1
4141 GOTO 9999
4142 ENDIF
4143*
4144* get final state particles from /DTEVTP/
4145*! uncomment this line for internal phojet-fragmentation
4146C CALL DT_GETFSP(IDUM,IDUM,PP,PT,2)
4147
4148 IF (IJPROJ.NE.7)
4149 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,88,IREJ3)
4150C IF (IREJ3.NE.0) GOTO 9999
4151
4152 RETURN
4153
4154 9999 CONTINUE
4155 IREVT = IREVT+1
4156 IREJ = 1
4157 RETURN
4158 END
4159
4160*$ CREATE DT_GETPJE.FOR
4161*COPY DT_GETPJE
4162*
4163*===getpje=============================================================*
4164*
4165 SUBROUTINE DT_GETPJE(MO1,MO2,PP,PT,MODE,IPJE,IREJ)
4166
4167************************************************************************
4168* This subroutine copies PHOJET partons and strings from POEVT1 into *
4169* DTEVT1. *
4170* MO1,MO2 indices of first and last mother-parton in DTEVT1 *
4171* PP,PT 4-momenta of projectile/target being handled by *
4172* PHOJET *
4173* This version dated 11.12.99 is written by S. Roesler *
4174************************************************************************
4175
4176 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4177 SAVE
4178 PARAMETER ( LINP = 10 ,
4179 & LOUT = 6 ,
4180 & LDAT = 9 )
4181 PARAMETER (TINY10=1.0D-10,TINY1=1.0D-1,
4182 & ZERO=0.0D0,ONE=1.0D0,OHALF=0.5D0)
4183
4184 LOGICAL LFLIP
4185
4186* event history
4187 PARAMETER (NMXHKK=200000)
4188 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4189 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4190 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4191* extended event history
4192 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4193 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4194 & IHIST(2,NMXHKK)
4195* Lorentz-parameters of the current interaction
4196 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4197 & UMO,PPCM,EPROJ,PPROJ
4198* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
4199 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
4200* flags for input different options
4201 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4202 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4203 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4204* statistics: double-Pomeron exchange
4205 COMMON /DTFLG2/ INTFLG,IPOPO
4206* statistics
4207 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
4208 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
4209 & ICEVTG(8,0:30)
4210* rejection counter
4211 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
4212 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
4213 & IREXCI(3),IRDIFF(2),IRINC
4214C standard particle data interface
4215 INTEGER NMXHEP
4216 PARAMETER (NMXHEP=4000)
4217 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
4218 DOUBLE PRECISION PHEP,VHEP
4219 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
4220 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
4221 & VHEP(4,NMXHEP)
4222C extension to standard particle data interface (PHOJET specific)
4223 INTEGER IMPART,IPHIST,ICOLOR
4224 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
4225C color string configurations including collapsed strings and hadrons
4226 INTEGER MSTR
4227 PARAMETER (MSTR=500)
4228 INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
4229 COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
4230 & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
4231 & NNCH(MSTR),IBHAD(MSTR),ISTR
4232C general process information
4233 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4234 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4235C model switches and parameters
4236 CHARACTER*8 MDLNA
4237 INTEGER ISWMDL,IPAMDL
4238 DOUBLE PRECISION PARMDL
4239 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4240C event debugging information
4241 INTEGER NMAXD
4242 PARAMETER (NMAXD=100)
4243 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
4244 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4245 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
4246 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4247
4248 DIMENSION PP(4),PT(4)
4249 DATA MAXLOP /10000/
4250
4251 INHKK = NHKK
4252 LFLIP = .TRUE.
4253 1 CONTINUE
4254 NPVAL = 0
4255 NTVAL = 0
4256 IREJ = 0
4257
4258* store initial momenta for energy-momentum conservation check
4259 IF (LEMCCK) THEN
4260 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM1,IDUM2)
4261 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM1,IDUM2)
4262 ENDIF
4263* copy partons and strings from POEVT1 into DTEVT1
4264 DO 11 I=1,ISTR
4265C IF ((NCODE(I).EQ.-99).AND.(IPAMDL(17).EQ.0)) THEN
4266 IF (NCODE(I).EQ.-99) THEN
4267 IDXSTG = NPOS(1,I)
4268 IDSTG = IDHEP(IDXSTG)
4269 PX = PHEP(1,IDXSTG)
4270 PY = PHEP(2,IDXSTG)
4271 PZ = PHEP(3,IDXSTG)
4272 PE = PHEP(4,IDXSTG)
4273 IF (MODE.LT.0) THEN
4274 ISTAT = 70000+IPJE
4275 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PX,PY,PZ,PE,
4276 & 11,IDSTG,0)
4277 IF (LEMCCK) THEN
4278 PX = -PX
4279 PY = -PY
4280 PZ = -PZ
4281 PE = -PE
4282 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4283 ENDIF
4284 ELSE
4285 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4286 & PPX,PPY,PPZ,PPE)
4287 ISTAT = 70000+IPJE
4288 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PPX,PPY,PPZ,PPE,
4289 & 11,IDSTG,0)
4290 IF (LEMCCK) THEN
4291 PX = -PPX
4292 PY = -PPY
4293 PZ = -PPZ
4294 PE = -PPE
4295 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4296 ENDIF
4297 ENDIF
4298 NOBAM(NHKK) = 0
4299 IHIST(1,NHKK) = IPHIST(1,IDXSTG)
4300 IHIST(2,NHKK) = 0
4301 ELSEIF (NCODE(I).GE.0) THEN
4302* indices of partons and string in POEVT1
4303 IDX1 = ABS(JMOHEP(1,NPOS(1,I)))
4304 IDX2 = ABS(JMOHEP(2,NPOS(1,I)))
4305 IF ((IDX1.GT.IDX2).OR.(JMOHEP(2,NPOS(1,I)).GT.0)) THEN
4306 WRITE(LOUT,*) ' GETPJE: IDX1.GT.IDX2 ',IDX1,IDX2,
4307 & ' or JMOHEP(2,NPOS(1,I)).GT.0 ',JMOHEP(2,NPOS(1,I)),' ! '
4308 STOP ' GETPJE 1'
4309 ENDIF
4310 IDXSTG = NPOS(1,I)
4311* find "mother" string of the string
4312 IDXMS1 = ABS(JMOHEP(1,IDX1))
4313 IDXMS2 = ABS(JMOHEP(1,IDX2))
4314 IF (IDXMS1.NE.IDXMS2) THEN
4315 IDXMS1 = IDXSTG
4316 IDXMS2 = IDXSTG
4317C STOP ' GETPJE: IDXMS1.NE.IDXMS2 !'
4318 ENDIF
4319* search POEVT1 for the original hadron of the parton
4320 ILOOP = 0
4321 IPOM1 = 0
4322 14 CONTINUE
4323 ILOOP = ILOOP+1
4324 IF (IDHEP(IDXMS1).EQ.990) IPOM1 = 1
4325 IDXMS1 = ABS(JMOHEP(1,IDXMS1))
4326 IF ((IDXMS1.NE.1).AND.(IDXMS1.NE.2).AND.
4327 & (ILOOP.LT.MAXLOP)) GOTO 14
4328 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 1 ! '
4329 IPOM2 = 0
4330 ILOOP = 0
4331 15 CONTINUE
4332 ILOOP = ILOOP+1
4333 IF (IDHEP(IDXMS2).EQ.990) IPOM2 = 1
4334 IF ((ILOOP.EQ.1).OR.(IDHEP(IDXMS2).GE.7777)) THEN
4335 IDXMS2 = ABS(JMOHEP(2,IDXMS2))
4336 ELSE
4337 IDXMS2 = ABS(JMOHEP(1,IDXMS2))
4338 ENDIF
4339 IF ((IDXMS2.NE.1).AND.(IDXMS2.NE.2).AND.
4340 & (ILOOP.LT.MAXLOP)) GOTO 15
4341 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 5 ! '
4342* parton 1
4343 IF (IDXMS1.EQ.1) THEN
4344 ISPTN1 = ISTHKK(MO1)
4345 M1PTN1 = MO1
4346 M2PTN1 = MO1+2
4347 ELSE
4348 ISPTN1 = ISTHKK(MO2)
4349 M1PTN1 = MO2-2
4350 M2PTN1 = MO2
4351 ENDIF
4352* parton 2
4353 IF (IDXMS2.EQ.1) THEN
4354 ISPTN2 = ISTHKK(MO1)
4355 M1PTN2 = MO1
4356 M2PTN2 = MO1+2
4357 ELSE
4358 ISPTN2 = ISTHKK(MO2)
4359 M1PTN2 = MO2-2
4360 M2PTN2 = MO2
4361 ENDIF
4362* check for mis-identified mothers and switch mother indices if necessary
4363 IF ((IDXMS1.EQ.IDXMS2).AND.(IPROCE.NE.5).AND.(IPROCE.NE.6)
4364 & .AND.((IDHEP(IDX1).NE.21).OR.(IDHEP(IDX2).NE.21)).AND.
4365 & (LFLIP)) THEN
4366 IF (PHEP(3,IDX1).GT.PHEP(3,IDX2)) THEN
4367 ISPTN1 = ISTHKK(MO1)
4368 M1PTN1 = MO1
4369 M2PTN1 = MO1+2
4370 ISPTN2 = ISTHKK(MO2)
4371 M1PTN2 = MO2-2
4372 M2PTN2 = MO2
4373 ELSE
4374 ISPTN1 = ISTHKK(MO2)
4375 M1PTN1 = MO2-2
4376 M2PTN1 = MO2
4377 ISPTN2 = ISTHKK(MO1)
4378 M1PTN2 = MO1
4379 M2PTN2 = MO1+2
4380 ENDIF
4381 ENDIF
4382* register partons in temporary common
4383* parton at chain end
4384 PX = PHEP(1,IDX1)
4385 PY = PHEP(2,IDX1)
4386 PZ = PHEP(3,IDX1)
4387 PE = PHEP(4,IDX1)
4388* flag only partons coming from Pomeron with 41/42
4389C IF ((IPOM1.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4390 IF (IPOM1.NE.0) THEN
4391 ISTX = ABS(ISPTN1)/10
4392 IMO = ABS(ISPTN1)-10*ISTX
4393 ISPTN1 = -(40+IMO)
4394 ELSE
4395 IF ((ICOLOR(2,IDX1).EQ.0).OR.(IDHEP(IDX1).EQ.21)) THEN
4396 ISTX = ABS(ISPTN1)/10
4397 IMO = ABS(ISPTN1)-10*ISTX
4398 IF ((IDHEP(IDX1).EQ.21).OR.
4399 & (ABS(IPHIST(1,IDX1)).GE.100)) THEN
4400 ISPTN1 = -(60+IMO)
4401 ELSE
4402 ISPTN1 = -(50+IMO)
4403 ENDIF
4404 ENDIF
4405 ENDIF
4406 IF (ISPTN1.EQ.-21) NPVAL = NPVAL+1
4407 IF (ISPTN1.EQ.-22) NTVAL = NTVAL+1
4408 IF (MODE.LT.0) THEN
4409 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PX,PY,
4410 & PZ,PE,0,0,0)
4411 ELSE
4412 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4413 & PPX,PPY,PPZ,PPE)
4414 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PPX,PPY,
4415 & PPZ,PPE,0,0,0)
4416 ENDIF
4417 IHIST(1,NHKK) = IPHIST(1,IDX1)
4418 IHIST(2,NHKK) = 0
4419 DO 19 KK=1,4
4420 VHKK(KK,NHKK) = VHKK(KK,M2PTN1)
4421 WHKK(KK,NHKK) = WHKK(KK,M1PTN1)
4422 19 CONTINUE
4423 VHKK(4,NHKK) = VHKK(3,M2PTN1)/BLAB-VHKK(3,M1PTN1)/BGLAB
4424 WHKK(4,NHKK) = -WHKK(3,M1PTN1)/BLAB+WHKK(3,M2PTN1)/BGLAB
4425 M1STRG = NHKK
4426* gluon kinks
4427 NGLUON = IDX2-IDX1-1
4428 IF (NGLUON.GT.0) THEN
4429 DO 17 IGLUON=1,NGLUON
4430 IDX = IDX1+IGLUON
4431 IDXMS = ABS(JMOHEP(1,IDX))
4432 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2)) THEN
4433 ILOOP = 0
4434 16 CONTINUE
4435 ILOOP = ILOOP+1
4436 IDXMS = ABS(JMOHEP(1,IDXMS))
4437 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2).AND.
4438 & (ILOOP.LT.MAXLOP)) GOTO 16
4439 IF (ILOOP.EQ.MAXLOP)
4440 & WRITE(LOUT,*) ' GETPJE: MAXLOP in 3 ! '
4441 ENDIF
4442 IF (IDXMS.EQ.1) THEN
4443 ISPTN = ISTHKK(MO1)
4444 M1PTN = MO1
4445 M2PTN = MO1+2
4446 ELSE
4447 ISPTN = ISTHKK(MO2)
4448 M1PTN = MO2-2
4449 M2PTN = MO2
4450 ENDIF
4451 PX = PHEP(1,IDX)
4452 PY = PHEP(2,IDX)
4453 PZ = PHEP(3,IDX)
4454 PE = PHEP(4,IDX)
4455 IF ((ICOLOR(2,IDX).EQ.0).OR.(IDHEP(IDX).EQ.21)) THEN
4456 ISTX = ABS(ISPTN)/10
4457 IMO = ABS(ISPTN)-10*ISTX
4458 IF ((IDHEP(IDX).EQ.21).OR.
4459 & (ABS(IPHIST(1,IDX)).GE.100)) THEN
4460 ISPTN = -(60+IMO)
4461 ELSE
4462 ISPTN = -(50+IMO)
4463 ENDIF
4464 ENDIF
4465 IF (ISPTN.EQ.-21) NPVAL = NPVAL+1
4466 IF (ISPTN.EQ.-22) NTVAL = NTVAL+1
4467 IF (MODE.LT.0) THEN
4468 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4469 & PX,PY,PZ,PE,0,0,0)
4470 ELSE
4471 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4472 & PPX,PPY,PPZ,PPE)
4473 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4474 & PPX,PPY,PPZ,PPE,0,0,0)
4475 ENDIF
4476 IHIST(1,NHKK) = IPHIST(1,IDX)
4477 IHIST(2,NHKK) = 0
4478 DO 20 KK=1,4
4479 VHKK(KK,NHKK) = VHKK(KK,M2PTN)
4480 WHKK(KK,NHKK) = WHKK(KK,M1PTN)
4481 20 CONTINUE
4482 VHKK(4,NHKK)= VHKK(3,M2PTN)/BLAB-VHKK(3,M1PTN)/BGLAB
4483 WHKK(4,NHKK)= -WHKK(3,M1PTN)/BLAB+WHKK(3,M2PTN)/BGLAB
4484 17 CONTINUE
4485 ENDIF
4486* parton at chain end
4487 PX = PHEP(1,IDX2)
4488 PY = PHEP(2,IDX2)
4489 PZ = PHEP(3,IDX2)
4490 PE = PHEP(4,IDX2)
4491* flag only partons coming from Pomeron with 41/42
4492C IF ((IPOM2.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4493 IF (IPOM2.NE.0) THEN
4494 ISTX = ABS(ISPTN2)/10
4495 IMO = ABS(ISPTN2)-10*ISTX
4496 ISPTN2 = -(40+IMO)
4497 ELSE
4498 IF ((ICOLOR(2,IDX2).EQ.0).OR.(IDHEP(IDX2).EQ.21)) THEN
4499 ISTX = ABS(ISPTN2)/10
4500 IMO = ABS(ISPTN2)-10*ISTX
4501 IF ((IDHEP(IDX2).EQ.21).OR.
4502 & (ABS(IPHIST(1,IDX2)).GE.100)) THEN
4503 ISPTN2 = -(60+IMO)
4504 ELSE
4505 ISPTN2 = -(50+IMO)
4506 ENDIF
4507 ENDIF
4508 ENDIF
4509 IF (ISPTN2.EQ.-21) NPVAL = NPVAL+1
4510 IF (ISPTN2.EQ.-22) NTVAL = NTVAL+1
4511 IF (MODE.LT.0) THEN
4512 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4513 & PX,PY,PZ,PE,0,0,0)
4514 ELSE
4515 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4516 & PPX,PPY,PPZ,PPE)
4517 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4518 & PPX,PPY,PPZ,PPE,0,0,0)
4519 ENDIF
4520 IHIST(1,NHKK) = IPHIST(1,IDX2)
4521 IHIST(2,NHKK) = 0
4522 DO 21 KK=1,4
4523 VHKK(KK,NHKK) = VHKK(KK,M2PTN2)
4524 WHKK(KK,NHKK) = WHKK(KK,M1PTN2)
4525 21 CONTINUE
4526 VHKK(4,NHKK) = VHKK(3,M2PTN2)/BLAB-VHKK(3,M1PTN2)/BGLAB
4527 WHKK(4,NHKK) = -WHKK(3,M1PTN2)/BLAB+WHKK(3,M2PTN2)/BGLAB
4528 M2STRG = NHKK
4529* register string
4530 JSTRG = 100*IPROCE+NCODE(I)
4531 PX = PHEP(1,IDXSTG)
4532 PY = PHEP(2,IDXSTG)
4533 PZ = PHEP(3,IDXSTG)
4534 PE = PHEP(4,IDXSTG)
4535 IF (MODE.LT.0) THEN
4536 ISTAT = 70000+IPJE
4537 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4538 & PX,PY,PZ,PE,0,0,0)
4539 IF (LEMCCK) THEN
4540 PX = -PX
4541 PY = -PY
4542 PZ = -PZ
4543 PE = -PE
4544 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4545 ENDIF
4546 ELSE
4547 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4548 & PPX,PPY,PPZ,PPE)
4549 ISTAT = 70000+IPJE
4550 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4551 & PPX,PPY,PPZ,PPE,0,0,0)
4552 IF (LEMCCK) THEN
4553 PX = -PPX
4554 PY = -PPY
4555 PZ = -PPZ
4556 PE = -PPE
4557 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4558 ENDIF
4559 ENDIF
4560 NOBAM(NHKK) = 0
4561 IHIST(1,NHKK) = 0
4562 IHIST(2,NHKK) = 0
4563 DO 18 KK=1,4
4564 VHKK(KK,NHKK) = VHKK(KK,MO2)
4565 WHKK(KK,NHKK) = WHKK(KK,MO1)
4566 18 CONTINUE
4567 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
4568 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
4569 ENDIF
4570 11 CONTINUE
4571
4572 IF ( ((NPVAL.GT.2).OR.(NTVAL.GT.2)).AND.(LFLIP) ) THEN
4573 NHKK = INHKK
4574 LFLIP = .FALSE.
4575 GOTO 1
4576 ENDIF
4577
4578 IF (LEMCCK) THEN
4579 IF (UMO.GT.1.0D5) THEN
4580 CHKLEV = 1.0D0
4581 ELSE
4582 CHKLEV = TINY1
4583 ENDIF
4584 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,1000,IREJ2)
4585 IF (IREJ2.GT.ZERO) CALL PHO_PREVNT(0)
4586 ENDIF
4587
4588* internal statistics
4589* dble-Po statistics.
4590 IF (IPROCE.NE.4) IPOPO = 0
4591
4592 INTFLG = IPROCE
4593 IDCHSY = IDCH(MO1)
4594 IF ((IPROCE.GE.1).AND.(IPROCE.LE.8)) THEN
4595 ICEVTG(IDCHSY,IPROCE+2) = ICEVTG(IDCHSY,IPROCE+2)+1
4596 ELSE
4597 WRITE(LOUT,1000) IPROCE,NEVHKK,MO1
4598 1000 FORMAT(1X,'GETFSP: warning! incons. process id. (',I2,
4599 & ') at evt(chain) ',I6,'(',I2,')')
4600 ENDIF
4601 IF (IPROCE.EQ.5) THEN
4602 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3)) THEN
4603 ICEVTG(IDCHSY,18+IDIFR1) = ICEVTG(IDCHSY,18+IDIFR1)+1
4604 ELSE
4605C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4606 1001 FORMAT(1X,'GETFSP: warning! incons. diffrac. id. ',
4607 & '(IPROCE,IDIFR1,IDIFR2=',3I3,')')
4608 ENDIF
4609 ELSEIF (IPROCE.EQ.6) THEN
4610 IF ((IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4611 ICEVTG(IDCHSY,21+IDIFR2) = ICEVTG(IDCHSY,21+IDIFR2)+1
4612 ELSE
4613C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4614 ENDIF
4615 ELSEIF (IPROCE.EQ.7) THEN
4616 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3).AND.
4617 & (IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4618 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.1))
4619 & ICEVTG(IDCHSY,25) = ICEVTG(IDCHSY,25)+1
4620 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.2))
4621 & ICEVTG(IDCHSY,26) = ICEVTG(IDCHSY,26)+1
4622 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.2))
4623 & ICEVTG(IDCHSY,27) = ICEVTG(IDCHSY,27)+1
4624 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.1))
4625 & ICEVTG(IDCHSY,28) = ICEVTG(IDCHSY,28)+1
4626 ELSE
4627 WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4628 ENDIF
4629 ENDIF
4630 IF ((IDIFR1+IDIFR2.EQ.0).AND.(KHDIR.GE.1).AND.(KHDIR.LE.3))
4631 & THEN
4632 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4633 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4634 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4635 ENDIF
4636 ICEVTG(IDCHSY,14) = ICEVTG(IDCHSY,14)+KSPOM
4637 ICEVTG(IDCHSY,15) = ICEVTG(IDCHSY,15)+KHPOM
4638 ICEVTG(IDCHSY,16) = ICEVTG(IDCHSY,16)+KSREG
4639 ICEVTG(IDCHSY,17) = ICEVTG(IDCHSY,17)+(KSTRG+KHTRG)
4640 ICEVTG(IDCHSY,18) = ICEVTG(IDCHSY,18)+(KSLOO+KHLOO)
4641
4642 RETURN
4643
4644 9999 CONTINUE
4645 IREJ = 1
4646 RETURN
4647 END
4648
4649*$ CREATE DT_PHOINI.FOR
4650*COPY DT_PHOINI
4651*
4652*===phoini=============================================================*
4653*
4654 SUBROUTINE DT_PHOINI
4655
4656************************************************************************
4657* Initialization PHOJET-event generator for nucleon-nucleon interact. *
4658* This version dated 16.11.95 is written by S. Roesler *
4659* *
4660* Last change 27.12.2006 by S. Roesler. *
4661************************************************************************
4662
4663 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4664 SAVE
4665 PARAMETER ( LINP = 10 ,
4666 & LOUT = 6 ,
4667 & LDAT = 9 )
4668 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
4669
4670* nucleon-nucleon event-generator
4671 CHARACTER*8 CMODEL
4672 LOGICAL LPHOIN
4673 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
4674* particle properties (BAMJET index convention)
4675 CHARACTER*8 ANAME
4676 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
4677 & IICH(210),IIBAR(210),K1(210),K2(210)
4678* Lorentz-parameters of the current interaction
4679 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4680 & UMO,PPCM,EPROJ,PPROJ
4681* properties of interacting particles
4682 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4683* properties of photon/lepton projectiles
4684 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
4685 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
4686* emulsion treatment
4687 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
4688 & NCOMPO,IEMUL
4689* VDM parameter for photon-nucleus interactions
4690 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
4691* nuclear potential
4692 LOGICAL LFERMI
4693 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4694 & EBINDP(2),EBINDN(2),EPOT(2,210),
4695 & ETACOU(2),ICOUL,LFERMI
4696* Glauber formalism: flags and parameters for statistics
4697 LOGICAL LPROD
4698 CHARACTER*8 CGLB
4699 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
4700*
4701* parameters for cascade calculations:
4702* maximum mumber of PDF's which can be defined in phojet (limited
4703* by the dimension of ipdfs in pho_setpdf)
4704 PARAMETER (MAXPDF = 20)
4705* PDF parametrization and number of set for the first 30 hadrons in
4706* the bamjet-code list
4707* negative numbers mean that the PDF is set in phojet,
4708* zero stands for "not a hadron"
4709 DIMENSION IPARPD(30),ISETPD(30)
4710* PDF parametrization
4711 DATA IPARPD /
4712 & -5,-5, 0, 0, 0, 0,-5,-5,-5, 0, 0, 5,-5,-5, 5, 5, 5, 5, 5, 5,
4713 & 5, 5,-5, 5, 5, 0, 0, 0, 0, 0/
4714* number of set
4715 DATA ISETPD /
4716 & -6,-6, 0, 0, 0, 0,-3,-6,-6, 0, 0, 2,-2,-2, 2, 2, 6, 6, 2, 6,
4717 & 6, 6,-2, 2, 2, 0, 0, 0, 0, 0/
4718
4719**PHOJET105a
4720C COMMON /GLOCMS/ XECM,XPCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4721C PARAMETER ( MAXPRO = 16 )
4722C PARAMETER ( MAXTAB = 20 )
4723C COMMON /HAXSEC/ XSECTA(4,-1:MAXPRO,4,MAXTAB),XSECT(6,-1:MAXPRO),
4724C & MXSECT(0:4,-1:MAXPRO,4),ECMSH(4,MAXTAB),ISTTAB
4725C CHARACTER*8 MDLNA
4726C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
4727C COMMON /PROCES/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15)
4728**PHOJET110
4729C global event kinematics and particle IDs
4730 INTEGER IFPAP,IFPAB
4731 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
4732 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4733C hard cross sections and MC selection weights
4734 INTEGER Max_pro_2
4735 PARAMETER ( Max_pro_2 = 16 )
4736 INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
4737 & MH_acc_1,MH_acc_2
4738 DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
4739 COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
4740 & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
4741 & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
4742 & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
4743 & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
4744C model switches and parameters
4745 CHARACTER*8 MDLNA
4746 INTEGER ISWMDL,IPAMDL
4747 DOUBLE PRECISION PARMDL
4748 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4749C general process information
4750 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4751 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4752**
4753 DIMENSION PP(4),PT(4)
4754
4755 LOGICAL LSTART
4756 DATA LSTART /.TRUE./
4757
4758 IJP = IJPROJ
4759 IJT = IJTARG
4760 Q2 = VIRT
4761* lepton-projectiles: initialize real photon instead
4762 IF ((IJP.EQ.3).OR.(IJP.EQ.4).OR.(IJP.EQ.10).OR.(IJP.EQ.11)) THEN
4763 IJP = 7
4764 Q2 = ZERO
4765 ENDIF
4766 IF (LPHOIN) CALL PHO_INIT(-1,LOUT,IDUM)
4767* switch Reggeon off
4768C IPAMDL(3)= 0
4769 IF (IP.EQ.1) THEN
4770 IFPAP(1) = IDT_IPDGHA(IJP)
4771 IFPAB(1) = IJP
4772 ELSE
4773 IFPAP(1) = 2212
4774 IFPAB(1) = IDT_ICIHAD(IFPAP(1))
4775 ENDIF
4776 PMASS(1) = AAM(IFPAB(1))-SQRT(Q2)
4777 PVIRT(1) = PMASS(1)**2
4778 IF (IT.EQ.1) THEN
4779 IFPAP(2) = IDT_IPDGHA(IJT)
4780 IFPAB(2) = IJT
4781 ELSE
4782 IFPAP(2) = 2212
4783 IFPAB(2) = IDT_ICIHAD(IFPAP(2))
4784 ENDIF
4785 PMASS(2) = AAM(IFPAB(2))
4786 PVIRT(2) = ZERO
4787 DO 1 K=1,4
4788 PP(K) = ZERO
4789 PT(K) = ZERO
4790 1 CONTINUE
4791* get max. possible momenta of incoming particles to be used for PHOJET ini.
4792 PPF = ZERO
4793 PTF = ZERO
4794 SCPF= 1.5D0
4795 IF (UMO.GE.1.E5) THEN
4796 SCPF= 5.0D0
4797 ENDIF
4798 IF (NCOMPO.GT.0) THEN
4799 DO 2 I=1,NCOMPO
4800 IF (IT.GT.1) THEN
4801 CALL DT_NCLPOT(IEMUCH(I),IEMUMA(I),ITZ,IT,ZERO,ZERO,0)
4802 ELSE
4803 CALL DT_NCLPOT(IPZ,IP,IEMUCH(I),IEMUMA(I),ZERO,ZERO,0)
4804 ENDIF
4805 PPFTMP = MAX(PFERMP(1),PFERMN(1))
4806 PTFTMP = MAX(PFERMP(2),PFERMN(2))
4807 IF (PPFTMP.GT.PPF) PPF = PPFTMP
4808 IF (PTFTMP.GT.PTF) PTF = PTFTMP
4809 2 CONTINUE
4810 ELSE
4811 CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0)
4812 PPF = MAX(PFERMP(1),PFERMN(1))
4813 PTF = MAX(PFERMP(2),PFERMN(2))
4814 ENDIF
4815 PTF = -PTF
4816 PPF = SCPF*PPF
4817 PTF = SCPF*PTF
4818 IF (IJP.EQ.7) THEN
4819 AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4820 PP(3) = PPCM
4821 PP(4) = SQRT(AMP2+PP(3)**2)
4822 ELSE
4823 EPF = SQRT(PPF**2+PMASS(1)**2)
4824 CALL DT_LTNUC(PPF,EPF,PP(3),PP(4),2)
4825 ENDIF
4826 ETF = SQRT(PTF**2+PMASS(2)**2)
4827 CALL DT_LTNUC(PTF,ETF,PT(3),PT(4),3)
4828 ECMINI = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
4829 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
4830 IF (LSTART) THEN
4831 WRITE(LOUT,1001) IP,IPZ,SCPF,PPF,PP
4832 1001 FORMAT(
4833 & ' DT_PHOINI: PHOJET initialized for projectile A,Z = ',
4834 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4835 IF (NCOMPO.GT.0) THEN
4836 WRITE(LOUT,1002) SCPF,PTF,PT
4837 ELSE
4838 WRITE(LOUT,1003) IT,ITZ,SCPF,PTF,PT
4839 ENDIF
4840 1002 FORMAT(
4841 & ' DT_PHOINI: PHOJET initialized for target emulsion ',
4842 & /,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4843 1003 FORMAT(
4844 & ' DT_PHOINI: PHOJET initialized for target A,Z = ',
4845 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4846 WRITE(LOUT,1004) ECMINI
4847 1004 FORMAT(' E_cm = ',E10.3)
4848 IF (IJP.EQ.8) WRITE(LOUT,1005)
4849 1005 FORMAT(
4850 & ' DT_PHOINI: warning! proton parameters used for neutron',
4851 & ' projectile')
4852 LSTART = .FALSE.
4853 ENDIF
4854* switch off new diffractive cross sections at low energies for nuclei
4855* (temporary solution)
4856 IF ((ISWMDL(30).NE.0).AND.((IP.GT.1).OR.(IT.GT.1))) THEN
4857 WRITE(LOUT,'(1X,A)')
4858 & ' DT_PHOINI: model-switch 30 for nuclei re-set !'
4859 CALL PHO_SETMDL(30,0,1)
4860 ENDIF
4861*
4862C IF (IJP.EQ.7) THEN
4863C AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4864C PP(3) = PPCM
4865C PP(4) = SQRT(AMP2+PP(3)**2)
4866C ELSE
4867C PFERMX = ZERO
4868C IF (IP.GT.1) PFERMX = 0.5D0
4869C EFERMX = SQRT(PFERMX**2+PMASS(1)**2)
4870C CALL DT_LTNUC(PFERMX,EFERMX,PP(3),PP(4),2)
4871C ENDIF
4872C PFERMX = ZERO
4873C IF ((IT.GT.1).OR.(NCOMPO.GT.0)) PFERMX = -0.5D0
4874C EFERMX = SQRT(PFERMX**2+PMASS(2)**2)
4875C CALL DT_LTNUC(PFERMX,EFERMX,PT(3),PT(4),3)
4876**sr 26.10.96
4877 ISAV = IPAMDL(13)
4878 IF ((ISHAD(2).EQ.1).AND.
4879 & ((IJPROJ.EQ. 7).OR.(IJPROJ.EQ.3).OR.(IJPROJ.EQ.4).OR.
4880 & (IJPROJ.EQ.10).OR.(IJPROJ.EQ.11))) IPAMDL(13) = 1
4881**
4882 CALL PHO_EVENT(-1,PP,PT,SIGMAX,IREJ1)
4883**sr 26.10.96
4884 IPAMDL(13) = ISAV
4885**
4886*
4887* patch for cascade calculations:
4888* define parton distribution functions for other hadrons, i.e. other
4889* then defined already in phojet
4890 IF (IOGLB.EQ.100) THEN
4891 WRITE(LOUT,1006)
4892 1006 FORMAT(/,1X,'PHOINI: additional parton distribution functions',
4893 & ' assiged (ID,IPAR,ISET)',/)
4894 NPDF = 0
4895 DO 3 I=1,30
4896 IF (IPARPD(I).NE.0) THEN
4897 NPDF = NPDF+1
4898 IF (NPDF.GT.MAXPDF) STOP ' PHOINI: npdf > maxpdf !'
4899 IF ((IPARPD(I).GT.0).AND.(ISETPD(I).GT.0)) THEN
4900 IDPDG = IDT_IPDGHA(I)
4901 IPAR = IPARPD(I)
4902 ISET = ISETPD(I)
4903 WRITE(LOUT,'(13X,A8,3I6)') ANAME(I),IDPDG,IPAR,ISET
4904 CALL PHO_SETPDF(IDPDG,IDUM,IPAR,ISET,0,0,-1)
4905 ENDIF
4906 ENDIF
4907 3 CONTINUE
4908 ENDIF
4909
4910C CALL PHO_PHIST(-1,SIGMAX)
4911 IF (IREJ1.NE.0) THEN
4912 WRITE(LOUT,1000)
4913 1000 FORMAT(1X,'PHOINI: PHOJET event-initialization failed!')
4914 STOP
4915 ENDIF
4916
4917 RETURN
4918 END
4919
4920*$ CREATE DT_EVENTD.FOR
4921*COPY DT_EVENTD
4922*
4923*===eventd=============================================================*
4924*
4925 SUBROUTINE DT_EVENTD(IREJ)
4926
4927************************************************************************
4928* Quasi-elastic neutrino nucleus scattering. *
4929* This version dated 29.04.00 is written by S. Roesler. *
4930************************************************************************
4931
4932 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4933 SAVE
4934 PARAMETER ( LINP = 10 ,
4935 & LOUT = 6 ,
4936 & LDAT = 9 )
4937 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY5=1.0D-5)
4938 PARAMETER (SQTINF=1.0D+15)
4939
4940 LOGICAL LFIRST
4941
4942* event history
4943 PARAMETER (NMXHKK=200000)
4944 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4945 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4946 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4947* extended event history
4948 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4949 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4950 & IHIST(2,NMXHKK)
4951* flags for input different options
4952 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4953 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4954 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4955 PARAMETER (MAXLND=4000)
4956 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
4957* properties of interacting particles
4958 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4959* Lorentz-parameters of the current interaction
4960 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4961 & UMO,PPCM,EPROJ,PPROJ
4962* nuclear potential
4963 LOGICAL LFERMI
4964 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4965 & EBINDP(2),EBINDN(2),EPOT(2,210),
4966 & ETACOU(2),ICOUL,LFERMI
4967* steering flags for qel neutrino scattering modules
4968 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
4969 COMMON /QNPOL/ POLARX(4),PMODUL
4970 INTEGER PYK
4971
4972 DATA LFIRST /.TRUE./
4973
4974 IREJ = 0
4975
4976 IF (LFIRST) THEN
4977 LFIRST = .FALSE.
4978 CALL DT_MASS_INI
4979 ENDIF
4980
4981* JETSET parameter
4982 CALL DT_INITJS(0)
4983
4984* interacting target nucleon
4985 LTYP = NEUTYP
4986 IF (NEUDEC.LE.9) THEN
4987 IF ((LTYP.EQ.1).OR.(LTYP.EQ.3).OR.(LTYP.EQ.5)) THEN
4988 NUCTYP = 2112
4989 NUCTOP = 2
4990 ELSE
4991 NUCTYP = 2212
4992 NUCTOP = 1
4993 ENDIF
4994 ELSE
4995 RTYP = DT_RNDM(RTYP)
4996 ZFRAC = DBLE(ITZ)/DBLE(IT)
4997 IF (RTYP.LE.ZFRAC) THEN
4998 NUCTYP = 2212
4999 NUCTOP = 1
5000 ELSE
5001 NUCTYP = 2112
5002 NUCTOP = 2
5003 ENDIF
5004 ENDIF
5005
5006* select first nucleon in list with matching id and reset all other
5007* nucleons which have been marked as "wounded" by ININUC
5008 IFOUND = 0
5009 DO 1 I=1,NHKK
5010 IF ((IDHKK(I).EQ.NUCTYP).AND.(IFOUND.EQ.0)) THEN
5011 ISTHKK(I) = 12
5012 IFOUND = 1
5013 IDX = I
5014 ELSE
5015 IF (ISTHKK(I).EQ.12) ISTHKK(I) = 14
5016 ENDIF
5017 1 CONTINUE
5018 IF (IFOUND.EQ.0)
5019 & STOP ' EVENTD: interacting target nucleon not found! '
5020
5021* correct position of proj. lepton: assume position of target nucleon
5022 DO 3 I=1,4
5023 VHKK(I,1) = VHKK(I,IDX)
5024 WHKK(I,1) = WHKK(I,IDX)
5025 3 CONTINUE
5026
5027* load initial momenta for conservation check
5028 IF (LEMCCK) THEN
5029 CALL DT_EVTEMC(ZERO,ZERO,PPROJ,EPROJ,1,IDUM,IDUM)
5030 CALL DT_EVTEMC(PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),PHKK(4,IDX),
5031 & 2,IDUM,IDUM)
5032 ENDIF
5033
5034* quasi-elastic scattering
5035 IF (NEUDEC.LT.9) THEN
5036 CALL DT_QEL_POL(EPROJ,LTYP,PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),
5037 & PHKK(4,IDX),PHKK(5,IDX))
5038* CC event on p or n
5039 ELSEIF (NEUDEC.EQ.10) THEN
5040 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,1,PHKK(1,IDX),PHKK(2,IDX),
5041 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5042* NC event on p or n
5043 ELSEIF (NEUDEC.EQ.11) THEN
5044 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,2,PHKK(1,IDX),PHKK(2,IDX),
5045 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5046 ENDIF
5047
5048* get final state particles from Lund-common and write them into HKKEVT
5049 NPOINT(1) = NHKK+1
5050 NPOINT(4) = NHKK+1
5051 NLINES = PYK(0,1)
5052 NHKK0 = NHKK+1
5053 DO 4 I=4,NLINES
5054 IF (K(I,1).EQ.1) THEN
5055 ID = K(I,2)
5056 PX = P(I,1)
5057 PY = P(I,2)
5058 PZ = P(I,3)
5059 PE = P(I,4)
5060 CALL DT_EVTPUT(1,ID,1,IDX,PX,PY,PZ,PE,0,0,0)
5061 IDBJ = IDT_ICIHAD(ID)
5062 EKIN = PHKK(4,NHKK)-PHKK(5,NHKK)
5063 IF ((IDBJ.EQ.1).OR.(IDBJ.EQ.8)) THEN
5064 IF (EKIN.LE.EPOT(2,IDBJ)) ISTHKK(NHKK) = 16
5065 ENDIF
5066 VHKK(1,NHKK) = VHKK(1,IDX)
5067 VHKK(2,NHKK) = VHKK(2,IDX)
5068 VHKK(3,NHKK) = VHKK(3,IDX)
5069 VHKK(4,NHKK) = VHKK(4,IDX)
5070C IF (I.EQ.4) THEN
5071C WHKK(1,NHKK) = POLARX(1)
5072C WHKK(2,NHKK) = POLARX(2)
5073C WHKK(3,NHKK) = POLARX(3)
5074C WHKK(4,NHKK) = POLARX(4)
5075C ELSE
5076 WHKK(1,NHKK) = WHKK(1,IDX)
5077 WHKK(2,NHKK) = WHKK(2,IDX)
5078 WHKK(3,NHKK) = WHKK(3,IDX)
5079 WHKK(4,NHKK) = WHKK(4,IDX)
5080C ENDIF
5081 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
5082 ENDIF
5083 4 CONTINUE
5084
5085 IF (LEMCCK) THEN
5086 CHKLEV = TINY5
5087 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,778,IREJ1)
5088 IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
5089 ENDIF
5090
5091* transform momenta into cms (as required for inc etc.)
5092 DO 5 I=NHKK0,NHKK
5093 IF (ISTHKK(I).EQ.1) THEN
5094 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,3)
5095 PHKK(3,I) = PZ
5096 PHKK(4,I) = PE
5097 ENDIF
5098 5 CONTINUE
5099
5100 RETURN
5101 END
5102
5103*$ CREATE DT_KKEVNT.FOR
5104*COPY DT_KKEVNT
5105*
5106*===kkevnt=============================================================*
5107*
5108 SUBROUTINE DT_KKEVNT(KKMAT,IREJ)
5109
5110************************************************************************
5111* Treatment of complete nucleus-nucleus or hadron-nucleus scattering *
5112* without nuclear effects (one event). *
5113* This subroutine is an update of the previous version (KKEVT) written *
5114* by J. Ranft/ H.-J. Moehring. *
5115* This version dated 20.04.95 is written by S. Roesler *
5116************************************************************************
5117
5118 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5119 SAVE
5120 PARAMETER ( LINP = 10 ,
5121 & LOUT = 6 ,
5122 & LDAT = 9 )
5123 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10)
5124
5125 PARAMETER ( MAXNCL = 260,
5126 & MAXVQU = MAXNCL,
5127 & MAXSQU = 20*MAXVQU,
5128 & MAXINT = MAXVQU+MAXSQU)
5129* event history
5130 PARAMETER (NMXHKK=200000)
5131 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5132 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5133 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5134* extended event history
5135 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5136 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5137 & IHIST(2,NMXHKK)
5138* flags for input different options
5139 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5140 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5141 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5142* rejection counter
5143 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
5144 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
5145 & IREXCI(3),IRDIFF(2),IRINC
5146* statistics
5147 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5148 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5149 & ICEVTG(8,0:30)
5150* properties of interacting particles
5151 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
5152* Lorentz-parameters of the current interaction
5153 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5154 & UMO,PPCM,EPROJ,PPROJ
5155* flags for diffractive interactions (DTUNUC 1.x)
5156 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5157* interface HADRIN-DPM
5158 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5159* nucleon-nucleon event-generator
5160 CHARACTER*8 CMODEL
5161 LOGICAL LPHOIN
5162 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
5163* coordinates of nucleons
5164 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
5165* interface between Glauber formalism and DPM
5166 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
5167 & INTER1(MAXINT),INTER2(MAXINT)
5168* Glauber formalism: collision properties
5169 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5170 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5171* central particle production, impact parameter biasing
5172 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5173**temporary
5174* statistics: Glauber-formalism
5175 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5176**
5177
5178 DATA NEVOLD,IPOLD,ITOLD,JJPOLD,EPROLD /4*0,0.0D0/
5179
5180 IREJ = 0
5181 ICREQU = ICREQU+1
5182 NC = 0
5183
5184 1 CONTINUE
5185 ICSAMP = ICSAMP+1
5186 NC = NC+1
5187 IF (MOD(NC,10).EQ.0) THEN
5188 WRITE(LOUT,1000) NEVHKK
5189 1000 FORMAT(1X,'KKEVNT: event ',I8,' rejected!')
5190 GOTO 9999
5191 ENDIF
5192
5193* initialize DTEVT1/DTEVT2
5194 CALL DT_EVTINI
5195
5196* We need the following only in order to sample nucleon coordinates.
5197* However we don't have parameters (cross sections, slope etc.)
5198* for neutrinos available. Therefore switch projectile to proton
5199* in this case.
5200 IF (MCGENE.EQ.4) THEN
5201 JJPROJ = 1
5202 ELSE
5203 JJPROJ = IJPROJ
5204 ENDIF
5205
5206 10 CONTINUE
5207 IF ( (NEVHKK.NE.NEVOLD).OR.(ICENTR.GT.0).OR.
5208* make sure that Glauber-formalism is called each time the interaction
5209* configuration changed
5210 & (IP.NE.IPOLD).OR.(IT.NE.ITOLD).OR.(JJPROJ.NE.JJPOLD).OR.
5211 & (ABS(EPROJ-EPROLD).GT.TINY10) ) THEN
5212* sample number of nucleon-nucleon coll. according to Glauber-form.
5213 CALL DT_GLAUBE(IP,IT,JJPROJ,BIMPAC,NN,NP,NT,JSSH,JTSH,KKMAT)
5214 NWTSAM = NN
5215 NWASAM = NP
5216 NWBSAM = NT
5217 NEVOLD = NEVHKK
5218 IPOLD = IP
5219 ITOLD = IT
5220 JJPOLD = JJPROJ
5221 EPROLD = EPROJ
5222 ENDIF
5223
5224* force diffractive particle production in h-K interactions
5225 IF (((ABS(ISINGD).GT.1).OR.(ABS(IDOUBD).GT.1)).AND.
5226 & (IP.EQ.1).AND.(NN.NE.1)) THEN
5227 NEVOLD = 0
5228 GOTO 10
5229 ENDIF
5230
5231* check number of involved proj. nucl. (NP) if central prod.is requested
5232 IF (ICENTR.GT.0) THEN
5233 CALL DT_CHKCEN(IP,IT,NP,NT,IBACK)
5234 IF (IBACK.GT.0) GOTO 10
5235 ENDIF
5236
5237* get initial nucleon-configuration in projectile and target
5238* rest-system (including Fermi-momenta if requested)
5239 CALL DT_ININUC(IJPROJ,IP,IPZ,PKOO,JSSH,1)
5240 MODE = 2
5241 IF (EPROJ.LE.EHADTH) MODE = 3
5242 CALL DT_ININUC(IJTARG,IT,ITZ,TKOO,JTSH,MODE)
5243
5244 IF ((MCGENE.NE.3).AND.(MCGENE.NE.4)) THEN
5245
5246* activate HADRIN at low energies (implemented for h-N scattering only)
5247 IF (EPROJ.LE.EHADHI) THEN
5248 IF (EHADTH.LT.ZERO) THEN
5249* smooth transition btwn. DPM and HADRIN
5250 FRAC = (EPROJ-EHADLO)/(EHADHI-EHADLO)
5251 RR = DT_RNDM(FRAC)
5252 IF (RR.GT.FRAC) THEN
5253 IF (IP.EQ.1) THEN
5254 CALL DT_HADCOL(IJPROJ,PPROJ,IDXTA,IREJ1)
5255 IF (IREJ1.GT.0) GOTO 1
5256 RETURN
5257 ELSE
5258 WRITE(LOUT,1001) IP,IT,EPROJ,EHADTH
5259 ENDIF
5260 ENDIF
5261 ELSE
5262* fixed threshold for onset of production via HADRIN
5263 IF (EPROJ.LE.EHADTH) 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 ENDIF
5273 ENDIF
5274 1001 FORMAT(1X,'KKEVNT: warning! interaction of proj. (m=',
5275 & I3,') with target (m=',I3,')',/,11X,
5276 & 'at E_lab=',F5.1,'GeV (threshold-energy: ',F3.1,
5277 & 'GeV) cannot be handled')
5278
5279* sampling of momentum-x fractions & flavors of chain ends
5280 CALL DT_SPLPTN(NN)
5281
5282* Lorentz-transformation of wounded nucleons into nucl.-nucl. cms
5283 CALL DT_NUC2CM
5284
5285* collect momenta of chain ends and put them into DTEVT1
5286 CALL DT_GETPTN(IP,NN,NCSY,IREJ1)
5287 IF (IREJ1.NE.0) GOTO 1
5288
5289 ENDIF
5290
5291* handle chains including fragmentation (two-chain approximation)
5292 IF (MCGENE.EQ.1) THEN
5293* two-chain approximation
5294 CALL DT_EVENTA(IJPROJ,IP,IT,NCSY,IREJ1)
5295 IF (IREJ1.NE.0) THEN
5296 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKEVNT'
5297 GOTO 1
5298 ENDIF
5299 ELSEIF (MCGENE.EQ.2) THEN
5300* multiple-Po exchange including minijets
5301 CALL DT_EVENTB(NCSY,IREJ1)
5302 IF (IREJ1.NE.0) THEN
5303 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKEVNT'
5304 GOTO 1
5305 ENDIF
5306 ELSEIF (MCGENE.EQ.3) THEN
5307 STOP ' This version does not contain LEPTO !'
5308 ELSEIF (MCGENE.EQ.4) THEN
5309* quasi-elastic neutrino scattering
5310 CALL DT_EVENTD(IREJ1)
5311 IF (IREJ1.NE.0) THEN
5312 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 4 in KKEVNT'
5313 GOTO 1
5314 ENDIF
5315 ELSE
5316 WRITE(LOUT,1002) MCGENE
5317 1002 FORMAT(1X,'KKEVNT: warning! event-generator',I4,
5318 & ' not available - program stopped')
5319 STOP
5320 ENDIF
5321
5322 RETURN
5323
5324 9999 CONTINUE
5325 IREJ = 1
5326 RETURN
5327 END
5328
5329*$ CREATE DT_CHKCEN.FOR
5330*COPY DT_CHKCEN
5331*
5332*===chkcen=============================================================*
5333*
5334 SUBROUTINE DT_CHKCEN(IP,IT,NP,NT,IBACK)
5335
5336************************************************************************
5337* Check of number of involved projectile nucleons if central production*
5338* is requested. *
5339* Adopted from a part of the old KKEVT routine which was written by *
5340* J. Ranft/H.-J.Moehring. *
5341* This version dated 13.01.95 is written by S. Roesler *
5342************************************************************************
5343
5344 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5345 SAVE
5346 PARAMETER ( LINP = 10 ,
5347 & LOUT = 6 ,
5348 & LDAT = 9 )
5349
5350* statistics
5351 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5352 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5353 & ICEVTG(8,0:30)
5354* central particle production, impact parameter biasing
5355 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5356
5357 IBACK = 0
5358
5359* old version
5360 IF (ICENTR.EQ.2) THEN
5361 IF (IP.LT.IT) THEN
5362 IF (IP.LE.8) THEN
5363 IF (NP.LT.IP-1) IBACK = 1
5364 ELSEIF (IP.LE.16) THEN
5365 IF (NP.LT.IP-2) IBACK = 1
5366 ELSEIF (IP.LE.32) THEN
5367 IF (NP.LT.IP-3) IBACK = 1
5368 ELSEIF (IP.GE.33) THEN
5369 IF (NP.LT.IP-5) IBACK = 1
5370 ENDIF
5371 ELSEIF (IP.EQ.IT) THEN
5372 IF (IP.EQ.32) THEN
5373 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5374 ELSE
5375 IF (NP.LT.IP-IP/8) IBACK = 1
5376 ENDIF
5377 ELSEIF (ABS(IP-IT).LT.3) THEN
5378 IF (NP.LT.IP-IP/8) IBACK = 1
5379 ENDIF
5380 ELSE
5381* new version (DPMJET, 5.6.99)
5382 IF (IP.LT.IT) THEN
5383 IF (IP.LE.8) THEN
5384 IF (NP.LT.IP-1) IBACK = 1
5385 ELSEIF (IP.LE.16) THEN
5386 IF (NP.LT.IP-2) IBACK = 1
5387 ELSEIF (IP.LT.32) THEN
5388 IF (NP.LT.IP-3) IBACK = 1
5389 ELSEIF (IP.GE.32) THEN
5390 IF (IT.LE.150) THEN
5391* Example: S-Ag
5392 IF (NP.LT.IP-1) IBACK = 1
5393 ELSE
5394* Example: S-Au
5395 IF (NP.LT.IP) IBACK = 1
5396 ENDIF
5397 ENDIF
5398 ELSEIF (IP.EQ.IT) THEN
5399* Example: S-S
5400 IF (IP.EQ.32) THEN
5401 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5402* Example: Pb-Pb
5403 ELSE
5404 IF (NP.LT.IP-IP/4) IBACK = 1
5405 ENDIF
5406 ELSEIF (ABS(IP-IT).LT.3) THEN
5407 IF (NP.LT.IP-IP/8) IBACK = 1
5408 ENDIF
5409 ENDIF
5410
5411 ICCPRO = ICCPRO+1
5412
5413 RETURN
5414 END
5415
5416*$ CREATE DT_ININUC.FOR
5417*COPY DT_ININUC
5418*
5419*===ininuc=============================================================*
5420*
5421 SUBROUTINE DT_ININUC(ID,NMASS,NCH,COORD,JS,IMODE)
5422
5423************************************************************************
5424* Samples initial configuration of nucleons in nucleus with mass NMASS *
5425* including Fermi-momenta (if reqested). *
5426* ID BAMJET-code for hadrons (instead of nuclei) *
5427* NMASS mass number of nucleus (number of nucleons) *
5428* NCH charge of nucleus *
5429* COORD(3,NMASS) coordinates of nucleons inside nucleus in fm *
5430* JS(NMASS) > 0 nucleon undergoes nucleon-nucleon interact. *
5431* IMODE = 1 projectile nucleus *
5432* = 2 target nucleus *
5433* = 3 target nucleus (E_lab<E_thr for HADRIN) *
5434* Adopted from a part of the old KKEVT routine which was written by *
5435* J. Ranft/H.-J.Moehring. *
5436* This version dated 13.01.95 is written by S. Roesler *
5437************************************************************************
5438
5439 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5440 SAVE
5441 PARAMETER ( LINP = 10 ,
5442 & LOUT = 6 ,
5443 & LDAT = 9 )
5444 PARAMETER (FM2MM=1.0D-12)
5445
5446 PARAMETER ( MAXNCL = 260,
5447 & MAXVQU = MAXNCL,
5448 & MAXSQU = 20*MAXVQU,
5449 & MAXINT = MAXVQU+MAXSQU)
5450* event history
5451 PARAMETER (NMXHKK=200000)
5452 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5453 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5454 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5455* extended event history
5456 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5457 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5458 & IHIST(2,NMXHKK)
5459* flags for input different options
5460 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5461 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5462 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5463* auxiliary common for chain system storage (DTUNUC 1.x)
5464 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5465* nuclear potential
5466 LOGICAL LFERMI
5467 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5468 & EBINDP(2),EBINDN(2),EPOT(2,210),
5469 & ETACOU(2),ICOUL,LFERMI
5470* properties of photon/lepton projectiles
5471 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5472* particle properties (BAMJET index convention)
5473 CHARACTER*8 ANAME
5474 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5475 & IICH(210),IIBAR(210),K1(210),K2(210)
5476* Glauber formalism: collision properties
5477 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5478 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5479* flavors of partons (DTUNUC 1.x)
5480 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5481 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5482 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5483 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5484 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5485 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5486 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5487* interface HADRIN-DPM
5488 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5489
5490 DIMENSION PF(4),PFTOT(4),COORD(3,MAXNCL),JS(MAXNCL)
5491
5492* number of neutrons
5493 NNEU = NMASS-NCH
5494* initializations
5495 NP = 0
5496 NN = 0
5497 DO 1 K=1,4
5498 PFTOT(K) = 0.0D0
5499 1 CONTINUE
5500 MODE = IMODE
5501 IF (IMODE.GT.2) MODE = 2
5502**sr 29.5. new NPOINT(1)-definition
5503C IF (IMODE.GE.2) NPOINT(1) = NHKK+1
5504**
5505 NHADRI = 0
5506 NC = NHKK
5507
5508* get initial configuration
5509 DO 2 I=1,NMASS
5510 NHKK = NHKK+1
5511 IF (JS(I).GT.0) THEN
5512 ISTHKK(NHKK) = 10+MODE
5513 IF (IMODE.EQ.3) THEN
5514* additional treatment if HADRIN-generator is requested
5515 NHADRI = NHADRI+1
5516 IF (NHADRI.EQ.1) IDXTA = NHKK
5517 IF (NHADRI.GT.1) ISTHKK(NHKK) = 14
5518 ENDIF
5519 ELSE
5520 ISTHKK(NHKK) = 12+MODE
5521 ENDIF
5522 IF (NMASS.GE.2) THEN
5523* treatment for nuclei
5524 FRAC = 1.0D0-DBLE(NCH)/DBLE(NMASS)
5525 RR = DT_RNDM(FRAC)
5526 IF ((RR.LT.FRAC).AND.(NN.LT.NNEU)) THEN
5527 IDX = 8
5528 NN = NN+1
5529 ELSEIF ((RR.GE.FRAC).AND.(NP.LT.NCH)) THEN
5530 IDX = 1
5531 NP = NP+1
5532 ELSEIF (NN.LT.NNEU) THEN
5533 IDX = 8
5534 NN = NN+1
5535 ELSEIF (NP.LT.NCH) THEN
5536 IDX = 1
5537 NP = NP+1
5538 ENDIF
5539 IDHKK(NHKK) = IDT_IPDGHA(IDX)
5540 IDBAM(NHKK) = IDX
5541 IF (MODE.EQ.1) THEN
5542 IPOSP(I) = NHKK
5543 KKPROJ(I) = IDX
5544 ELSE
5545 IPOST(I) = NHKK
5546 KKTARG(I) = IDX
5547 ENDIF
5548 IF (IDX.EQ.1) THEN
5549 PFER = PFERMP(MODE)
5550 PBIN = SQRT(2.0D0*EBINDP(MODE)*AAM(1))
5551 ELSE
5552 PFER = PFERMN(MODE)
5553 PBIN = SQRT(2.0D0*EBINDN(MODE)*AAM(8))
5554 ENDIF
5555 CALL DT_FER4M(PFER,PBIN,PF(1),PF(2),PF(3),PF(4),IDX)
5556 DO 3 K=1,4
5557 PFTOT(K) = PFTOT(K)+PF(K)
5558 PHKK(K,NHKK) = PF(K)
5559 3 CONTINUE
5560 PHKK(5,NHKK) = AAM(IDX)
5561 ELSE
5562* treatment for hadrons
5563 IDHKK(NHKK) = IDT_IPDGHA(ID)
5564 IDBAM(NHKK) = ID
5565 PHKK(4,NHKK) = AAM(ID)
5566 PHKK(5,NHKK) = AAM(ID)
5567C* VDM assumption
5568C IF (IDHKK(NHKK).EQ.22) THEN
5569C PHKK(4,NHKK) = AAM(33)
5570C PHKK(5,NHKK) = AAM(33)
5571C ENDIF
5572 IF (MODE.EQ.1) THEN
5573 IPOSP(I) = NHKK
5574 KKPROJ(I) = ID
5575 PHKK(5,NHKK) = PHKK(5,NHKK)-SQRT(VIRT)
5576 ELSE
5577 IPOST(I) = NHKK
5578 KKTARG(I) = ID
5579 ENDIF
5580 ENDIF
5581 DO 4 K=1,3
5582 VHKK(K,NHKK) = COORD(K,I)*FM2MM
5583 WHKK(K,NHKK) = COORD(K,I)*FM2MM
5584 4 CONTINUE
5585 IF (MODE.EQ.2) VHKK(1,NHKK) = VHKK(1,NHKK)+BIMPAC*FM2MM
5586 IF (MODE.EQ.2) WHKK(1,NHKK) = WHKK(1,NHKK)+BIMPAC*FM2MM
5587 VHKK(4,NHKK) = 0.0D0
5588 WHKK(4,NHKK) = 0.0D0
5589 2 CONTINUE
5590
5591* balance Fermi-momenta
5592 IF (NMASS.GE.2) THEN
5593 DO 5 I=1,NMASS
5594 NC = NC+1
5595 DO 6 K=1,3
5596 PHKK(K,NC) = PHKK(K,NC)-PFTOT(K)/DBLE(NMASS)
5597 6 CONTINUE
5598 PHKK(4,NC) = SQRT(PHKK(5,NC)**2+PHKK(1,NC)**2+
5599 & PHKK(2,NC)**2+PHKK(3,NC)**2)
5600 5 CONTINUE
5601 ENDIF
5602
5603 RETURN
5604 END
5605
5606*$ CREATE DT_FER4M.FOR
5607*COPY DT_FER4M
5608*
5609*===fer4m==============================================================*
5610*
5611 SUBROUTINE DT_FER4M(PFERM,PBIND,PXT,PYT,PZT,ET,KT)
5612
5613************************************************************************
5614* Sampling of nucleon Fermi-momenta from distributions at T=0. *
5615* processed by S. Roesler, 17.10.95 *
5616************************************************************************
5617
5618 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5619 SAVE
5620 PARAMETER ( LINP = 10 ,
5621 & LOUT = 6 ,
5622 & LDAT = 9 )
5623
5624 LOGICAL LSTART
5625
5626* particle properties (BAMJET index convention)
5627 CHARACTER*8 ANAME
5628 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5629 & IICH(210),IIBAR(210),K1(210),K2(210)
5630* nuclear potential
5631 LOGICAL LFERMI
5632 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5633 & EBINDP(2),EBINDN(2),EPOT(2,210),
5634 & ETACOU(2),ICOUL,LFERMI
5635
5636 DATA LSTART /.TRUE./
5637
5638 ILOOP = 0
5639 IF (LFERMI) THEN
5640 IF (LSTART) THEN
5641 WRITE(LOUT,1000)
5642 1000 FORMAT(/,1X,'FER4M: sampling of Fermi-momenta activated')
5643 LSTART = .FALSE.
5644 ENDIF
5645 1 CONTINUE
5646 CALL DT_DFERMI(PABS)
5647 PABS = PFERM*PABS
5648C IF (PABS.GE.PBIND) THEN
5649C ILOOP = ILOOP+1
5650C IF (MOD(ILOOP,500).EQ.0) THEN
5651C WRITE(LOUT,1001) PABS,PBIND,ILOOP
5652C1001 FORMAT(1X,'FER4M: Fermi-mom. corr. for binding',
5653C & ' energy ',2E12.3,I6)
5654C ENDIF
5655C GOTO 1
5656C ENDIF
5657 CALL DT_DPOLI(POLC,POLS)
5658 CALL DT_DSFECF(SFE,CFE)
5659 CXTA = POLS*CFE
5660 CYTA = POLS*SFE
5661 CZTA = POLC
5662 ET = SQRT(PABS*PABS+AAM(KT)**2)
5663 PXT = CXTA*PABS
5664 PYT = CYTA*PABS
5665 PZT = CZTA*PABS
5666 ELSE
5667 ET = AAM(KT)
5668 PXT = 0.0D0
5669 PYT = 0.0D0
5670 PZT = 0.0D0
5671 ENDIF
5672
5673 RETURN
5674 END
5675
5676*$ CREATE DT_NUC2CM.FOR
5677*COPY DT_NUC2CM
5678*
5679*===nuc2cm=============================================================*
5680*
5681 SUBROUTINE DT_NUC2CM
5682
5683************************************************************************
5684* Lorentz-transformation of all wounded nucleons from Lab. to nucl.- *
5685* nucl. cms. (This subroutine replaces NUCMOM.) *
5686* This version dated 15.01.95 is written by S. Roesler *
5687************************************************************************
5688
5689 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5690 SAVE
5691 PARAMETER ( LINP = 10 ,
5692 & LOUT = 6 ,
5693 & LDAT = 9 )
5694 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
5695
5696* event history
5697 PARAMETER (NMXHKK=200000)
5698 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5699 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5700 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5701* extended event history
5702 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5703 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5704 & IHIST(2,NMXHKK)
5705* statistics
5706 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5707 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5708 & ICEVTG(8,0:30)
5709* properties of photon/lepton projectiles
5710 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5711* particle properties (BAMJET index convention)
5712 CHARACTER*8 ANAME
5713 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5714 & IICH(210),IIBAR(210),K1(210),K2(210)
5715* Glauber formalism: collision properties
5716 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5717 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5718**temporary
5719* statistics: Glauber-formalism
5720 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5721**
5722
5723 ICWP = 0
5724 ICWT = 0
5725 NWTACC = 0
5726 NWAACC = 0
5727 NWBACC = 0
5728
5729 NPOINT(1) = NHKK+1
5730 NEND = NHKK
5731 DO 1 I=1,NEND
5732 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.12)) THEN
5733 IF (ISTHKK(I).EQ.11) NWAACC = NWAACC+1
5734 IF (ISTHKK(I).EQ.12) NWBACC = NWBACC+1
5735 MODE = ISTHKK(I)-9
5736C IF (IDHKK(I).EQ.22) THEN
5737C* VDM assumption
5738C PEIN = AAM(33)
5739C IDB = 33
5740C ELSE
5741C PEIN = PHKK(4,I)
5742C IDB = IDBAM(I)
5743C ENDIF
5744C CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PEIN,
5745C & PX,PY,PZ,PE,IDB,MODE)
5746 IF (PHKK(5,I).GT.ZERO) THEN
5747 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
5748 & PX,PY,PZ,PE,IDBAM(I),MODE)
5749 ELSE
5750 PX = PGAMM(1)
5751 PY = PGAMM(2)
5752 PZ = PGAMM(3)
5753 PE = PGAMM(4)
5754 ENDIF
5755 IST = ISTHKK(I)-2
5756 ID = IDHKK(I)
5757C* VDM assumption
5758C IF (ID.EQ.22) ID = 113
5759 CALL DT_EVTPUT(IST,ID,I,0,PX,PY,PZ,PE,0,0,0)
5760 IF (ISTHKK(I).EQ.11) ICWP = ICWP+1
5761 IF (ISTHKK(I).EQ.12) ICWT = ICWT+1
5762 ENDIF
5763 1 CONTINUE
5764
5765 NWTACC = MAX(NWAACC,NWBACC)
5766 ICDPR = ICDPR+ICWP
5767 ICDTA = ICDTA+ICWT
5768**temporary
5769 IF ((ICWP.EQ.0).OR.(ICWT.EQ.0)) THEN
5770 CALL DT_EVTOUT(4)
5771 STOP
5772 ENDIF
5773
5774 RETURN
5775 END
5776
5777*$ CREATE DT_SPLPTN.FOR
5778*COPY DT_SPLPTN
5779*
5780*===splptn=============================================================*
5781*
5782 SUBROUTINE DT_SPLPTN(NN)
5783
5784************************************************************************
5785* SamPLing of ParToN momenta and flavors. *
5786* This version dated 15.01.95 is written by S. Roesler *
5787************************************************************************
5788
5789 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5790 SAVE
5791 PARAMETER ( LINP = 10 ,
5792 & LOUT = 6 ,
5793 & LDAT = 9 )
5794
5795* Lorentz-parameters of the current interaction
5796 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5797 & UMO,PPCM,EPROJ,PPROJ
5798
5799* sample flavors of sea-quarks
5800 CALL DT_SPLFLA(NN,1)
5801
5802* sample x-values of partons at chain ends
5803 ECM = UMO
5804 CALL DT_XKSAMP(NN,ECM)
5805
5806* samle flavors
5807 CALL DT_SPLFLA(NN,2)
5808
5809 RETURN
5810 END
5811
5812*$ CREATE DT_SPLFLA.FOR
5813*COPY DT_SPLFLA
5814*
5815*===splfla=============================================================*
5816*
5817 SUBROUTINE DT_SPLFLA(NN,MODE)
5818
5819************************************************************************
5820* SamPLing of FLAvors of partons at chain ends. *
5821* This subroutine replaces FLKSAA/FLKSAM. *
5822* NN number of nucleon-nucleon interactions *
5823* MODE = 1 sea-flavors *
5824* = 2 valence-flavors *
5825* Based on the original version written by J. Ranft/H.-J. Moehring. *
5826* This version dated 16.01.95 is written by S. Roesler *
5827************************************************************************
5828
5829 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5830 SAVE
5831 PARAMETER ( LINP = 10 ,
5832 & LOUT = 6 ,
5833 & LDAT = 9 )
5834
5835 PARAMETER ( MAXNCL = 260,
5836 & MAXVQU = MAXNCL,
5837 & MAXSQU = 20*MAXVQU,
5838 & MAXINT = MAXVQU+MAXSQU)
5839* flavors of partons (DTUNUC 1.x)
5840 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5841 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5842 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5843 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5844 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5845 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5846 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5847* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5848 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5849 & IXPV,IXPS,IXTV,IXTS,
5850 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5851 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5852 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5853 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5854 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5855 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5856 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5857 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5858* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5859 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5860 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5861* particle properties (BAMJET index convention)
5862 CHARACTER*8 ANAME
5863 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5864 & IICH(210),IIBAR(210),K1(210),K2(210)
5865* various options for treatment of partons (DTUNUC 1.x)
5866* (chain recombination, Cronin,..)
5867 LOGICAL LCO2CR,LINTPT
5868 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
5869 & LCO2CR,LINTPT
5870
5871 IF (MODE.EQ.1) THEN
5872* sea-flavors
5873 DO 1 I=1,NN
5874 IPSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5875 IPSAQ(I) = -IPSQ(I)
5876 1 CONTINUE
5877 DO 2 I=1,NN
5878 ITSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5879 ITSAQ(I)= -ITSQ(I)
5880 2 CONTINUE
5881 ELSEIF (MODE.EQ.2) THEN
5882* valence flavors
5883 DO 3 I=1,IXPV
5884 CALL DT_FLAHAD(KKPROJ(IFROVP(I)),IPVQ(I),IPPV1(I),IPPV2(I))
5885 3 CONTINUE
5886 DO 4 I=1,IXTV
5887 CALL DT_FLAHAD(KKTARG(IFROVT(I)),ITVQ(I),ITTV1(I),ITTV2(I))
5888 4 CONTINUE
5889 ENDIF
5890
5891 RETURN
5892 END
5893
5894*$ CREATE DT_GETPTN.FOR
5895*COPY DT_GETPTN
5896*
5897*===getptn=============================================================*
5898*
5899 SUBROUTINE DT_GETPTN(IP,NN,NCSY,IREJ)
5900
5901************************************************************************
5902* This subroutine collects partons at chain ends from temporary *
5903* commons and puts them into DTEVT1. *
5904* This version dated 15.01.95 is written by S. Roesler *
5905************************************************************************
5906
5907 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5908 SAVE
5909 PARAMETER ( LINP = 10 ,
5910 & LOUT = 6 ,
5911 & LDAT = 9 )
5912 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0)
5913
5914 LOGICAL LCHK
5915
5916 PARAMETER ( MAXNCL = 260,
5917 & MAXVQU = MAXNCL,
5918 & MAXSQU = 20*MAXVQU,
5919 & MAXINT = MAXVQU+MAXSQU)
5920* event history
5921 PARAMETER (NMXHKK=200000)
5922 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5923 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5924 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5925* extended event history
5926 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5927 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5928 & IHIST(2,NMXHKK)
5929* flags for input different options
5930 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5931 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5932 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5933* auxiliary common for chain system storage (DTUNUC 1.x)
5934 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5935* statistics
5936 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5937 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5938 & ICEVTG(8,0:30)
5939* flags for diffractive interactions (DTUNUC 1.x)
5940 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5941* x-values of partons (DTUNUC 1.x)
5942 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
5943 & XTVQ(MAXVQU),XTVD(MAXVQU),
5944 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
5945 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
5946* flavors of partons (DTUNUC 1.x)
5947 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5948 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5949 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5950 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5951 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5952 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5953 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5954* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5955 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5956 & IXPV,IXPS,IXTV,IXTS,
5957 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5958 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5959 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5960 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5961 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5962 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5963 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5964 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5965* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5966 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5967 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5968
5969 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PP(4),PT(4)
5970
5971 DATA AMSS,AMVS,AMDS,AMVD,AMVV/0.4D0,2.0D0,2.0D0,2.5D0,2.0D0/
5972
5973 IREJ = 0
5974 NCSY = 0
5975 NPOINT(2) = NHKK+1
5976
5977* sea-sea chains
5978 DO 10 I=1,NSS
5979 IF (ISKPCH(1,I).EQ.99) GOTO 10
5980 ICCHAI(1,1) = ICCHAI(1,1)+2
5981 IDXP = INTSS1(I)
5982 IDXT = INTSS2(I)
5983 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
5984 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
5985 DO 11 K=1,4
5986 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
5987 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
5988 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
5989 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
5990 11 CONTINUE
5991 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
5992 & +(PP1(3)+PT1(3))**2)
5993 ECH = PP1(4)+PT1(4)
5994 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
5995 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
5996 & +(PP2(3)+PT2(3))**2)
5997 ECH = PP2(4)+PT2(4)
5998 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
5999 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6000 AM1 = SQRT(AM1)
6001 AM2 = SQRT(AM2)
6002 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMSS)) THEN
6003C WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6004 5000 FORMAT(1X,'incon. chain mass SS: ',2I5,2E10.3)
6005 ENDIF
6006 ELSE
6007 WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6008 ENDIF
6009 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6010 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6011 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6012 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6013 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6014 & 0,0,1)
6015 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6016 & 0,0,1)
6017 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6018 & 0,0,1)
6019 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6020 & 0,0,1)
6021 NCSY = NCSY+1
6022 10 CONTINUE
6023
6024* disea-sea chains
6025 DO 20 I=1,NDS
6026 IF (ISKPCH(2,I).EQ.99) GOTO 20
6027 ICCHAI(1,2) = ICCHAI(1,2)+2
6028 IDXP = INTDS1(I)
6029 IDXT = INTDS2(I)
6030 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6031 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6032 DO 21 K=1,4
6033 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6034 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6035 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6036 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6037 21 CONTINUE
6038 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6039 & +(PP1(3)+PT1(3))**2)
6040 ECH = PP1(4)+PT1(4)
6041 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6042 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6043 & +(PP2(3)+PT2(3))**2)
6044 ECH = PP2(4)+PT2(4)
6045 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6046 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6047 AM1 = SQRT(AM1)
6048 AM2 = SQRT(AM2)
6049 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6050C WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6051 5001 FORMAT(1X,'incon. chain mass DS: ',2I5,2E10.3)
6052 ENDIF
6053 ELSE
6054 WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6055 ENDIF
6056 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6057 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6058 IFT1 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6059 IFT2 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6060 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6061 & 0,0,2)
6062 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6063 & 0,0,2)
6064 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6065 & 0,0,2)
6066 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6067 & 0,0,2)
6068 NCSY = NCSY+1
6069 20 CONTINUE
6070
6071* sea-disea chains
6072 DO 30 I=1,NSD
6073 IF (ISKPCH(3,I).EQ.99) GOTO 30
6074 ICCHAI(1,3) = ICCHAI(1,3)+2
6075 IDXP = INTSD1(I)
6076 IDXT = INTSD2(I)
6077 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6078 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6079 DO 31 K=1,4
6080 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6081 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6082 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6083 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6084 31 CONTINUE
6085 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6086 & +(PP1(3)+PT1(3))**2)
6087 ECH = PP1(4)+PT1(4)
6088 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6089 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6090 & +(PP2(3)+PT2(3))**2)
6091 ECH = PP2(4)+PT2(4)
6092 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6093 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6094 AM1 = SQRT(AM1)
6095 AM2 = SQRT(AM2)
6096 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6097C WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6098 5002 FORMAT(1X,'incon. chain mass SD: ',2I5,2E10.3)
6099 ENDIF
6100 ELSE
6101 WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6102 ENDIF
6103 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6104 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6105 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6106 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6107 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6108 & 0,0,3)
6109 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6110 & 0,0,3)
6111 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6112 & 0,0,3)
6113 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6114 & 0,0,3)
6115 NCSY = NCSY+1
6116 30 CONTINUE
6117
6118* disea-valence chains
6119 DO 50 I=1,NDV
6120 IF (ISKPCH(5,I).EQ.99) GOTO 50
6121 ICCHAI(1,5) = ICCHAI(1,5)+2
6122 IDXP = INTDV1(I)
6123 IDXT = INTDV2(I)
6124 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6125 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6126 DO 51 K=1,4
6127 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6128 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6129 PT1(K) = XTVQ(IDXT) *PHKK(K,MOT)
6130 PT2(K) = XTVD(IDXT) *PHKK(K,MOT)
6131 51 CONTINUE
6132 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6133 & +(PP1(3)+PT1(3))**2)
6134 ECH = PP1(4)+PT1(4)
6135 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6136 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6137 & +(PP2(3)+PT2(3))**2)
6138 ECH = PP2(4)+PT2(4)
6139 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6140 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6141 AM1 = SQRT(AM1)
6142 AM2 = SQRT(AM2)
6143 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6144C WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6145 5003 FORMAT(1X,'incon. chain mass DV: ',2I5,2E10.3)
6146 ENDIF
6147 ELSE
6148 WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6149 ENDIF
6150 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6151 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6152 IFT1 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6153 IFT2 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6154 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6155 & 0,0,5)
6156 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6157 & 0,0,5)
6158 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6159 & 0,0,5)
6160 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6161 & 0,0,5)
6162 NCSY = NCSY+1
6163 50 CONTINUE
6164
6165* valence-sea chains
6166 DO 60 I=1,NVS
6167 IF (ISKPCH(6,I).EQ.99) GOTO 60
6168 ICCHAI(1,6) = ICCHAI(1,6)+2
6169 IDXP = INTVS1(I)
6170 IDXT = INTVS2(I)
6171 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6172 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6173 DO 61 K=1,4
6174 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6175 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6176 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6177 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
6178 61 CONTINUE
6179 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6180 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6181 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6182 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6183 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6184 IF (LCHK) THEN
6185 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6186 & 0,0,6)
6187 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6188 & 0,0,6)
6189 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6190 & 0,0,6)
6191 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6192 & 0,0,6)
6193 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6194 & +(PP1(3)+PT1(3))**2)
6195 ECH = PP1(4)+PT1(4)
6196 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6197 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6198 & +(PP2(3)+PT2(3))**2)
6199 ECH = PP2(4)+PT2(4)
6200 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6201 ELSE
6202 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6203 & 0,0,6)
6204 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6205 & 0,0,6)
6206 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6207 & 0,0,6)
6208 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6209 & 0,0,6)
6210 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6211 & +(PP1(3)+PT2(3))**2)
6212 ECH = PP1(4)+PT2(4)
6213 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6214 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6215 & +(PP2(3)+PT1(3))**2)
6216 ECH = PP2(4)+PT1(4)
6217 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6218 ENDIF
6219 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6220 AM1 = SQRT(AM1)
6221 AM2 = SQRT(AM2)
6222 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMVS)) THEN
6223C WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6224 5004 FORMAT(1X,'incon. chain mass VS: ',2I5,2E10.3)
6225 ENDIF
6226 ELSE
6227 WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6228 ENDIF
6229 NCSY = NCSY+1
6230 60 CONTINUE
6231
6232* sea-valence chains
6233 DO 40 I=1,NSV
6234 IF (ISKPCH(4,I).EQ.99) GOTO 40
6235 ICCHAI(1,4) = ICCHAI(1,4)+2
6236 IDXP = INTSV1(I)
6237 IDXT = INTSV2(I)
6238 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6239 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6240 DO 41 K=1,4
6241 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6242 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6243 PT1(K) = XTVD(IDXT) *PHKK(K,MOT)
6244 PT2(K) = XTVQ(IDXT) *PHKK(K,MOT)
6245 41 CONTINUE
6246 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6247 & +(PP1(3)+PT1(3))**2)
6248 ECH = PP1(4)+PT1(4)
6249 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6250 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6251 & +(PP2(3)+PT2(3))**2)
6252 ECH = PP2(4)+PT2(4)
6253 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6254 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6255 AM1 = SQRT(AM1)
6256 AM2 = SQRT(AM2)
6257 IF ((AM1.LT.AMVS).OR.(AM2.LT.AMSS)) THEN
6258C WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6259 5005 FORMAT(1X,'incon. chain mass SV: ',2I5,2E10.3)
6260 ENDIF
6261 ELSE
6262 WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6263 ENDIF
6264 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6265 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6266 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6267 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6268 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6269 & 0,0,4)
6270 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6271 & 0,0,4)
6272 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6273 & 0,0,4)
6274 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6275 & 0,0,4)
6276 NCSY = NCSY+1
6277 40 CONTINUE
6278
6279* valence-disea chains
6280 DO 70 I=1,NVD
6281 IF (ISKPCH(7,I).EQ.99) GOTO 70
6282 ICCHAI(1,7) = ICCHAI(1,7)+2
6283 IDXP = INTVD1(I)
6284 IDXT = INTVD2(I)
6285 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6286 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6287 DO 71 K=1,4
6288 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6289 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6290 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6291 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6292 71 CONTINUE
6293 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6294 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6295 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6296 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6297 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6298 IF (LCHK) THEN
6299 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6300 & 0,0,7)
6301 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6302 & 0,0,7)
6303 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6304 & 0,0,7)
6305 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6306 & 0,0,7)
6307 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6308 & +(PP1(3)+PT1(3))**2)
6309 ECH = PP1(4)+PT1(4)
6310 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6311 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6312 & +(PP2(3)+PT2(3))**2)
6313 ECH = PP2(4)+PT2(4)
6314 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6315 ELSE
6316 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6317 & 0,0,7)
6318 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6319 & 0,0,7)
6320 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6321 & 0,0,7)
6322 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6323 & 0,0,7)
6324 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6325 & +(PP1(3)+PT2(3))**2)
6326 ECH = PP1(4)+PT2(4)
6327 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6328 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6329 & +(PP2(3)+PT1(3))**2)
6330 ECH = PP2(4)+PT1(4)
6331 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6332 ENDIF
6333 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6334 AM1 = SQRT(AM1)
6335 AM2 = SQRT(AM2)
6336 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6337C WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6338 5006 FORMAT(1X,'incon. chain mass VD: ',2I5,2E10.3)
6339 ENDIF
6340 ELSE
6341 WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6342 ENDIF
6343 NCSY = NCSY+1
6344 70 CONTINUE
6345
6346* valence-valence chains
6347 DO 80 I=1,NVV
6348 IF (ISKPCH(8,I).EQ.99) GOTO 80
6349 ICCHAI(1,8) = ICCHAI(1,8)+2
6350 IDXP = INTVV1(I)
6351 IDXT = INTVV2(I)
6352 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6353 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6354 DO 81 K=1,4
6355 PP1(K) = XPVQ(IDXP)*PHKK(K,MOP)
6356 PP2(K) = XPVD(IDXP)*PHKK(K,MOP)
6357 PT1(K) = XTVD(IDXT)*PHKK(K,MOT)
6358 PT2(K) = XTVQ(IDXT)*PHKK(K,MOT)
6359 81 CONTINUE
6360 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6361 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6362 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6363 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6364
6365* check for diffractive event
6366 IDIFF = 0
6367 IF (((ISINGD.GT.0).OR.(IDOUBD.GT.0)).AND.
6368 & (IP.EQ.1).AND.(NN.EQ.1)) THEN
6369 DO 800 K=1,4
6370 PP(K) = PP1(K)+PP2(K)
6371 PT(K) = PT1(K)+PT2(K)
6372 800 CONTINUE
6373 ISTCK = NHKK
6374 CALL DT_DIFEVT(IFP1,IFP2,PP,MOP,
6375 & IFT1,IFT2,PT,MOT,IDIFF,NCSY,IREJ1)
6376C IF (IREJ1.NE.0) GOTO 9999
6377 IF (IREJ1.NE.0) THEN
6378 IDIFF = 0
6379 NHKK = ISTCK
6380 ENDIF
6381 ELSE
6382 IDIFF = 0
6383 ENDIF
6384
6385 IF (IDIFF.EQ.0) THEN
6386* valence-valence chain system
6387 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6388 IF (LCHK) THEN
6389* baryon-baryon
6390 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6391 & PP1(1),PP1(2),PP1(3),PP1(4),0,0,8)
6392 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6393 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6394 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6395 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6396 CALL DT_EVTPUT(-22,IFT2,MOT,0,
6397 & PT2(1),PT2(2),PT2(3),PT2(4),0,0,8)
6398 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6399 & +(PP1(3)+PT1(3))**2)
6400 ECH = PP1(4)+PT1(4)
6401 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6402 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6403 & +(PP2(3)+PT2(3))**2)
6404 ECH = PP2(4)+PT2(4)
6405 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6406 ELSE
6407* antibaryon-baryon
6408 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6409 & PP1(1),PP1(2),PP1(3),PP1(4),0,0,8)
6410 CALL DT_EVTPUT(-22,IFT2,MOT,0,
6411 & PT2(1),PT2(2),PT2(3),PT2(4),0,0,8)
6412 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6413 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6414 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6415 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6416 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6417 & +(PP1(3)+PT2(3))**2)
6418 ECH = PP1(4)+PT2(4)
6419 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6420 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6421 & +(PP2(3)+PT1(3))**2)
6422 ECH = PP2(4)+PT1(4)
6423 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6424 ENDIF
6425 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6426 AM1 = SQRT(AM1)
6427 AM2 = SQRT(AM2)
6428 IF ((AM1.LT.AMVV).OR.(AM2.LT.AMVV)) THEN
6429C WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6430 5007 FORMAT(1X,'incon. chain mass VV: ',2I5,2E10.3)
6431 ENDIF
6432 ELSE
6433 WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6434 ENDIF
6435 NCSY = NCSY+1
6436 ENDIF
6437 80 CONTINUE
6438 IF (ISTHKK(NPOINT(2)).EQ.1) NPOINT(2) = NPOINT(2)+1
6439
6440* energy-momentum & flavor conservation check
6441 IF (ABS(IDIFF).NE.1) THEN
6442 IF (IDIFF.NE.0) THEN
6443 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-41,1,0,
6444 & 1,3,10,IREJ)
6445 ELSE
6446 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-31,-32,0,
6447 & 1,3,10,IREJ)
6448 ENDIF
6449 IF (IREJ.NE.0) THEN
6450 CALL DT_EVTOUT(4)
6451 STOP
6452 ENDIF
6453 ENDIF
6454
6455 RETURN
6456
6457 9999 CONTINUE
6458 IREJ = 1
6459 RETURN
6460 END
6461
6462*$ CREATE DT_CHKCSY.FOR
6463*COPY DT_CHKCSY
6464*
6465*===chkcsy=============================================================*
6466*
6467 SUBROUTINE DT_CHKCSY(ID1,ID2,LCHK)
6468
6469************************************************************************
6470* CHeCk Chain SYstem for consistency of partons at chain ends. *
6471* ID1,ID2 PDG-numbers of partons at chain ends *
6472* LCHK = .true. consistent chain *
6473* = .false. inconsistent chain *
6474* This version dated 18.01.95 is written by S. Roesler *
6475************************************************************************
6476
6477 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6478 SAVE
6479 PARAMETER ( LINP = 10 ,
6480 & LOUT = 6 ,
6481 & LDAT = 9 )
6482
6483 LOGICAL LCHK
6484
6485 LCHK = .TRUE.
6486
6487* q-aq chain
6488 IF ((ABS(ID1).LE.6).AND.(ABS(ID2).LE.6)) THEN
6489 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6490* q-qq, aq-aqaq chain
6491 ELSEIF (((ABS(ID1).LE.6).AND.(ABS(ID2).GT.6)).OR.
6492 & ((ABS(ID1).GT.6).AND.(ABS(ID2).LE.6))) THEN
6493 IF (ID1*ID2.LT.0) LCHK = .FALSE.
6494* qq-aqaq chain
6495 ELSEIF ((ABS(ID1).GT.6).AND.(ABS(ID2).GT.6)) THEN
6496 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6497 ENDIF
6498
6499 RETURN
6500 END
6501
6502*$ CREATE DT_EVENTA.FOR
6503*COPY DT_EVENTA
6504*
6505*===eventa=============================================================*
6506*
6507 SUBROUTINE DT_EVENTA(ID,IP,IT,NCSY,IREJ)
6508
6509************************************************************************
6510* Treatment of nucleon-nucleon interactions in a two-chain *
6511* approximation. *
6512* (input) ID BAMJET-index of projectile hadron (in case of *
6513* h-K scattering) *
6514* IP/IT mass number of projectile/target nucleus *
6515* NCSY number of two chain systems *
6516* IREJ rejection flag *
6517* This version dated 15.01.95 is written by S. Roesler *
6518************************************************************************
6519
6520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6521 SAVE
6522 PARAMETER ( LINP = 10 ,
6523 & LOUT = 6 ,
6524 & LDAT = 9 )
6525 PARAMETER (TINY10=1.0D-10)
6526
6527* event history
6528 PARAMETER (NMXHKK=200000)
6529 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6530 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6531 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6532* extended event history
6533 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6534 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6535 & IHIST(2,NMXHKK)
6536* rejection counter
6537 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6538 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6539 & IREXCI(3),IRDIFF(2),IRINC
6540* flags for diffractive interactions (DTUNUC 1.x)
6541 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6542* particle properties (BAMJET index convention)
6543 CHARACTER*8 ANAME
6544 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
6545 & IICH(210),IIBAR(210),K1(210),K2(210)
6546* flags for input different options
6547 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6548 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6549 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6550* various options for treatment of partons (DTUNUC 1.x)
6551* (chain recombination, Cronin,..)
6552 LOGICAL LCO2CR,LINTPT
6553 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
6554 & LCO2CR,LINTPT
6555
6556 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
6557
6558 IREJ = 0
6559 NPOINT(3) = NHKK+1
6560
6561* skip following treatment for low-mass diffraction
6562 IF (ABS(IFLAGD).EQ.1) THEN
6563 NPOINT(3) = NPOINT(2)
6564 GOTO 5
6565 ENDIF
6566
6567* multiple scattering of chain ends
6568 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
6569 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
6570
6571 NC = NPOINT(2)
6572* get a two-chain system from DTEVT1
6573 DO 3 I=1,NCSY
6574 IFP1 = IDHKK(NC)
6575 IFT1 = IDHKK(NC+1)
6576 IFP2 = IDHKK(NC+2)
6577 IFT2 = IDHKK(NC+3)
6578 DO 4 K=1,4
6579 PP1(K) = PHKK(K,NC)
6580 PT1(K) = PHKK(K,NC+1)
6581 PP2(K) = PHKK(K,NC+2)
6582 PT2(K) = PHKK(K,NC+3)
6583 4 CONTINUE
6584 MOP1 = NC
6585 MOT1 = NC+1
6586 MOP2 = NC+2
6587 MOT2 = NC+3
6588 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
6589 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
6590 IF (IREJ1.GT.0) THEN
6591 IRHHA = IRHHA+1
6592 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTA'
6593 GOTO 9999
6594 ENDIF
6595 NC = NC+4
6596 3 CONTINUE
6597
6598* meson/antibaryon projectile:
6599* sample single-chain valence-valence systems (Reggeon contrib.)
6600 IF ((IP.EQ.1).AND.(ISICHA.EQ.1)) THEN
6601 IF (IIBAR(ID).LE.0) CALL DT_VV2SCH
6602 ENDIF
6603
6604 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6605* check DTEVT1 for remaining resonance mass corrections
6606 CALL DT_EVTRES(IREJ1)
6607 IF (IREJ1.GT.0) THEN
6608 IRRES(1) = IRRES(1)+1
6609 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in EVENTA'
6610 GOTO 9999
6611 ENDIF
6612 ENDIF
6613
6614* assign p_t to two-"chain" systems consisting of two resonances only
6615* since only entries for chains will be affected, this is obsolete
6616* in case of JETSET-fragmetation
6617 CALL DT_RESPT
6618
6619* combine q-aq chains to color ropes (qq-aqaq) (chain fusion)
6620 IF (LCO2CR) CALL DT_COM2CR
6621
6622 5 CONTINUE
6623
6624* fragmentation of the complete event
6625**uncomment for internal phojet-fragmentation
6626C CALL DT_EVTFRA(IREJ1)
6627 CALL DT_EVTFRG(2,IDUM,NPYMEM,IREJ1)
6628 IF (IREJ1.GT.0) THEN
6629 IRFRAG = IRFRAG+1
6630 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 3 in EVENTA'
6631 GOTO 9999
6632 ENDIF
6633
6634* decay of possible resonances (should be obsolete)
6635 CALL DT_DECAY1
6636
6637 RETURN
6638
6639 9999 CONTINUE
6640 IREVT = IREVT+1
6641 IREJ = 1
6642 RETURN
6643 END
6644
6645*$ CREATE DT_GETCSY.FOR
6646*COPY DT_GETCSY
6647*
6648*===getcsy=============================================================*
6649*
6650 SUBROUTINE DT_GETCSY(IFPR1,PP1,MOP1,IFPR2,PP2,MOP2,
6651 & IFTA1,PT1,MOT1,IFTA2,PT2,MOT2,IREJ)
6652
6653************************************************************************
6654* This version dated 15.01.95 is written by S. Roesler *
6655************************************************************************
6656
6657 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6658 SAVE
6659 PARAMETER ( LINP = 10 ,
6660 & LOUT = 6 ,
6661 & LDAT = 9 )
6662 PARAMETER (TINY10=1.0D-10)
6663
6664* event history
6665 PARAMETER (NMXHKK=200000)
6666 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6667 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6668 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6669* extended event history
6670 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6671 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6672 & IHIST(2,NMXHKK)
6673* rejection counter
6674 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6675 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6676 & IREXCI(3),IRDIFF(2),IRINC
6677* flags for input different options
6678 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6679 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6680 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6681* flags for diffractive interactions (DTUNUC 1.x)
6682 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6683
6684 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),
6685 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),PCH1(4),PCH2(4)
6686
6687 IREJ = 0
6688
6689* get quark content of partons
6690 DO 1 I=1,2
6691 IFP1(I) = 0
6692 IFP2(I) = 0
6693 IFT1(I) = 0
6694 IFT2(I) = 0
6695 1 CONTINUE
6696 IFP1(1) = IDT_IPDG2B(IFPR1,1,2)
6697 IF (ABS(IFPR1).GE.1000) IFP1(2) = IDT_IPDG2B(IFPR1,2,2)
6698 IFP2(1) = IDT_IPDG2B(IFPR2,1,2)
6699 IF (ABS(IFPR2).GE.1000) IFP2(2) = IDT_IPDG2B(IFPR2,2,2)
6700 IFT1(1) = IDT_IPDG2B(IFTA1,1,2)
6701 IF (ABS(IFTA1).GE.1000) IFT1(2) = IDT_IPDG2B(IFTA1,2,2)
6702 IFT2(1) = IDT_IPDG2B(IFTA2,1,2)
6703 IF (ABS(IFTA2).GE.1000) IFT2(2) = IDT_IPDG2B(IFTA2,2,2)
6704
6705* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq, 3 - qq-aqaq)
6706 IDCH1 = 2
6707 IF ((IFP1(2).EQ.0).AND.(IFT1(2).EQ.0)) IDCH1 = 1
6708 IF ((IFP1(2).NE.0).AND.(IFT1(2).NE.0)) IDCH1 = 3
6709 IDCH2 = 2
6710 IF ((IFP2(2).EQ.0).AND.(IFT2(2).EQ.0)) IDCH2 = 1
6711 IF ((IFP2(2).NE.0).AND.(IFT2(2).NE.0)) IDCH2 = 3
6712
6713* store initial configuration for energy-momentum cons. check
6714 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IDUM)
6715
6716* sample intrinsic p_t at chain-ends
6717 CALL DT_GETSPT(PP1,IFPR1,IFP1,PP2,IFPR2,IFP2,
6718 & PT1,IFTA1,IFT1,PT2,IFTA2,IFT2,
6719 & AMCH1,IDCH1,AMCH2,IDCH2,IDCH(MOP1),IREJ1)
6720 IF (IREJ1.NE.0) THEN
6721 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in GETCSY'
6722 IRPT = IRPT+1
6723 GOTO 9999
6724 ENDIF
6725
6726C IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6727C IF ((IDCH1.EQ.3).OR.((IDCH1.GT.1).AND.(IDCH2.EQ.1))) THEN
6728C* check second chain for resonance
6729C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6730C & AMCH2,AMCH2N,IDCH2,IREJ1)
6731C IF (IREJ1.NE.0) GOTO 9999
6732C IF (IDR2.NE.0) THEN
6733C CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6734C & AMCH2,AMCH2N,AMCH1,IREJ1)
6735C IF (IREJ1.NE.0) GOTO 9999
6736C ENDIF
6737C* check first chain for resonance
6738C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6739C & AMCH1,AMCH1N,IDCH1,IREJ1)
6740C IF (IREJ1.NE.0) GOTO 9999
6741C IF (IDR1.NE.0) IDR1 = 100*IDR1
6742C ELSE
6743C* check first chain for resonance
6744C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6745C & AMCH1,AMCH1N,IDCH1,IREJ1)
6746C IF (IREJ1.NE.0) GOTO 9999
6747C IF (IDR1.NE.0) THEN
6748C CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6749C & AMCH1,AMCH1N,AMCH2,IREJ1)
6750C IF (IREJ1.NE.0) GOTO 9999
6751C ENDIF
6752C* check second chain for resonance
6753C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6754C & AMCH2,AMCH2N,IDCH2,IREJ1)
6755C IF (IREJ1.NE.0) GOTO 9999
6756C IF (IDR2.NE.0) IDR2 = 100*IDR2
6757C ENDIF
6758C ENDIF
6759
6760 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6761* check chains for resonances
6762 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6763 & AMCH1,AMCH1N,IDCH1,IREJ1)
6764 IF (IREJ1.NE.0) GOTO 9999
6765 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6766 & AMCH2,AMCH2N,IDCH2,IREJ1)
6767 IF (IREJ1.NE.0) GOTO 9999
6768* change kinematics corresponding to resonance-masses
6769 IF ( (IDR1.NE.0).AND.(IDR2.EQ.0) ) THEN
6770 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6771 & AMCH1,AMCH1N,AMCH2,IREJ1)
6772 IF (IREJ1.GT.0) GOTO 9999
6773 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6774 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6775 & AMCH2,AMCH2N,IDCH2,IREJ1)
6776 IF (IREJ1.NE.0) GOTO 9999
6777 IF (IDR2.NE.0) IDR2 = 100*IDR2
6778 ELSEIF ( (IDR1.EQ.0).AND.(IDR2.NE.0) ) THEN
6779 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6780 & AMCH2,AMCH2N,AMCH1,IREJ1)
6781 IF (IREJ1.GT.0) GOTO 9999
6782 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6783 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6784 & AMCH1,AMCH1N,IDCH1,IREJ1)
6785 IF (IREJ1.NE.0) GOTO 9999
6786 IF (IDR1.NE.0) IDR1 = 100*IDR1
6787 ELSEIF ( (IDR1.NE.0).AND.(IDR2.NE.0) ) THEN
6788 AMDIF1 = ABS(AMCH1-AMCH1N)
6789 AMDIF2 = ABS(AMCH2-AMCH2N)
6790 IF (AMDIF2.LT.AMDIF1) THEN
6791 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6792 & AMCH2,AMCH2N,AMCH1,IREJ1)
6793 IF (IREJ1.GT.0) GOTO 9999
6794 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6795 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),
6796 & IDR1,IDXR1,AMCH1,AMCH1N,IDCH1,IREJ1)
6797 IF (IREJ1.NE.0) GOTO 9999
6798 IF (IDR1.NE.0) IDR1 = 100*IDR1
6799 ELSE
6800 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6801 & AMCH1,AMCH1N,AMCH2,IREJ1)
6802 IF (IREJ1.GT.0) GOTO 9999
6803 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6804 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),
6805 & IDR2,IDXR2,AMCH2,AMCH2N,IDCH2,IREJ1)
6806 IF (IREJ1.NE.0) GOTO 9999
6807 IF (IDR2.NE.0) IDR2 = 100*IDR2
6808 ENDIF
6809 ENDIF
6810 ENDIF
6811
6812* store final configuration for energy-momentum cons. check
6813 IF (LEMCCK) THEN
6814 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IDUM)
6815 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
6816 IF (IREJ1.NE.0) GOTO 9999
6817 ENDIF
6818
6819* put partons and chains into DTEVT1
6820 DO 10 I=1,4
6821 PCH1(I) = PP1(I)+PT1(I)
6822 PCH2(I) = PP2(I)+PT2(I)
6823 10 CONTINUE
6824 CALL DT_EVTPUT(-ISTHKK(MOP1),IFPR1,MOP1,0,PP1(1),PP1(2),
6825 & PP1(3),PP1(4),0,0,0)
6826 CALL DT_EVTPUT(-ISTHKK(MOT1),IFTA1,MOT1,0,PT1(1),PT1(2),
6827 & PT1(3),PT1(4),0,0,0)
6828 KCH = 100+IDCH(MOP1)*10+1
6829 CALL DT_EVTPUT(KCH,88888,-2,-1,
6830 & PCH1(1),PCH1(2),PCH1(3),PCH1(4),IDR1,IDXR1,IDCH(MOP1))
6831 CALL DT_EVTPUT(-ISTHKK(MOP2),IFPR2,MOP2,0,PP2(1),PP2(2),
6832 & PP2(3),PP2(4),0,0,0)
6833 CALL DT_EVTPUT(-ISTHKK(MOT2),IFTA2,MOT2,0,PT2(1),PT2(2),
6834 & PT2(3),PT2(4),0,0,0)
6835 KCH = KCH+1
6836 CALL DT_EVTPUT(KCH,88888,-2,-1,
6837 & PCH2(1),PCH2(2),PCH2(3),PCH2(4),IDR2,IDXR2,IDCH(MOP2))
6838
6839 RETURN
6840
6841 9999 CONTINUE
6842 IF ((IDCH(MOP1).LE.3).AND.(IDCH(MOP2).LE.3)) THEN
6843* "cancel" sea-sea chains
6844 CALL DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ1)
6845 IF (IREJ1.NE.0) GOTO 9998
6846**sr 16.5. flag for EVENTB
6847 IREJ = -1
6848 RETURN
6849 ENDIF
6850 9998 CONTINUE
6851 IREJ = 1
6852 RETURN
6853 END
6854
6855*$ CREATE DT_CHKINE.FOR
6856*COPY DT_CHKINE
6857*
6858*===chkine=============================================================*
6859*
6860 SUBROUTINE DT_CHKINE(PP1I,IFP1,PP2I,IFP2,PT1I,IFT1,PT2I,IFT2,
6861 & AMCH1,AMCH1N,AMCH2,IREJ)
6862
6863************************************************************************
6864* This subroutine replaces CORMOM. *
6865* This version dated 05.01.95 is written by S. Roesler *
6866************************************************************************
6867
6868 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6869 SAVE
6870 PARAMETER ( LINP = 10 ,
6871 & LOUT = 6 ,
6872 & LDAT = 9 )
6873 PARAMETER (TINY10=1.0D-10)
6874
6875* flags for input different options
6876 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6877 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6878 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6879* rejection counter
6880 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6881 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6882 & IREXCI(3),IRDIFF(2),IRINC
6883
6884 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),P1(4),P2(4),
6885 & PP1I(4),PP2I(4),PT1I(4),PT2I(4)
6886
6887 IREJ = 0
6888 JMSHL = IMSHL
6889
6890 SCALE = AMCH1N/MAX(AMCH1,TINY10)
6891 DO 10 I=1,4
6892 PP1(I) = PP1I(I)
6893 PP2(I) = PP2I(I)
6894 PT1(I) = PT1I(I)
6895 PT2(I) = PT2I(I)
6896 PP2(I) = PP2(I)+(1.0D0-SCALE)*PP1(I)
6897 PT2(I) = PT2(I)+(1.0D0-SCALE)*PT1(I)
6898 PP1(I) = SCALE*PP1(I)
6899 PT1(I) = SCALE*PT1(I)
6900 10 CONTINUE
6901 IF ((PP1(4).LT.0.0D0).OR.(PP2(4).LT.0.0D0).OR.
6902 & (PT1(4).LT.0.0D0).OR.(PT2(4).LT.0.0D0)) GOTO 9997
6903
6904 ECH = PP2(4)+PT2(4)
6905 PCH = SQRT( (PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2+
6906 & (PP2(3)+PT2(3))**2 )
6907 AMCH22 = (ECH-PCH)*(ECH+PCH)
6908 IF (AMCH22.LT.0.0D0) THEN
6909 IF (IOULEV(1).GT.0)
6910 & WRITE(LOUT,'(1X,A)') 'CHKINE: inconsistent treatment!'
6911 GOTO 9997
6912 ENDIF
6913
6914 AMCH1 = AMCH1N
6915 AMCH2 = SQRT(AMCH22)
6916
6917* put partons again on mass shell
6918 13 CONTINUE
6919 XM1 = 0.0D0
6920 XM2 = 0.0D0
6921 IF (JMSHL.EQ.1) THEN
6922 XM1 = PYMASS(IFP1)
6923 XM2 = PYMASS(IFT1)
6924 ENDIF
6925 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
6926 IF (IREJ1.NE.0) THEN
6927 IF (JMSHL.EQ.0) GOTO 9998
6928 JMSHL = 0
6929 GOTO 13
6930 ENDIF
6931 JMSHL = IMSHL
6932 DO 11 I=1,4
6933 PP1(I) = P1(I)
6934 PT1(I) = P2(I)
6935 11 CONTINUE
6936 14 CONTINUE
6937 XM1 = 0.0D0
6938 XM2 = 0.0D0
6939 IF (JMSHL.EQ.1) THEN
6940 XM1 = PYMASS(IFP2)
6941 XM2 = PYMASS(IFT2)
6942 ENDIF
6943 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P1,P2,IREJ1)
6944 IF (IREJ1.NE.0) THEN
6945 IF (JMSHL.EQ.0) GOTO 9998
6946 JMSHL = 0
6947 GOTO 14
6948 ENDIF
6949 DO 12 I=1,4
6950 PP2(I) = P1(I)
6951 PT2(I) = P2(I)
6952 12 CONTINUE
6953 DO 15 I=1,4
6954 PP1I(I) = PP1(I)
6955 PP2I(I) = PP2(I)
6956 PT1I(I) = PT1(I)
6957 PT2I(I) = PT2(I)
6958 15 CONTINUE
6959 RETURN
6960
6961 9997 IRCHKI(1) = IRCHKI(1)+1
6962**sr
6963C GOTO 9999
6964 IREJ = -1
6965 RETURN
6966**
6967 9998 IRCHKI(2) = IRCHKI(2)+1
6968
6969 9999 CONTINUE
6970 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in CHKINE'
6971 IREJ = 1
6972 RETURN
6973 END
6974
6975*$ CREATE DT_CH2RES.FOR
6976*COPY DT_CH2RES
6977*
6978*===ch2res=============================================================*
6979*
6980 SUBROUTINE DT_CH2RES(IF1,IF2,IF3,IF4,IDR,IDXR,
6981 & AM,AMN,IMODE,IREJ)
6982
6983************************************************************************
6984* Check chains for resonance production. *
6985* This subroutine replaces COMCMA/COBCMA/COMCM2 *
6986* input: *
6987* IF1,2,3,4 input flavors (q,aq in any order) *
6988* AM chain mass *
6989* MODE = 1 check q-aq chain for meson-resonance *
6990* = 2 check q-qq, aq-aqaq chain for baryon-resonance *
6991* = 3 check qq-aqaq chain for lower mass cut *
6992* output: *
6993* IDR = 0 no resonances found *
6994* = -1 pseudoscalar meson/octet baryon *
6995* = 1 vector-meson/decuplet baryon *
6996* IDXR BAMJET-index of corresponding resonance *
6997* AMN mass of corresponding resonance *
6998* *
6999* IREJ rejection flag *
7000* This version dated 06.01.95 is written by S. Roesler *
7001************************************************************************
7002
7003 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7004 SAVE
7005 PARAMETER ( LINP = 10 ,
7006 & LOUT = 6 ,
7007 & LDAT = 9 )
7008
7009* particle properties (BAMJET index convention)
7010 CHARACTER*8 ANAME
7011 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7012 & IICH(210),IIBAR(210),K1(210),K2(210)
7013* quark-content to particle index conversion (DTUNUC 1.x)
7014 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
7015 & IA08(6,21),IA10(6,21)
7016* rejection counter
7017 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
7018 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
7019 & IREXCI(3),IRDIFF(2),IRINC
7020* flags for input different options
7021 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7022 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7023 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7024
7025 DIMENSION IF(4),JF(4)
7026
7027**sr 4.7. test
7028C DATA AMLOM,AMLOB /0.08D0,0.2D0/
7029 DATA AMLOM,AMLOB /0.1D0,0.7D0/
7030**
7031C DATA AMLOM,AMLOB /0.001D0,0.001D0/
7032
7033 MODE = ABS(IMODE)
7034
7035 IF ((MODE.LT.1).OR.(MODE.GT.3)) THEN
7036 WRITE(LOUT,1000) MODE
7037 1000 FORMAT(1X,'CH2RES: MODE ',I4,' not supported!',/,
7038 & 1X,' program stopped')
7039 STOP
7040 ENDIF
7041
7042 AMX = AM
7043 IREJ = 0
7044 IDR = 0
7045 IDXR = 0
7046 AMN = AMX
7047 IF ((AM.LE.0.0D0).AND.(MODE.EQ.1)) AMX = AMLOM
7048 IF ((AM.LE.0.0D0).AND.(MODE.EQ.2)) AMX = AMLOB
7049
7050 IF(1) = IF1
7051 IF(2) = IF2
7052 IF(3) = IF3
7053 IF(4) = IF4
7054 NF = 0
7055 DO 100 I=1,4
7056 IF (IF(I).NE.0) THEN
7057 NF = NF+1
7058 JF(NF) = IF(I)
7059 ENDIF
7060 100 CONTINUE
7061 IF (NF.LE.MODE) THEN
7062 WRITE(LOUT,1001) MODE,IF
7063 1001 FORMAT(1X,'CH2RES: inconsistent input flavors in MODE ',
7064 & I4,' IF1 = ',I4,' IF2 = ',I4,' IF3 = ',I4,' IF4 = ',I4)
7065 GOTO 9999
7066 ENDIF
7067
7068 GOTO (1,2,3) MODE
7069
7070* check for meson resonance
7071 1 CONTINUE
7072 IFQ = JF(1)
7073 IFAQ = ABS(JF(2))
7074 IF (JF(2).GT.0) THEN
7075 IFQ = JF(2)
7076 IFAQ = ABS(JF(1))
7077 ENDIF
7078 IFPS = IMPS(IFAQ,IFQ)
7079 IFV = IMVE(IFAQ,IFQ)
7080 AMPS = AAM(IFPS)
7081 AMV = AAM(IFV)
7082 AMHI = AMV+0.3D0
7083 IF (AMX.LT.AMV) THEN
7084 IF (AMX.LT.AMPS) THEN
7085 IF (IMODE.GT.0) THEN
7086 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOM)) GOTO 9999
7087 ELSE
7088 IF (AMX.LT.0.8D0*AMPS) GOTO 9999
7089 ENDIF
7090 LOMRES = LOMRES+1
7091 ENDIF
7092* replace chain by pseudoscalar meson
7093 IDR = -1
7094 IDXR = IFPS
7095 AMN = AMPS
7096 ELSEIF (AMX.LT.AMHI) THEN
7097* replace chain by vector-meson
7098 IDR = 1
7099 IDXR = IFV
7100 AMN = AMV
7101 ENDIF
7102 RETURN
7103
7104* check for baryon resonance
7105 2 CONTINUE
7106 CALL DT_DBKLAS(JF(1),JF(2),JF(3),JB8,JB10)
7107 AM8 = AAM(JB8)
7108 AM10 = AAM(JB10)
7109 AMHI = AM10+0.3D0
7110 IF (AMX.LT.AM10) THEN
7111 IF (AMX.LT.AM8) THEN
7112 IF (IMODE.GT.0) THEN
7113 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOB)) GOTO 9999
7114 ELSE
7115 IF (AMX.LT.0.8D0*AM8) GOTO 9999
7116 ENDIF
7117 LOBRES = LOBRES+1
7118 ENDIF
7119* replace chain by oktet baryon
7120 IDR = -1
7121 IDXR = JB8
7122 AMN = AM8
7123 ELSEIF (AMX.LT.AMHI) THEN
7124 IDR = 1
7125 IDXR = JB10
7126 AMN = AM10
7127 ENDIF
7128 RETURN
7129
7130* check qq-aqaq for lower mass cut
7131 3 CONTINUE
7132* empirical definition of AMHI to allow for (b-antib)-pair prod.
7133 AMHI = 2.5D0
7134 IF (AMX.LT.AMHI) GOTO 9999
7135 RETURN
7136
7137 9999 CONTINUE
7138 IF ((IOULEV(1).GT.0).AND.(IMODE.GT.0))
7139 & WRITE(LOUT,*) 'rejected 1 in CH2RES',IMODE
7140 IREJ = 1
7141 IRRES(2) = IRRES(2)+1
7142 RETURN
7143 END
7144
7145*$ CREATE DT_RJSEAC.FOR
7146*COPY DT_RJSEAC
7147*
7148*===rjseac=============================================================*
7149*
7150 SUBROUTINE DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ)
7151
7152************************************************************************
7153* ReJection of SEA-sea Chains. *
7154* MOP1/2 entries of projectile sea-partons in DTEVT1 *
7155* MOT1/2 entries of projectile sea-partons in DTEVT1 *
7156* This version dated 16.01.95 is written by S. Roesler *
7157************************************************************************
7158
7159 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7160 SAVE
7161 PARAMETER ( LINP = 10 ,
7162 & LOUT = 6 ,
7163 & LDAT = 9 )
7164 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
7165
7166* event history
7167 PARAMETER (NMXHKK=200000)
7168 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7169 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7170 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7171* extended event history
7172 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7173 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7174 & IHIST(2,NMXHKK)
7175* statistics
7176 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7177 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7178 & ICEVTG(8,0:30)
7179
7180 DIMENSION IDXSEA(2,2),IDXNUC(2),ISTVAL(2)
7181
7182 IREJ = 0
7183
7184* projectile sea q-aq-pair
7185* indices of sea-pair
7186 IDXSEA(1,1) = MOP1
7187 IDXSEA(1,2) = MOP2
7188* index of mother-nucleon
7189 IDXNUC(1) = JMOHKK(1,MOP1)
7190* status of valence quarks to be corrected
7191 ISTVAL(1) = -21
7192
7193* target sea q-aq-pair
7194* indices of sea-pair
7195 IDXSEA(2,1) = MOT1
7196 IDXSEA(2,2) = MOT2
7197* index of mother-nucleon
7198 IDXNUC(2) = JMOHKK(1,MOT1)
7199* status of valence quarks to be corrected
7200 ISTVAL(2) = -22
7201
7202 DO 1 N=1,2
7203 IDONE = 0
7204 DO 2 I=NPOINT(2),NHKK
7205 IF ((ISTHKK(I).EQ.ISTVAL(N)).AND.
7206 & (JMOHKK(1,I).EQ.IDXNUC(N))) THEN
7207* valence parton found
7208* inrease 4-momentum by sea 4-momentum
7209 DO 3 K=1,4
7210 PHKK(K,I) = PHKK(K,I)+PHKK(K,IDXSEA(N,1))+
7211 & PHKK(K,IDXSEA(N,2))
7212 3 CONTINUE
7213 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
7214 & PHKK(2,I)**2-PHKK(3,I)**2))
7215* "cancel" sea-pair
7216 DO 4 J=1,2
7217 ISTHKK(IDXSEA(N,J)) = 100
7218 IDHKK(IDXSEA(N,J)) = 0
7219 JMOHKK(1,IDXSEA(N,J)) = 0
7220 JMOHKK(2,IDXSEA(N,J)) = 0
7221 JDAHKK(1,IDXSEA(N,J)) = 0
7222 JDAHKK(2,IDXSEA(N,J)) = 0
7223 DO 5 K=1,4
7224 PHKK(K,IDXSEA(N,J)) = ZERO
7225 VHKK(K,IDXSEA(N,J)) = ZERO
7226 WHKK(K,IDXSEA(N,J)) = ZERO
7227 5 CONTINUE
7228 PHKK(5,IDXSEA(N,J)) = ZERO
7229 4 CONTINUE
7230 IDONE = 1
7231 ENDIF
7232 2 CONTINUE
7233 IF (IDONE.NE.1) THEN
7234 WRITE(LOUT,1000) NEVHKK,MOP1,MOP2,MOT1,MOT2
7235 1000 FORMAT(1X,'RJSEAC: event ',I8,': inconsistent event',
7236 & '-record!',/,1X,' sea-quark pairs ',
7237 & 2I5,4X,2I5,' could not be canceled!')
7238 GOTO 9999
7239 ENDIF
7240 1 CONTINUE
7241 ICRJSS = ICRJSS+1
7242 RETURN
7243
7244 9999 CONTINUE
7245 IREJ = 1
7246 RETURN
7247 END
7248
7249*$ CREATE DT_VV2SCH.FOR
7250*COPY DT_VV2SCH
7251*
7252*===vv2sch=============================================================*
7253*
7254 SUBROUTINE DT_VV2SCH
7255
7256************************************************************************
7257* Change Valence-Valence chain systems to Single CHain systems for *
7258* hadron-nucleus collisions with meson or antibaryon projectile. *
7259* (Reggeon contribution) *
7260* The single chain system is approximately treated as one chain and a *
7261* meson at rest. *
7262* This version dated 18.01.95 is written by S. Roesler *
7263************************************************************************
7264
7265 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7266 SAVE
7267 PARAMETER ( LINP = 10 ,
7268 & LOUT = 6 ,
7269 & LDAT = 9 )
7270 PARAMETER (ZERO=0.0D0,TINY7=1.0D-7,TINY3=1.0D-3)
7271
7272 LOGICAL LSTART
7273
7274* event history
7275 PARAMETER (NMXHKK=200000)
7276 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7277 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7278 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7279* extended event history
7280 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7281 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7282 & IHIST(2,NMXHKK)
7283* flags for input different options
7284 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7285 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7286 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7287* statistics
7288 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7289 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7290 & ICEVTG(8,0:30)
7291
7292 DIMENSION IF(4,2),MO(4),PP1(4),PP2(4),PT1(4),PT2(4),PCH1(4),
7293 & PCH2(4)
7294
7295 DATA LSTART /.TRUE./
7296
7297 IFSC = 0
7298 IF (LSTART) THEN
7299 WRITE(LOUT,1000)
7300 1000 FORMAT(/,1X,'VV2SCH: Reggeon contribution to valance-',
7301 & 'valence chains treated')
7302 LSTART = .FALSE.
7303 ENDIF
7304
7305 NSTOP = NHKK
7306
7307* get index of first chain
7308 DO 1 I=NPOINT(3),NHKK
7309 IF (IDHKK(I).EQ.88888) THEN
7310 NC = I
7311 GOTO 2
7312 ENDIF
7313 1 CONTINUE
7314
7315 2 CONTINUE
7316 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)
7317 & .AND.(NC.LT.NSTOP)) THEN
7318* get valence-valence chains
7319 IF ((IDCH(NC).EQ.8).AND.(IDCH(NC+3).EQ.8)) THEN
7320* get "mother"-hadron indices
7321 MO1 = JMOHKK(1,JMOHKK(1,JMOHKK(1,NC)))
7322 MO2 = JMOHKK(1,JMOHKK(1,JMOHKK(2,NC)))
7323 KPROJ = IDT_ICIHAD(IDHKK(MO1))
7324 KTARG = IDT_ICIHAD(IDHKK(MO2))
7325* Lab momentum of projectile hadron
7326 CALL DT_LTNUC(PHKK(3,MO1),PHKK(4,MO1),PPZ,PPE,-3)
7327 PTOT = SQRT(PHKK(1,MO1)**2+PHKK(2,MO1)**2+
7328 & PHKK(3,MO1)**2)
7329
7330 SICHAP = DT_PHNSCH(KPROJ,KTARG,PTOT)
7331 IF (DT_RNDM(PTOT).LE.SICHAP) THEN
7332 ICVV2S = ICVV2S+1
7333* single chain requested
7334* get flavors of chain-end partons
7335 MO(1) = JMOHKK(1,NC)
7336 MO(2) = JMOHKK(2,NC)
7337 MO(3) = JMOHKK(1,NC+3)
7338 MO(4) = JMOHKK(2,NC+3)
7339 DO 3 I=1,4
7340 IF(I,1) = IDT_IPDG2B(IDHKK(MO(I)),1,2)
7341 IF(I,2) = 0
7342 IF (ABS(IDHKK(MO(I))).GE.1000)
7343 & IF(I,2) = IDT_IPDG2B(IDHKK(MO(I)),2,2)
7344 3 CONTINUE
7345* which one is the q-aq chain?
7346* N1,N1+1 - DTEVT1-entries for q-aq system
7347* N2,N2+1 - DTEVT1-entries for the other chain
7348 IF ((IF(1,2).EQ.0).AND.(IF(2,2).EQ.0)) THEN
7349 K1 = 1
7350 K2 = 3
7351 N1 = NC-2
7352 N2 = NC+1
7353 ELSEIF ((IF(3,2).EQ.0).AND.(IF(4,2).EQ.0)) THEN
7354 K1 = 3
7355 K2 = 1
7356 N1 = NC+1
7357 N2 = NC-2
7358 ELSE
7359 GOTO 10
7360 ENDIF
7361 DO 4 K=1,4
7362 PP1(K) = PHKK(K,N1)
7363 PT1(K) = PHKK(K,N1+1)
7364 PP2(K) = PHKK(K,N2)
7365 PT2(K) = PHKK(K,N2+1)
7366 4 CONTINUE
7367 AMCH1 = PHKK(5,N1+2)
7368 AMCH2 = PHKK(5,N2+2)
7369* get meson-identity corresponding to flavors of q-aq chain
7370 ITMP = IRESRJ
7371 IRESRJ = 0
7372 CALL DT_CH2RES(IF(K1,1),IF(K1+1,1),0,0,IDR1,IDXR1,
7373 & ZERO,AMCH1N,1,IDUM)
7374 IRESRJ = ITMP
7375* change kinematics of chains
7376 CALL DT_CHKINE(PP1,IDHKK(N1), PP2,IDHKK(N2),
7377 & PT1,IDHKK(N1+1),PT2,IDHKK(N2+1),
7378 & AMCH1,AMCH1N,AMCH2,IREJ1)
7379 IF (IREJ1.NE.0) GOTO 10
7380* check second chain for resonance
7381 IDCHAI = 2
7382 IF ((IF(K2,2).NE.0).AND.(IF(K2+1,2).NE.0)) IDCHAI = 3
7383 CALL DT_CH2RES(IF(K2,1),IF(K2,2),IF(K2+1,1),IF(K2+1,2),
7384 & IDR2,IDXR2,AMCH2,AMCH2N,IDCHAI,IREJ1)
7385 IF (IREJ1.NE.0) GOTO 10
7386 IF (IDR2.NE.0) IDR2 = 100*IDR2
7387* add partons and chains to DTEVT1
7388 DO 5 K=1,4
7389 PCH1(K) = PP1(K)+PT1(K)
7390 PCH2(K) = PP2(K)+PT2(K)
7391 5 CONTINUE
7392 CALL DT_EVTPUT(ISTHKK(N1),IDHKK(N1),N1,0,PP1(1),PP1(2),
7393 & PP1(3),PP1(4),0,0,0)
7394 CALL DT_EVTPUT(ISTHKK(N1+1),IDHKK(N1+1),N1+1,0,PT1(1),
7395 & PT1(2),PT1(3),PT1(4),0,0,0)
7396 KCH = ISTHKK(N1+2)+100
7397 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH1(1),PCH1(2),PCH1(3),
7398 & PCH1(4),IDR1,IDXR1,IDCH(N1+2))
7399 IDHKK(N1+2) = 22222
7400 CALL DT_EVTPUT(ISTHKK(N2),IDHKK(N2),N2,0,PP2(1),PP2(2),
7401 & PP2(3),PP2(4),0,0,0)
7402 CALL DT_EVTPUT(ISTHKK(N2+1),IDHKK(N2+1),N2+1,0,PT2(1),
7403 & PT2(2),PT2(3),PT2(4),0,0,0)
7404 KCH = ISTHKK(N2+2)+100
7405 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH2(1),PCH2(2),PCH2(3),
7406 & PCH2(4),IDR2,IDXR2,IDCH(N2+2))
7407 IDHKK(N2+2) = 22222
7408 ENDIF
7409 ENDIF
7410 ELSE
7411 GOTO 11
7412 ENDIF
7413 10 CONTINUE
7414 NC = NC+6
7415 GOTO 2
7416
7417 11 CONTINUE
7418
7419 RETURN
7420 END
7421
7422*$ CREATE DT_PHNSCH.FOR
7423*COPY DT_PHNSCH
7424*
7425*=== phnsch ===========================================================*
7426*
7427 DOUBLE PRECISION FUNCTION DT_PHNSCH( KP, KTARG, PLAB )
7428
7429*----------------------------------------------------------------------*
7430* *
7431* Probability for Hadron Nucleon Single CHain interactions: *
7432* *
7433* Created on 30 december 1993 by Alfredo Ferrari & Paola Sala *
7434* Infn - Milan *
7435* *
7436* Last change on 04-jan-94 by Alfredo Ferrari *
7437* *
7438* modified by J.R.for use in DTUNUC 6.1.94 *
7439* *
7440* Input variables: *
7441* Kp = hadron projectile index (Part numbering *
7442* scheme) *
7443* Ktarg = target nucleon index (1=proton, 8=neutron) *
7444* Plab = projectile laboratory momentum (GeV/c) *
7445* Output variable: *
7446* Phnsch = probability per single chain (particle *
7447* exchange) interactions *
7448* *
7449*----------------------------------------------------------------------*
7450
7451 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7452 SAVE
7453
7454 PARAMETER ( LUNOUT = 6 )
7455 PARAMETER ( LUNERR = 6 )
7456 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
7457 PARAMETER ( ZERZER = 0.D+00 )
7458 PARAMETER ( ONEONE = 1.D+00 )
7459 PARAMETER ( TWOTWO = 2.D+00 )
7460 PARAMETER ( FIVFIV = 5.D+00 )
7461 PARAMETER ( HLFHLF = 0.5D+00 )
7462
7463 PARAMETER ( NALLWP = 39 )
7464 PARAMETER ( IDMAXP = 210 )
7465
7466 DIMENSION ICHRGE(39),AM(39)
7467
7468* particle properties (BAMJET index convention)
7469 CHARACTER*8 ANAME
7470 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7471 & IICH(210),IIBAR(210),K1(210),K2(210)
7472
7473 DIMENSION KPTOIP(210)
7474* auxiliary common for reggeon exchange (DTUNUC 1.x)
7475 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
7476 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
7477 & IQTCHR(-6:6),MQUARK(3,39)
7478
7479 DIMENSION SGTCOE (5,33), IHLP (NALLWP)
7480 DIMENSION SGTCO1(5,10),SGTCO2(5,8),SGTCO3(5,15)
454792a9 7481CPH SAVE SGTCOE, IHLP
7482CPH SAVE IQFSC1, IQFSC2, IQBSC1, IQBSC2
9aaba0d6 7483 EQUIVALENCE (SGTCO1(1,1),SGTCOE(1,1))
7484 EQUIVALENCE (SGTCO2(1,1),SGTCOE(1,11))
7485 EQUIVALENCE (SGTCO3(1,1),SGTCOE(1,19))
7486
7487* Conversion from part to paprop numbering
7488 DATA KPTOIP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7489 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 66*0,
7490 & 34, 36, 31, 32, 33, 35, 37, 5*0, 38, 5*0, 39, 19*0, 27, 28, 74*0/
7491
7492* 1=baryon, 2=pion, 3=kaon, 4=antibaryon:
7493 DATA IHLP/1,4,5*0,1,4,2*0,3,2*2,2*3,1,4,3,3*1,2,
7494 & 2*3, 2, 4*0, 3*4, 1, 4, 1, 4, 1, 4 /
7495C DATA ( ( SGTCOE (J,I), J=1,5 ), I=1,10 ) /
7496 DATA SGTCO1 /
7497* 1st reaction: gamma p total
7498 &0.147 D+00, ZERZER , ZERZER , 0.0022D+00, -0.0170D+00,
7499* 2nd reaction: gamma d total
7500 &0.300 D+00, ZERZER , ZERZER , 0.0095D+00, -0.057 D+00,
7501* 3rd reaction: pi+ p total
7502 &16.4 D+00, 19.3D+00, -0.42D+00, 0.19 D+00, ZERZER ,
7503* 4th reaction: pi- p total
7504 &33.0 D+00, 14.0D+00, -1.36D+00, 0.456 D+00, -4.03 D+00,
7505* 5th reaction: pi+/- d total
7506 &56.8 D+00, 42.2D+00, -1.45D+00, 0.65 D+00, -5.39 D+00,
7507* 6th reaction: K+ p total
7508 &18.1 D+00, ZERZER , ZERZER , 0.26 D+00, -1.0 D+00,
7509* 7th reaction: K+ n total
7510 &18.7 D+00, ZERZER , ZERZER , 0.21 D+00, -0.89 D+00,
7511* 8th reaction: K+ d total
7512 &34.2 D+00, 7.9 D+00, -2.1 D+00, 0.346 D+00, -0.99 D+00,
7513* 9th reaction: K- p total
7514 &32.1 D+00, ZERZER , ZERZER , 0.66 D+00, -5.6 D+00,
7515* 10th reaction: K- n total
7516 &25.2 D+00, ZERZER , ZERZER , 0.38 D+00, -2.9 D+00/
7517C DATA ( ( SGTCOE (J,I), J=1,5 ), I=11,18 ) /
7518 DATA SGTCO2 /
7519* 11th reaction: K- d total
7520 &57.6 D+00, ZERZER , ZERZER , 1.17 D+00, -9.5 D+00,
7521* 12th reaction: p p total
7522 &48.0 D+00, ZERZER , ZERZER , 0.522 D+00, -4.51 D+00,
7523* 13th reaction: p n total
7524 &47.30 D+00, ZERZER , ZERZER , 0.513 D+00, -4.27 D+00,
7525* 14th reaction: p d total
7526 &91.3 D+00, ZERZER , ZERZER , 1.05 D+00, -8.8 D+00,
7527* 15th reaction: pbar p total
7528 &38.4 D+00, 77.6D+00, -0.64D+00, 0.26 D+00, -1.2 D+00,
7529* 16th reaction: pbar n total
7530 &ZERZER ,133.6D+00, -0.70D+00, -1.22 D+00, 13.7 D+00,
7531* 17th reaction: pbar d total
7532 &112. D+00, 125.D+00, -1.08D+00, 1.14 D+00, -12.4 D+00,
7533* 18th reaction: Lamda p total
7534 &30.4 D+00, ZERZER , ZERZER , ZERZER , 1.6 D+00/
7535C DATA ( ( SGTCOE (J,I), J=1,5 ), I=19,33 ) /
7536 DATA SGTCO3 /
7537* 19th reaction: pi+ p elastic
7538 &ZERZER , 11.4D+00, -0.4 D+00, 0.079 D+00, ZERZER ,
7539* 20th reaction: pi- p elastic
7540 &1.76 D+00, 11.2D+00, -0.64D+00, 0.043 D+00, ZERZER ,
7541* 21st reaction: K+ p elastic
7542 &5.0 D+00, 8.1 D+00, -1.8 D+00, 0.16 D+00, -1.3 D+00,
7543* 22nd reaction: K- p elastic
7544 &7.3 D+00, ZERZER , ZERZER , 0.29 D+00, -2.40 D+00,
7545* 23rd reaction: p p elastic
7546 &11.9 D+00, 26.9D+00, -1.21D+00, 0.169 D+00, -1.85 D+00,
7547* 24th reaction: p d elastic
7548 &16.1 D+00, ZERZER , ZERZER , 0.32 D+00, -3.4 D+00,
7549* 25th reaction: pbar p elastic
7550 &10.2 D+00, 52.7D+00, -1.16D+00, 0.125 D+00, -1.28 D+00,
7551* 26th reaction: pbar p elastic bis
7552 &10.6 D+00, 53.1D+00, -1.19D+00, 0.136 D+00, -1.41 D+00,
7553* 27th reaction: pbar n elastic
7554 &36.5 D+00, ZERZER , ZERZER , ZERZER , -11.9 D+00,
7555* 28th reaction: Lamda p elastic
7556 &12.3 D+00, ZERZER , ZERZER , ZERZER , -2.4 D+00,
7557* 29th reaction: K- p ela bis
7558 &7.24 D+00, 46.0D+00, -4.71D+00, 0.279 D+00, -2.35 D+00,
7559* 30th reaction: pi- p cx
7560 &ZERZER ,0.912D+00, -1.22D+00, ZERZER , ZERZER ,
7561* 31st reaction: K- p cx
7562 &ZERZER , 3.39D+00, -1.75D+00, ZERZER , ZERZER ,
7563* 32nd reaction: K+ n cx
7564 &ZERZER , 7.18D+00, -2.01D+00, ZERZER , ZERZER ,
7565* 33rd reaction: pbar p cx
7566 &ZERZER , 18.8D+00, -2.01D+00, ZERZER , ZERZER /
7567*
7568* +-------------------------------------------------------------------*
7569 ICHRGE(KTARG)=IICH(KTARG)
7570 AM (KTARG)=AAM (KTARG)
7571* | Check for pi0 (d-dbar)
7572 IF ( KP .NE. 26 ) THEN
7573 IP = KPTOIP (KP)
7574 IF(IP.EQ.0)IP=1
7575 ICHRGE(IP)=IICH(KP)
7576 AM (IP)=AAM (KP)
7577* |
7578* +-------------------------------------------------------------------*
7579* |
7580 ELSE
7581 IP = 23
7582 ICHRGE(IP)=0
7583 END IF
7584* |
7585* +-------------------------------------------------------------------*
7586* +-------------------------------------------------------------------*
7587* | No such interactions for baryon-baryon
7588 IF ( IIBAR (KP) .GT. 0 ) THEN
7589 DT_PHNSCH = ZERZER
7590 RETURN
7591* |
7592* +-------------------------------------------------------------------*
7593* | No "annihilation" diagram possible for K+ p/n
7594 ELSE IF ( IP .EQ. 15 ) THEN
7595 DT_PHNSCH = ZERZER
7596 RETURN
7597* |
7598* +-------------------------------------------------------------------*
7599* | No "annihilation" diagram possible for K0 p/n
7600 ELSE IF ( IP .EQ. 24 ) THEN
7601 DT_PHNSCH = ZERZER
7602 RETURN
7603* |
7604* +-------------------------------------------------------------------*
7605* | No "annihilation" diagram possible for Omebar p/n
7606 ELSE IF ( IP .GE. 38 ) THEN
7607 DT_PHNSCH = ZERZER
7608 RETURN
7609 END IF
7610* |
7611* +-------------------------------------------------------------------*
7612* +-------------------------------------------------------------------*
7613* | If the momentum is larger than 50 GeV/c, compute the single
7614* | chain probability at 50 GeV/c and extrapolate to the present
7615* | momentum according to 1/sqrt(s)
7616* | sigma = sigma_sch (50) * sqrt (s(50)/s) + sigma_dch
7617* | P_sch (50) = sigma_sch (50) / ( sigma_dch + sigma_sch (50) )
7618* | sigma_dch / sigma_sch (50) = 1 / P_sch (50) - 1
7619* | sigma_dch / sigma_sch = 1 / P_sch - 1 = ( 1 / P_sch (50) - 1 )
7620* | x sqrt(s/s(50))
7621* | P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
7622 IF ( PLAB .GT. 50.D+00 ) THEN
7623 PLA = 50.D+00
7624 AMPSQ = AM (IP)**2
7625 AMTSQ = AM (KTARG)**2
7626 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7627 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7628 EPROJ = SQRT ( PLA**2 + AMPSQ )
7629 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7630 UMORAT = SQRT ( UMOSQ / UMO50 )
7631* |
7632* +-------------------------------------------------------------------*
7633* | P < 3 GeV/c
7634 ELSE IF ( PLAB .LT. 3.D+00 ) THEN
7635 PLA = 3.D+00
7636 AMPSQ = AM (IP)**2
7637 AMTSQ = AM (KTARG)**2
7638 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7639 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7640 EPROJ = SQRT ( PLA**2 + AMPSQ )
7641 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7642 UMORAT = SQRT ( UMOSQ / UMO50 )
7643* |
7644* +-------------------------------------------------------------------*
7645* | P < 50 GeV/c
7646 ELSE
7647 PLA = PLAB
7648 UMORAT = ONEONE
7649 END IF
7650* |
7651* +-------------------------------------------------------------------*
7652 ALGPLA = LOG (PLA)
7653* +-------------------------------------------------------------------*
7654* | Pions:
7655 IF ( IHLP (IP) .EQ. 2 ) THEN
7656 ACOF = SGTCOE (1,3)
7657 BCOF = SGTCOE (2,3)
7658 ENNE = SGTCOE (3,3)
7659 CCOF = SGTCOE (4,3)
7660 DCOF = SGTCOE (5,3)
7661* | Compute the pi+ p total cross section:
7662 SPPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7663 & + DCOF * ALGPLA
7664 ACOF = SGTCOE (1,19)
7665 BCOF = SGTCOE (2,19)
7666 ENNE = SGTCOE (3,19)
7667 CCOF = SGTCOE (4,19)
7668 DCOF = SGTCOE (5,19)
7669* | Compute the pi+ p elastic cross section:
7670 SPPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7671 & + DCOF * ALGPLA
7672* | Compute the pi+ p inelastic cross section:
7673 SPPPIN = SPPPTT - SPPPEL
7674 ACOF = SGTCOE (1,4)
7675 BCOF = SGTCOE (2,4)
7676 ENNE = SGTCOE (3,4)
7677 CCOF = SGTCOE (4,4)
7678 DCOF = SGTCOE (5,4)
7679* | Compute the pi- p total cross section:
7680 SPMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7681 & + DCOF * ALGPLA
7682 ACOF = SGTCOE (1,20)
7683 BCOF = SGTCOE (2,20)
7684 ENNE = SGTCOE (3,20)
7685 CCOF = SGTCOE (4,20)
7686 DCOF = SGTCOE (5,20)
7687* | Compute the pi- p elastic cross section:
7688 SPMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7689 & + DCOF * ALGPLA
7690* | Compute the pi- p inelastic cross section:
7691 SPMPIN = SPMPTT - SPMPEL
7692 SIGDIA = SPMPIN - SPPPIN
7693* | +----------------------------------------------------------------*
7694* | | Charged pions: besides isospin consideration it is supposed
7695* | | that (pi+ n)el is almost equal to (pi- p)el
7696* | | and (pi+ p)el " " " " (pi- n)el
7697* | | and all are almost equal among each others
7698* | | (reasonable above 5 GeV/c)
7699 IF ( ICHRGE (IP) .NE. 0 ) THEN
7700 KHELP = KTARG / 8
7701 JREAC = 3 + IP - 13 + ICHRGE (IP) * KHELP
7702 ACOF = SGTCOE (1,JREAC)
7703 BCOF = SGTCOE (2,JREAC)
7704 ENNE = SGTCOE (3,JREAC)
7705 CCOF = SGTCOE (4,JREAC)
7706 DCOF = SGTCOE (5,JREAC)
7707* | | Compute the total cross section:
7708 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7709 & + DCOF * ALGPLA
7710 JREAC = 19 + IP - 13 + ICHRGE (IP) * KHELP
7711 ACOF = SGTCOE (1,JREAC)
7712 BCOF = SGTCOE (2,JREAC)
7713 ENNE = SGTCOE (3,JREAC)
7714 CCOF = SGTCOE (4,JREAC)
7715 DCOF = SGTCOE (5,JREAC)
7716* | | Compute the elastic cross section:
7717 SHNCEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7718 & + DCOF * ALGPLA
7719* | | Compute the inelastic cross section:
7720 SHNCIN = SHNCTT - SHNCEL
7721* | | Number of diagrams:
7722 NDIAGR = 1 + IP - 13 + ICHRGE (IP) * KHELP
7723* | | Now compute the chain end (anti)quark-(anti)diquark
7724 IQFSC1 = 1 + IP - 13
7725 IQFSC2 = 0
7726 IQBSC1 = 1 + KHELP
7727 IQBSC2 = 1 + IP - 13
7728* | |
7729* | +----------------------------------------------------------------*
7730* | | pi0: besides isospin consideration it is supposed that the
7731* | | elastic cross section is not very different from
7732* | | pi+ p and/or pi- p (reasonable above 5 GeV/c)
7733 ELSE
7734 KHELP = KTARG / 8
7735 K2HLP = ( KP - 23 ) / 3
7736* | | Number of diagrams:
7737* | | For u ubar (k2hlp=0):
7738* NDIAGR = 2 - KHELP
7739* | | For d dbar (k2hlp=1):
7740* NDIAGR = 2 + KHELP - K2HLP
7741 NDIAGR = 2 + KHELP * ( 2 * K2HLP - 1 ) - K2HLP
7742 SHNCIN = HLFHLF * ( SPPPIN + SPMPIN )
7743* | | Now compute the chain end (anti)quark-(anti)diquark
7744 IQFSC1 = 1 + K2HLP
7745 IQFSC2 = 0
7746 IQBSC1 = 1 + KHELP
7747 IQBSC2 = 2 - K2HLP
7748 END IF
7749* | |
7750* | +----------------------------------------------------------------*
7751* | end pi's
7752* +-------------------------------------------------------------------*
7753* | Kaons:
7754 ELSE IF ( IHLP (IP) .EQ. 3 ) THEN
7755 ACOF = SGTCOE (1,6)
7756 BCOF = SGTCOE (2,6)
7757 ENNE = SGTCOE (3,6)
7758 CCOF = SGTCOE (4,6)
7759 DCOF = SGTCOE (5,6)
7760* | Compute the K+ p total cross section:
7761 SKPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7762 & + DCOF * ALGPLA
7763 ACOF = SGTCOE (1,21)
7764 BCOF = SGTCOE (2,21)
7765 ENNE = SGTCOE (3,21)
7766 CCOF = SGTCOE (4,21)
7767 DCOF = SGTCOE (5,21)
7768* | Compute the K+ p elastic cross section:
7769 SKPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7770 & + DCOF * ALGPLA
7771* | Compute the K+ p inelastic cross section:
7772 SKPPIN = SKPPTT - SKPPEL
7773 ACOF = SGTCOE (1,9)
7774 BCOF = SGTCOE (2,9)
7775 ENNE = SGTCOE (3,9)
7776 CCOF = SGTCOE (4,9)
7777 DCOF = SGTCOE (5,9)
7778* | Compute the K- p total cross section:
7779 SKMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7780 & + DCOF * ALGPLA
7781 ACOF = SGTCOE (1,22)
7782 BCOF = SGTCOE (2,22)
7783 ENNE = SGTCOE (3,22)
7784 CCOF = SGTCOE (4,22)
7785 DCOF = SGTCOE (5,22)
7786* | Compute the K- p elastic cross section:
7787 SKMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7788 & + DCOF * ALGPLA
7789* | Compute the K- p inelastic cross section:
7790 SKMPIN = SKMPTT - SKMPEL
7791 SIGDIA = HLFHLF * ( SKMPIN - SKPPIN )
7792* | +----------------------------------------------------------------*
7793* | | Charged Kaons: actually only K-
7794 IF ( ICHRGE (IP) .NE. 0 ) THEN
7795 KHELP = KTARG / 8
7796* | | +-------------------------------------------------------------*
7797* | | | Proton target:
7798 IF ( KHELP .EQ. 0 ) THEN
7799 SHNCIN = SKMPIN
7800* | | | Number of diagrams:
7801 NDIAGR = 2
7802* | | |
7803* | | +-------------------------------------------------------------*
7804* | | | Neutron target: besides isospin consideration it is supposed
7805* | | | that (K- n)el is almost equal to (K- p)el
7806* | | | (reasonable above 5 GeV/c)
7807 ELSE
7808 ACOF = SGTCOE (1,10)
7809 BCOF = SGTCOE (2,10)
7810 ENNE = SGTCOE (3,10)
7811 CCOF = SGTCOE (4,10)
7812 DCOF = SGTCOE (5,10)
7813* | | | Compute the total cross section:
7814 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7815 & + DCOF * ALGPLA
7816* | | | Compute the elastic cross section:
7817 SHNCEL = SKMPEL
7818* | | | Compute the inelastic cross section:
7819 SHNCIN = SHNCTT - SHNCEL
7820* | | | Number of diagrams:
7821 NDIAGR = 1
7822 END IF
7823* | | |
7824* | | +-------------------------------------------------------------*
7825* | | Now compute the chain end (anti)quark-(anti)diquark
7826 IQFSC1 = 3
7827 IQFSC2 = 0
7828 IQBSC1 = 1 + KHELP
7829 IQBSC2 = 2
7830* | |
7831* | +----------------------------------------------------------------*
7832* | | K0's: (actually only K0bar)
7833 ELSE
7834 KHELP = KTARG / 8
7835* | | +-------------------------------------------------------------*
7836* | | | Proton target: (K0bar p)in supposed to be given by
7837* | | | (K- p)in - Sig_diagr
7838 IF ( KHELP .EQ. 0 ) THEN
7839 SHNCIN = SKMPIN - SIGDIA
7840* | | | Number of diagrams:
7841 NDIAGR = 1
7842* | | |
7843* | | +-------------------------------------------------------------*
7844* | | | Neutron target: (K0bar n)in supposed to be given by
7845* | | | (K- n)in + Sig_diagr
7846* | | | besides isospin consideration it is supposed
7847* | | | that (K- n)el is almost equal to (K- p)el
7848* | | | (reasonable above 5 GeV/c)
7849 ELSE
7850 ACOF = SGTCOE (1,10)
7851 BCOF = SGTCOE (2,10)
7852 ENNE = SGTCOE (3,10)
7853 CCOF = SGTCOE (4,10)
7854 DCOF = SGTCOE (5,10)
7855* | | | Compute the total cross section:
7856 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7857 & + DCOF * ALGPLA
7858* | | | Compute the elastic cross section:
7859 SHNCEL = SKMPEL
7860* | | | Compute the inelastic cross section:
7861 SHNCIN = SHNCTT - SHNCEL + SIGDIA
7862* | | | Number of diagrams:
7863 NDIAGR = 2
7864 END IF
7865* | | |
7866* | | +-------------------------------------------------------------*
7867* | | Now compute the chain end (anti)quark-(anti)diquark
7868 IQFSC1 = 3
7869 IQFSC2 = 0
7870 IQBSC1 = 1
7871 IQBSC2 = 1 + KHELP
7872 END IF
7873* | |
7874* | +----------------------------------------------------------------*
7875* | end Kaon's
7876* +-------------------------------------------------------------------*
7877* | Antinucleons:
7878 ELSE IF ( IHLP (IP) .EQ. 4 .AND. IP .LE. 9 ) THEN
7879* | For momenta between 3 and 5 GeV/c the use of tabulated data
7880* | should be implemented!
7881 ACOF = SGTCOE (1,15)
7882 BCOF = SGTCOE (2,15)
7883 ENNE = SGTCOE (3,15)
7884 CCOF = SGTCOE (4,15)
7885 DCOF = SGTCOE (5,15)
7886* | Compute the pbar p total cross section:
7887 SAPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7888 & + DCOF * ALGPLA
7889 IF ( PLA .LT. FIVFIV ) THEN
7890 JREAC = 26
7891 ELSE
7892 JREAC = 25
7893 END IF
7894 ACOF = SGTCOE (1,JREAC)
7895 BCOF = SGTCOE (2,JREAC)
7896 ENNE = SGTCOE (3,JREAC)
7897 CCOF = SGTCOE (4,JREAC)
7898 DCOF = SGTCOE (5,JREAC)
7899* | Compute the pbar p elastic cross section:
7900 SAPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7901 & + DCOF * ALGPLA
7902* | Compute the pbar p inelastic cross section:
7903 SAPPIN = SAPPTT - SAPPEL
7904 ACOF = SGTCOE (1,12)
7905 BCOF = SGTCOE (2,12)
7906 ENNE = SGTCOE (3,12)
7907 CCOF = SGTCOE (4,12)
7908 DCOF = SGTCOE (5,12)
7909* | Compute the p p total cross section:
7910 SPPTOT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7911 & + DCOF * ALGPLA
7912 ACOF = SGTCOE (1,23)
7913 BCOF = SGTCOE (2,23)
7914 ENNE = SGTCOE (3,23)
7915 CCOF = SGTCOE (4,23)
7916 DCOF = SGTCOE (5,23)
7917* | Compute the p p elastic cross section:
7918 SPPELA = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7919 & + DCOF * ALGPLA
7920* | Compute the K- p inelastic cross section:
7921 SPPINE = SPPTOT - SPPELA
7922 SIGDIA = ( SAPPIN - SPPINE ) / FIVFIV
7923 KHELP = KTARG / 8
7924* | +----------------------------------------------------------------*
7925* | | Pbar:
7926 IF ( ICHRGE (IP) .NE. 0 ) THEN
7927 NDIAGR = 5 - KHELP
7928* | | +-------------------------------------------------------------*
7929* | | | Proton target:
7930 IF ( KHELP .EQ. 0 ) THEN
7931* | | | Number of diagrams:
7932 SHNCIN = SAPPIN
7933 PUUBAR = 0.8D+00
7934* | | |
7935* | | +-------------------------------------------------------------*
7936* | | | Neutron target: it is supposed that (ap n)el is almost equal
7937* | | | to (ap p)el (reasonable above 5 GeV/c)
7938 ELSE
7939 ACOF = SGTCOE (1,16)
7940 BCOF = SGTCOE (2,16)
7941 ENNE = SGTCOE (3,16)
7942 CCOF = SGTCOE (4,16)
7943 DCOF = SGTCOE (5,16)
7944* | | | Compute the total cross section:
7945 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7946 & + DCOF * ALGPLA
7947* | | | Compute the elastic cross section:
7948 SHNCEL = SAPPEL
7949* | | | Compute the inelastic cross section:
7950 SHNCIN = SHNCTT - SHNCEL
7951 PUUBAR = HLFHLF
7952 END IF
7953* | | |
7954* | | +-------------------------------------------------------------*
7955* | | Now compute the chain end (anti)quark-(anti)diquark
7956* | | there are different possibilities, make a random choiche:
7957 IQFSC1 = -1
7958 RNCHEN = DT_RNDM(PUUBAR)
7959 IF ( RNCHEN .LT. PUUBAR ) THEN
7960 IQFSC2 = -2
7961 ELSE
7962 IQFSC2 = -1
7963 END IF
7964 IQBSC1 = -IQFSC1 + KHELP
7965 IQBSC2 = -IQFSC2
7966* | |
7967* | +----------------------------------------------------------------*
7968* | | nbar:
7969 ELSE
7970 NDIAGR = 4 + KHELP
7971* | | +-------------------------------------------------------------*
7972* | | | Proton target: (nbar p)in supposed to be given by
7973* | | | (pbar p)in - Sig_diagr
7974 IF ( KHELP .EQ. 0 ) THEN
7975 SHNCIN = SAPPIN - SIGDIA
7976 PDDBAR = HLFHLF
7977* | | |
7978* | | +-------------------------------------------------------------*
7979* | | | Neutron target: (nbar n)el is supposed to be equal to
7980* | | | (pbar p)el (reasonable above 5 GeV/c)
7981 ELSE
7982* | | | Compute the total cross section:
7983 SHNCTT = SAPPTT
7984* | | | Compute the elastic cross section:
7985 SHNCEL = SAPPEL
7986* | | | Compute the inelastic cross section:
7987 SHNCIN = SHNCTT - SHNCEL
7988 PDDBAR = 0.8D+00
7989 END IF
7990* | | |
7991* | | +-------------------------------------------------------------*
7992* | | Now compute the chain end (anti)quark-(anti)diquark
7993* | | there are different possibilities, make a random choiche:
7994 IQFSC1 = -2
7995 RNCHEN = DT_RNDM(RNCHEN)
7996 IF ( RNCHEN .LT. PDDBAR ) THEN
7997 IQFSC2 = -1
7998 ELSE
7999 IQFSC2 = -2
8000 END IF
8001 IQBSC1 = -IQFSC1 + KHELP - 1
8002 IQBSC2 = -IQFSC2
8003 END IF
8004* | |
8005* | +----------------------------------------------------------------*
8006* |
8007* +-------------------------------------------------------------------*
8008* | Others: not yet implemented
8009 ELSE
8010 SIGDIA = ZERZER
8011 SHNCIN = ONEONE
8012 NDIAGR = 0
8013 DT_PHNSCH = ZERZER
8014 RETURN
8015 END IF
8016* | end others
8017* +-------------------------------------------------------------------*
8018 DT_PHNSCH = NDIAGR * SIGDIA / SHNCIN
8019 IQECHC = IQECHR (IQFSC1) + IQECHR (IQFSC2) + IQECHR (IQBSC1)
8020 & + IQECHR (IQBSC2)
8021 IQBCHC = IQBCHR (IQFSC1) + IQBCHR (IQFSC2) + IQBCHR (IQBSC1)
8022 & + IQBCHR (IQBSC2)
8023 IQECHC = IQECHC / 3
8024 IQBCHC = IQBCHC / 3
8025 IQSCHC = IQSCHR (IQFSC1) + IQSCHR (IQFSC2) + IQSCHR (IQBSC1)
8026 & + IQSCHR (IQBSC2)
8027 IQSPRO = IQSCHR (MQUARK(1,IP)) + IQSCHR (MQUARK(2,IP))
8028 & + IQSCHR (MQUARK(3,IP))
8029* +-------------------------------------------------------------------*
8030* | Consistency check:
8031 IF ( DT_PHNSCH .LE. ZERZER .OR. DT_PHNSCH .GT. ONEONE ) THEN
8032 WRITE (LUNOUT,*)' *** Phnsch,kp,ktarg,pla',
8033 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8034 WRITE (LUNERR,*)' *** Phnsch,kp,ktarg,pla',
8035 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8036 DT_PHNSCH = MAX ( DT_PHNSCH, ZERZER )
8037 DT_PHNSCH = MIN ( DT_PHNSCH, ONEONE )
8038 END IF
8039* |
8040* +-------------------------------------------------------------------*
8041* +-------------------------------------------------------------------*
8042* | Consistency check:
8043 IF ( IQSPRO .NE. IQSCHC .OR. ICHRGE (IP) + ICHRGE (KTARG)
8044 & .NE. IQECHC .OR. IIBAR (KP) + IIBAR (KTARG) .NE. IQBCHC) THEN
8045 WRITE (LUNOUT,*)
8046 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8047 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8048 WRITE (LUNERR,*)
8049 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8050 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8051 END IF
8052* |
8053* +-------------------------------------------------------------------*
8054* P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
8055 IF ( UMORAT .GT. ONEPLS )
8056 & DT_PHNSCH = ONEONE / ( ( ONEONE / DT_PHNSCH
8057 & - ONEONE ) * UMORAT + ONEONE )
8058 RETURN
8059*
8060 ENTRY DT_SCHQUA ( JQFSC1, JQFSC2, JQBSC1, JQBSC2 )
8061 DT_SCHQUA = ONEONE
8062 JQFSC1 = IQFSC1
8063 JQFSC2 = IQFSC2
8064 JQBSC1 = IQBSC1
8065 JQBSC2 = IQBSC2
8066*=== End of function Phnsch ===========================================*
8067 RETURN
8068 END
8069
8070*$ CREATE DT_RESPT.FOR
8071*COPY DT_RESPT
8072*
8073*===respt==============================================================*
8074*
8075 SUBROUTINE DT_RESPT
8076
8077************************************************************************
8078* Check DTEVT1 for two-resonance systems and sample intrinsic p_t. *
8079* This version dated 18.01.95 is written by S. Roesler *
8080************************************************************************
8081
8082 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8083 SAVE
8084 PARAMETER ( LINP = 10 ,
8085 & LOUT = 6 ,
8086 & LDAT = 9 )
8087 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8088
8089* event history
8090 PARAMETER (NMXHKK=200000)
8091 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8092 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8093 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8094* extended event history
8095 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8096 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8097 & IHIST(2,NMXHKK)
8098
8099* get index of first chain
8100 DO 1 I=NPOINT(3),NHKK
8101 IF (IDHKK(I).EQ.88888) THEN
8102 NC = I
8103 GOTO 2
8104 ENDIF
8105 1 CONTINUE
8106
8107 2 CONTINUE
8108 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)) THEN
8109C WRITE(LOUT,*)NC,NC+3,IDRES(NC),IDRES(NC+3)
8110* skip VV-,SS- systems
8111 IF ((IDCH(NC ).NE.1).AND.(IDCH(NC ).NE.8).AND.
8112 & (IDCH(NC+3).NE.1).AND.(IDCH(NC+3).NE.8)) THEN
8113* check if both "chains" are resonances
8114 IF ((IDRES(NC).NE.0).AND.(IDRES(NC+3).NE.0)) THEN
8115 CALL DT_SAPTRE(NC,NC+3)
8116 ENDIF
8117 ENDIF
8118 ELSE
8119 GOTO 3
8120 ENDIF
8121 NC = NC+6
8122 GOTO 2
8123
8124 3 CONTINUE
8125
8126 RETURN
8127 END
8128
8129*$ CREATE DT_EVTRES.FOR
8130*COPY DT_EVTRES
8131*
8132*===evtres=============================================================*
8133*
8134 SUBROUTINE DT_EVTRES(IREJ)
8135
8136************************************************************************
8137* This version dated 14.12.94 is written by S. Roesler *
8138************************************************************************
8139
8140 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8141 SAVE
8142 PARAMETER ( LINP = 10 ,
8143 & LOUT = 6 ,
8144 & LDAT = 9 )
8145 PARAMETER (TINY5=1.0D-5,TINY10=1.0D-10)
8146
8147* event history
8148 PARAMETER (NMXHKK=200000)
8149 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8150 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8151 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8152* extended event history
8153 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8154 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8155 & IHIST(2,NMXHKK)
8156* flags for input different options
8157 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8158 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8159 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8160* particle properties (BAMJET index convention)
8161 CHARACTER*8 ANAME
8162 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
8163 & IICH(210),IIBAR(210),K1(210),K2(210)
8164
8165 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),IFP(2),IFT(2)
8166
8167 IREJ = 0
8168
8169 DO 1 I=NPOINT(3),NHKK
8170 IF (ABS(IDRES(I)).GE.100) THEN
8171 AMMX = 0.0D0
8172 DO 2 J=NPOINT(3),NHKK
8173 IF (IDHKK(J).EQ.88888) THEN
8174 IF (PHKK(5,J).GT.AMMX) THEN
8175 AMMX = PHKK(5,J)
8176 IMMX = J
8177 ENDIF
8178 ENDIF
8179 2 CONTINUE
8180 IF (IDRES(IMMX).NE.0) THEN
8181 IF (IOULEV(3).GT.0) THEN
8182 WRITE(LOUT,'(1X,A)')
8183 & 'EVTRES: no chain for correc. found'
8184C GOTO 6
8185 GOTO 9999
8186 ELSE
8187 GOTO 9999
8188 ENDIF
8189 ENDIF
8190 IMO11 = JMOHKK(1,I)
8191 IMO12 = JMOHKK(2,I)
8192 IF (PHKK(3,IMO11).LT.0.0D0) THEN
8193 IMO11 = JMOHKK(2,I)
8194 IMO12 = JMOHKK(1,I)
8195 ENDIF
8196 IMO21 = JMOHKK(1,IMMX)
8197 IMO22 = JMOHKK(2,IMMX)
8198 IF (PHKK(3,IMO21).LT.0.0D0) THEN
8199 IMO21 = JMOHKK(2,IMMX)
8200 IMO22 = JMOHKK(1,IMMX)
8201 ENDIF
8202 AMCH1 = PHKK(5,I)
8203 AMCH1N = AAM(IDXRES(I))
8204
8205 IFPR1 = IDHKK(IMO11)
8206 IFPR2 = IDHKK(IMO21)
8207 IFTA1 = IDHKK(IMO12)
8208 IFTA2 = IDHKK(IMO22)
8209 DO 4 J=1,4
8210 PP1(J) = PHKK(J,IMO11)
8211 PP2(J) = PHKK(J,IMO21)
8212 PT1(J) = PHKK(J,IMO12)
8213 PT2(J) = PHKK(J,IMO22)
8214 4 CONTINUE
8215* store initial configuration for energy-momentum cons. check
8216 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IREJ1)
8217* correct kinematics of second chain
8218 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
8219 & AMCH1,AMCH1N,AMCH2,IREJ1)
8220 IF (IREJ1.NE.0) GOTO 9999
8221* check now this chain for resonance mass
8222 IFP(1) = IDT_IPDG2B(IFPR2,1,2)
8223 IFP(2) = 0
8224 IF (ABS(IFPR2).GE.1000) IFP(2) = IDT_IPDG2B(IFPR2,2,2)
8225 IFT(1) = IDT_IPDG2B(IFTA2,1,2)
8226 IFT(2) = 0
8227 IF (ABS(IFTA2).GE.1000) IFT(2) = IDT_IPDG2B(IFTA2,2,2)
8228 IDCH2 = 2
8229 IF ((IFP(2).EQ.0).AND.(IFT(2).EQ.0)) IDCH2 = 1
8230 IF ((IFP(2).NE.0).AND.(IFT(2).NE.0)) IDCH2 = 3
8231 CALL DT_CH2RES(IFP(1),IFP(2),IFT(1),IFT(2),IDR2,IDXR2,
8232 & AMCH2,AMCH2N,IDCH2,IREJ1)
8233 IF ((IREJ1.NE.0).OR.(IDR2.NE.0)) THEN
8234 IF (IOULEV(1).GT.0)
8235 & WRITE(LOUT,*) ' correction for resonance not poss.'
8236**sr test
8237C GOTO 1
8238C GOTO 9999
8239**
8240 ENDIF
8241* store final configuration for energy-momentum cons. check
8242 IF (LEMCCK) THEN
8243 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IREJ1)
8244 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
8245 IF (IREJ1.NE.0) GOTO 9999
8246 ENDIF
8247 DO 5 J=1,4
8248 PHKK(J,IMO11) = PP1(J)
8249 PHKK(J,IMO21) = PP2(J)
8250 PHKK(J,IMO12) = PT1(J)
8251 PHKK(J,IMO22) = PT2(J)
8252 5 CONTINUE
8253* correct entries of chains
8254 DO 3 K=1,4
8255 PHKK(K,I) = PHKK(K,IMO11)+PHKK(K,IMO12)
8256 PHKK(K,IMMX) = PHKK(K,IMO21)+PHKK(K,IMO22)
8257 3 CONTINUE
8258 AM1 = PHKK(4,I)**2-PHKK(1,I)**2-PHKK(2,I)**2-PHKK(3,I)**2
8259 AM2 = PHKK(4,IMMX)**2-PHKK(1,IMMX)**2-PHKK(2,IMMX)**2-
8260 & PHKK(3,IMMX)**2
8261* ?? the following should now be obsolete
8262**sr test
8263C IF ((AM1.LT.0.0D0).OR.(AM2.LT.1.0D0)) THEN
8264 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8265**
8266 WRITE(LOUT,'(1X,A,4G10.3)')
8267 & 'EVTRES: inonsistent mass-corr.',AM1,AM2
8268C GOTO 9999
8269 GOTO 1
8270 ENDIF
8271 PHKK(5,I) = SQRT(AM1)
8272 PHKK(5,IMMX) = SQRT(AM2)
8273 IDRES(I) = IDRES(I)/100
8274 IF ((ABS(PHKK(5,I)-AMCH1N).GT.TINY5).OR.
8275 & (ABS(PHKK(5,IMMX)-AMCH2).GT.TINY5)) THEN
8276 WRITE(LOUT,'(1X,A,4G10.3)')
8277 & 'EVTRES: inconsistent chain-masses',
8278 & PHKK(5,I),AMCH1N,PHKK(5,IMMX),AMCH2
8279 GOTO 9999
8280 ENDIF
8281 ENDIF
8282 1 CONTINUE
8283 6 CONTINUE
8284 RETURN
8285
8286 9999 CONTINUE
8287 IREJ = 1
8288 RETURN
8289 END
8290
8291*$ CREATE DT_GETSPT.FOR
8292*COPY DT_GETSPT
8293*
8294*===getspt=============================================================*
8295*
8296 SUBROUTINE DT_GETSPT(PP1I,IFPR1,IFP1,PP2I,IFPR2,IFP2,
8297 & PT1I,IFTA1,IFT1,PT2I,IFTA2,IFT2,
8298 & AM1,IDCH1,AM2,IDCH2,IDCHAI,IREJ)
8299
8300************************************************************************
8301* This version dated 12.12.94 is written by S. Roesler *
8302************************************************************************
8303
8304 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8305 SAVE
8306 PARAMETER ( LINP = 10 ,
8307 & LOUT = 6 ,
8308 & LDAT = 9 )
8309 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,ZERO=0.0D0)
8310
8311* various options for treatment of partons (DTUNUC 1.x)
8312* (chain recombination, Cronin,..)
8313 LOGICAL LCO2CR,LINTPT
8314 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8315 & LCO2CR,LINTPT
8316* flags for input different options
8317 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8318 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8319 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8320* flags for diffractive interactions (DTUNUC 1.x)
8321 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
8322
8323 DIMENSION PP1(4),PP1I(4),PP2(4),PP2I(4),PT1(4),PT1I(4),
8324 & PT2(4),PT2I(4),P1(4),P2(4),
8325 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),
8326 & PTOTI(4),PTOTF(4),DIFF(4)
8327
8328 IC = 0
8329 IREJ = 0
8330C B33P = 4.0D0
8331C B33T = 4.0D0
8332C IF ((IDCHAI.EQ.6).OR.(IDCHAI.EQ.7).OR.(IDCHAI.EQ.8)) B33P = 2.0D0
8333C IF ((IDCHAI.EQ.4).OR.(IDCHAI.EQ.5).OR.(IDCHAI.EQ.8)) B33T = 2.0D0
8334 REDU = 1.0D0
8335C B33P = 3.5D0
8336C B33T = 3.5D0
8337 B33P = 4.0D0
8338 B33T = 4.0D0
8339 IF (IDIFF.NE.0) THEN
8340 B33P = 16.0D0
8341 B33T = 16.0D0
8342 ENDIF
8343
8344 DO 1 I=1,4
8345 PTOTI(I) = PP1I(I)+PP2I(I)+PT1I(I)+PT2I(I)
8346 PP1(I) = PP1I(I)
8347 PP2(I) = PP2I(I)
8348 PT1(I) = PT1I(I)
8349 PT2(I) = PT2I(I)
8350 1 CONTINUE
8351* get initial chain masses
8352 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8353 & +(PP1(3)+PT1(3))**2)
8354 ECH = PP1(4)+PT1(4)
8355 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
8356 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8357 & +(PP2(3)+PT2(3))**2)
8358 ECH = PP2(4)+PT2(4)
8359 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
8360 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8361 IF (IOULEV(1).GT.0)
8362 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 1',
8363 & AM1,AM2
8364 GOTO 9999
8365 ENDIF
8366 AM1 = SQRT(AM1)
8367 AM2 = SQRT(AM2)
8368 AM1N = ZERO
8369 AM2N = ZERO
8370
8371 MODE = 0
8372C IF ((AM1.GE.3.0D0).AND.(AM2.GE.3.0D0)) THEN
8373C MODE = 0
8374C ELSE
8375C MODE = 1
8376C IF (AM1.LT.0.6) THEN
8377C B33P = 10.0D0
8378C ELSEIF ((AM1.GE.1.2).AND.(AM1.LT.3.0D0)) THEN
8379CC B33P = 4.0D0
8380C ENDIF
8381C IF (AM2.LT.0.6) THEN
8382C B33T = 10.0D0
8383C ELSEIF ((AM2.GE.1.2).AND.(AM2.LT.3.0D0)) THEN
8384CC B33T = 4.0D0
8385C ENDIF
8386C ENDIF
8387
8388* check chain masses for very low mass chains
8389C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8390C & AM1,DUM,-IDCH1,IREJ1)
8391C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8392C & AM2,DUM,-IDCH2,IREJ2)
8393C IF ((IREJ1.NE.0).OR.(IREJ2.NE.0)) THEN
8394C B33P = 20.0D0
8395C B33T = 20.0D0
8396C ENDIF
8397
8398 JMSHL = IMSHL
8399
8400 2 CONTINUE
8401 IC = IC+1
8402 IF (MOD(IC,15).EQ.0) B33P = 2.0D0*B33P
8403 IF (MOD(IC,15).EQ.0) B33T = 2.0D0*B33T
8404 IF (MOD(IC,18).EQ.0) REDU = 0.0D0
8405C IF (MOD(IC,19).EQ.0) JMSHL = 0
8406 IF (MOD(IC,20).EQ.0) GOTO 7
8407C WRITE(LOUT,'(1X,A)') 'GETSPT: rejection '
8408C RETURN
8409C GOTO 9999
8410C ENDIF
8411
8412* get transverse momentum
8413 IF (LINTPT) THEN
8414 ES = -2.0D0/(B33P**2)
8415 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8416 HPSP = SQRT(ES*ES+2.0D0*ES*0.94D0)
8417 HPSP = HPSP*REDU
8418 ES = -2.0D0/(B33T**2)
8419 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8420 HPST = SQRT(ES*ES+2.0D0*ES*0.94D0)
8421 HPST = HPST*REDU
8422 ELSE
8423 HPSP = ZERO
8424 HPST = ZERO
8425 ENDIF
8426 CALL DT_DSFECF(SFE1,CFE1)
8427 CALL DT_DSFECF(SFE2,CFE2)
8428 IF (MODE.EQ.0) THEN
8429 PP1(1) = PP1I(1)+HPSP*CFE1
8430 PP1(2) = PP1I(2)+HPSP*SFE1
8431 PP2(1) = PP2I(1)-HPSP*CFE1
8432 PP2(2) = PP2I(2)-HPSP*SFE1
8433 PT1(1) = PT1I(1)+HPST*CFE2
8434 PT1(2) = PT1I(2)+HPST*SFE2
8435 PT2(1) = PT2I(1)-HPST*CFE2
8436 PT2(2) = PT2I(2)-HPST*SFE2
8437 ELSE
8438 PP1(1) = PP1I(1)+HPSP*CFE1
8439 PP1(2) = PP1I(2)+HPSP*SFE1
8440 PT1(1) = PT1I(1)-HPSP*CFE1
8441 PT1(2) = PT1I(2)-HPSP*SFE1
8442 PP2(1) = PP2I(1)+HPST*CFE2
8443 PP2(2) = PP2I(2)+HPST*SFE2
8444 PT2(1) = PT2I(1)-HPST*CFE2
8445 PT2(2) = PT2I(2)-HPST*SFE2
8446 ENDIF
8447
8448* put partons on mass shell
8449 XMP1 = 0.0D0
8450 XMT1 = 0.0D0
8451 IF (JMSHL.EQ.1) THEN
8452 XMP1 = PYMASS(IFPR1)
8453 XMT1 = PYMASS(IFTA1)
8454 ENDIF
8455 CALL DT_MASHEL(PP1,PT1,XMP1,XMT1,P1,P2,IREJ1)
8456 IF (IREJ1.NE.0) GOTO 2
8457 DO 3 I=1,4
8458 PTOTF(I) = P1(I)+P2(I)
8459 PP1(I) = P1(I)
8460 PT1(I) = P2(I)
8461 3 CONTINUE
8462 XMP2 = 0.0D0
8463 XMT2 = 0.0D0
8464 IF (JMSHL.EQ.1) THEN
8465 XMP2 = PYMASS(IFPR2)
8466 XMT2 = PYMASS(IFTA2)
8467 ENDIF
8468 CALL DT_MASHEL(PP2,PT2,XMP2,XMT2,P1,P2,IREJ1)
8469 IF (IREJ1.NE.0) GOTO 2
8470 DO 4 I=1,4
8471 PTOTF(I) = PTOTF(I)+P1(I)+P2(I)
8472 PP2(I) = P1(I)
8473 PT2(I) = P2(I)
8474 4 CONTINUE
8475
8476* check consistency
8477 DO 5 I=1,4
8478 DIFF(I) = PTOTI(I)-PTOTF(I)
8479 5 CONTINUE
8480 IF ((ABS(DIFF(1)).GT.TINY5).OR.(ABS(DIFF(2)).GT.TINY5).OR.
8481 & (ABS(DIFF(3)).GT.TINY5).OR.(ABS(DIFF(4)).GT.TINY5)) THEN
8482 WRITE(LOUT,'(1X,A,4G10.3)') 'GETSPT: inconsistencies ',DIFF
8483 GOTO 9999
8484 ENDIF
8485 PTOTP1 = SQRT(PP1(1)**2+PP1(2)**2+PP1(3)**2)
8486 AMP1 = SQRT(ABS( (PP1(4)-PTOTP1)*(PP1(4)+PTOTP1) ))
8487 PTOTP2 = SQRT(PP2(1)**2+PP2(2)**2+PP2(3)**2)
8488 AMP2 = SQRT(ABS( (PP2(4)-PTOTP2)*(PP2(4)+PTOTP2) ))
8489 PTOTT1 = SQRT(PT1(1)**2+PT1(2)**2+PT1(3)**2)
8490 AMT1 = SQRT(ABS( (PT1(4)-PTOTT1)*(PT1(4)+PTOTT1) ))
8491 PTOTT2 = SQRT(PT2(1)**2+PT2(2)**2+PT2(3)**2)
8492 AMT2 = SQRT(ABS( (PT2(4)-PTOTT2)*(PT2(4)+PTOTT2) ))
8493 IF ((ABS(AMP1-XMP1).GT.TINY3).OR.(ABS(AMP2-XMP2).GT.TINY3).OR.
8494 & (ABS(AMT1-XMT1).GT.TINY3).OR.(ABS(AMT2-XMT2).GT.TINY3))
8495 & THEN
8496 WRITE(LOUT,'(1X,A,2(4G10.3,/))')
8497 & 'GETSPT: inconsistent masses',
8498 & AMP1,XMP1,AMP2,XMP2,AMT1,XMT1,AMT2,XMT2
8499* sr 22.11.00: commented. It should only have inconsistent masses for
8500* ultrahigh energies due to rounding problems
8501C GOTO 9999
8502 ENDIF
8503
8504* get chain masses
8505 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8506 & +(PP1(3)+PT1(3))**2)
8507 ECH = PP1(4)+PT1(4)
8508 AM1N = (ECH+PTOCH)*(ECH-PTOCH)
8509 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8510 & +(PP2(3)+PT2(3))**2)
8511 ECH = PP2(4)+PT2(4)
8512 AM2N = (ECH+PTOCH)*(ECH-PTOCH)
8513 IF ((AM1N.LT.0.0D0).OR.(AM2N.LT.0.0D0)) THEN
8514 IF (IOULEV(1).GT.0)
8515 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 2',
8516 & AM1N,AM2N
8517 GOTO 2
8518 ENDIF
8519 AM1N = SQRT(AM1N)
8520 AM2N = SQRT(AM2N)
8521
8522* check chain masses for very low mass chains
8523 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8524 & AM1N,DUM,-IDCH1,IREJ1)
8525 IF (IREJ1.NE.0) GOTO 2
8526 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8527 & AM2N,DUM,-IDCH2,IREJ2)
8528 IF (IREJ2.NE.0) GOTO 2
8529
8530 7 CONTINUE
8531 IF (AM1N.GT.ZERO) THEN
8532 AM1 = AM1N
8533 AM2 = AM2N
8534 ENDIF
8535 DO 6 I=1,4
8536 PP1I(I) = PP1(I)
8537 PP2I(I) = PP2(I)
8538 PT1I(I) = PT1(I)
8539 PT2I(I) = PT2(I)
8540 6 CONTINUE
8541
8542 RETURN
8543
8544 9999 CONTINUE
8545 IREJ = 1
8546 RETURN
8547 END
8548
8549*$ CREATE DT_SAPTRE.FOR
8550*COPY DT_SAPTRE
8551*
8552*===saptre=============================================================*
8553*
8554 SUBROUTINE DT_SAPTRE(IDX1,IDX2)
8555
8556************************************************************************
8557* p-t sampling for two-resonance systems. ("BAMJET-like" method) *
8558* IDX1,IDX2 indices of resonances ("chains") in DTEVT1 *
8559* Adopted from the original SAPTRE written by J. Ranft. *
8560* This version dated 18.01.95 is written by S. Roesler *
8561************************************************************************
8562
8563 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8564 SAVE
8565 PARAMETER ( LINP = 10 ,
8566 & LOUT = 6 ,
8567 & LDAT = 9 )
8568 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8569
8570* event history
8571 PARAMETER (NMXHKK=200000)
8572 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8573 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8574 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8575* extended event history
8576 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8577 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8578 & IHIST(2,NMXHKK)
8579* flags for input different options
8580 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8581 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8582 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8583
8584 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
8585
8586 DATA B3 /4.0D0/
8587
8588 ESMAX1 = PHKK(4,IDX1)-PHKK(5,IDX1)
8589 ESMAX2 = PHKK(4,IDX2)-PHKK(5,IDX2)
8590 ESMAX = MIN(ESMAX1,ESMAX2)
8591 IF (ESMAX.LE.0.05D0) RETURN
8592
8593 HMA = PHKK(5,IDX1)
8594 DO 1 K=1,4
8595 PA1(K) = PHKK(K,IDX1)
8596 PA2(K) = PHKK(K,IDX2)
8597 1 CONTINUE
8598
8599 IF (LEMCCK) THEN
8600 CALL DT_EVTEMC(PA1(1),PA1(2),PA1(3),PA1(4),1,IDUM,IDUM)
8601 CALL DT_EVTEMC(PA2(1),PA2(2),PA2(3),PA2(4),2,IDUM,IDUM)
8602 ENDIF
8603
8604 EXEB = 0.0D0
8605 IF (B3*ESMAX.LE.60.0D0) EXEB = EXP(-B3*ESMAX)
8606 BEXP = HMA*(1.0D0-EXEB)/B3
8607 AXEXP = (1.0D0-(B3*ESMAX-1.0D0)*EXEB)/B3**2
8608 WA = AXEXP/(BEXP+AXEXP)
8609 XAB = DT_RNDM(WA)
8610 10 CONTINUE
8611* ES is the transverse kinetic energy
8612 IF (XAB.LT.WA)THEN
8613 X = DT_RNDM(WA)
8614 Y = DT_RNDM(WA)
8615 ES = -2.0D0/(B3**2)*LOG(X*Y+TINY7)
8616 ELSE
8617 X = DT_RNDM(Y)
8618 ES = ABS(-LOG(X+TINY7)/B3)
8619 ENDIF
8620 IF (ES.GT.ESMAX) GOTO 10
8621 ES = ES+HMA
8622* transverse momentum
8623 HPS = SQRT((ES-HMA)*(ES+HMA))
8624
8625 CALL DT_DSFECF(SFE,CFE)
8626 HPX = HPS*CFE
8627 HPY = HPS*SFE
8628 PZ1NSQ = PA1(3)**2-HPS**2-2.0D0*PA1(1)*HPX-2.0D0*PA1(2)*HPY
8629 PZ2NSQ = PA2(3)**2-HPS**2+2.0D0*PA2(1)*HPX+2.0D0*PA2(2)*HPY
8630 IF ((PZ1NSQ.LT.TINY3).OR.(PZ2NSQ.LT.TINY3)) RETURN
8631
8632C PA1(3) = SIGN(SQRT(PZ1NSQ),PA1(3))
8633C PA2(3) = SIGN(SQRT(PZ2NSQ),PA2(3))
8634 PA1(1) = PA1(1)+HPX
8635 PA1(2) = PA1(2)+HPY
8636 PA2(1) = PA2(1)-HPX
8637 PA2(2) = PA2(2)-HPY
8638
8639* put resonances on mass-shell again
8640 XM1 = PHKK(5,IDX1)
8641 XM2 = PHKK(5,IDX2)
8642 CALL DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ1)
8643 IF (IREJ1.NE.0) RETURN
8644
8645 IF (LEMCCK) THEN
8646 CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,IDUM,IDUM)
8647 CALL DT_EVTEMC(-P2(1),-P2(2),-P2(3),-P2(4),2,IDUM,IDUM)
8648 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,12,IREJ1)
8649 IF (IREJ1.NE.0) RETURN
8650 ENDIF
8651
8652 DO 2 K=1,4
8653 PHKK(K,IDX1) = P1(K)
8654 PHKK(K,IDX2) = P2(K)
8655 2 CONTINUE
8656
8657 RETURN
8658 END
8659
8660*$ CREATE DT_CRONIN.FOR
8661*COPY DT_CRONIN
8662*
8663*===cronin=============================================================*
8664*
8665 SUBROUTINE DT_CRONIN(INCL)
8666
8667************************************************************************
8668* Cronin-Effect. Multiple scattering of partons at chain ends. *
8669* INCL = 1 multiple sc. in projectile *
8670* = 2 multiple sc. in target *
8671* This version dated 05.01.96 is written by S. Roesler. *
8672************************************************************************
8673
8674 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8675 SAVE
8676 PARAMETER ( LINP = 10 ,
8677 & LOUT = 6 ,
8678 & LDAT = 9 )
8679 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8680
8681* event history
8682 PARAMETER (NMXHKK=200000)
8683 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8684 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8685 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8686* extended event history
8687 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8688 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8689 & IHIST(2,NMXHKK)
8690* rejection counter
8691 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8692 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8693 & IREXCI(3),IRDIFF(2),IRINC
8694* Glauber formalism: collision properties
8695 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8696 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8697
8698 DIMENSION R(3),PIN(4),POUT(4),DEV(4)
8699
8700 DO 1 K=1,4
8701 DEV(K) = ZERO
8702 1 CONTINUE
8703
8704 DO 2 I=NPOINT(2),NHKK
8705 IF (ISTHKK(I).LT.0) THEN
8706* get z-position of the chain
8707 R(1) = VHKK(1,I)*1.0D12
8708 IF (INCL.EQ.2) R(1) = VHKK(1,I)*1.0D12-BIMPAC
8709 R(2) = VHKK(2,I)*1.0D12
8710 IDXNU = JMOHKK(1,I)
8711 IF ( (INCL.EQ.1).AND.(ISTHKK(IDXNU).EQ.10) )
8712 & IDXNU = JMOHKK(1,I-1)
8713 IF ( (INCL.EQ.2).AND.(ISTHKK(IDXNU).EQ. 9) )
8714 & IDXNU = JMOHKK(1,I+1)
8715 R(3) = VHKK(3,IDXNU)*1.0D12
8716* position of target parton the chain is connected to
8717 DO 3 K=1,4
8718 PIN(K) = PHKK(K,I)
8719 3 CONTINUE
8720* multiple scattering of parton with DTEVT1-index I
8721 CALL DT_CROMSC(PIN,R,POUT,INCL)
8722**testprint
8723C IF (NEVHKK.EQ.5) THEN
8724C AMIN = PIN(4)**2-PIN(1)**2-PIN(2)**2-PIN(3)**2
8725C AMOU = POUT(4)**2-POUT(1)**2-POUT(2)**2-POUT(3)**2
8726C AMIN = SIGN(SQRT(ABS(AMIN)),AMIN)
8727C AMOU = SIGN(SQRT(ABS(AMOU)),AMOU)
8728C WRITE(6,'(A,I4,2E15.5)')'I,AMIN,AMOU: ',I,AMIN,AMOU
8729C WRITE(6,'(A,4E15.5)')'PIN: ',PIN
8730C WRITE(6,'(A,4E15.5)')'POUT: ',POUT
8731C ENDIF
8732**
8733* increase accumulator by energy-momentum difference
8734 DO 4 K=1,4
8735 DEV(K) = DEV(K)+POUT(K)-PIN(K)
8736 PHKK(K,I) = POUT(K)
8737 4 CONTINUE
8738 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8739 & PHKK(2,I)**2-PHKK(3,I)**2))
8740 ENDIF
8741 2 CONTINUE
8742
8743* dump accumulator to momenta of valence partons
8744 NVAL = 0
8745 ETOT = 0.0D0
8746 DO 5 I=NPOINT(2),NHKK
8747 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8748 NVAL = NVAL+1
8749 ETOT = ETOT+PHKK(4,I)
8750 ENDIF
8751 5 CONTINUE
8752C WRITE(LOUT,1000) NVAL,(DEV(K)/DBLE(NVAL),K=1,4)
8753 1000 FORMAT(1X,'CRONIN : number of val. partons ',I4,/,
8754 & 9X,4E12.4)
8755 DO 6 I=NPOINT(2),NHKK
8756 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8757 E = PHKK(4,I)
8758 DO 7 K=1,4
8759C PHKK(K,I) = PHKK(K,I)-DEV(K)/DBLE(NVAL)
8760 PHKK(K,I) = PHKK(K,I)-DEV(K)*E/ETOT
8761 7 CONTINUE
8762 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8763 & PHKK(2,I)**2-PHKK(3,I)**2))
8764 ENDIF
8765 6 CONTINUE
8766
8767 RETURN
8768 END
8769
8770*$ CREATE DT_CROMSC.FOR
8771*COPY DT_CROMSC
8772*
8773*===cromsc=============================================================*
8774*
8775 SUBROUTINE DT_CROMSC(PIN,R,POUT,INCL)
8776
8777************************************************************************
8778* Cronin-Effect. Multiple scattering of one parton passing through *
8779* nuclear matter. *
8780* PIN(4) input 4-momentum of parton *
8781* POUT(4) 4-momentum of parton after mult. scatt. *
8782* R(3) spatial position of parton in target nucleus *
8783* INCL = 1 multiple sc. in projectile *
8784* = 2 multiple sc. in target *
8785* This is a revised version of the original version written by J. Ranft*
8786* This version dated 17.01.95 is written by S. Roesler. *
8787************************************************************************
8788
8789 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8790 SAVE
8791 PARAMETER ( LINP = 10 ,
8792 & LOUT = 6 ,
8793 & LDAT = 9 )
8794 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8795
8796 LOGICAL LSTART
8797
8798* rejection counter
8799 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8800 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8801 & IREXCI(3),IRDIFF(2),IRINC
8802* Glauber formalism: collision properties
8803 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8804 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8805* various options for treatment of partons (DTUNUC 1.x)
8806* (chain recombination, Cronin,..)
8807 LOGICAL LCO2CR,LINTPT
8808 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8809 & LCO2CR,LINTPT
8810
8811 DIMENSION PIN(4),POUT(4),R(3)
8812
8813 DATA LSTART /.TRUE./
8814
8815 IRCRON(1) = IRCRON(1)+1
8816
8817 IF (LSTART) THEN
8818 WRITE(LOUT,1000) CRONCO
8819 1000 FORMAT(/,1X,'CROMSC: multiple scattering of chain ends',
8820 & ' treated',/,10X,'with parameter CRONCO = ',F5.2)
8821 LSTART = .FALSE.
8822 ENDIF
8823
8824 NCBACK = 0
8825 RNCL = RPROJ
8826 IF (INCL.EQ.2) RNCL = RTARG
8827
8828* Lorentz-transformation into Lab.
8829 MODE = -(INCL+1)
8830 CALL DT_LTNUC(PIN(3),PIN(4),PZ,PE,MODE)
8831
8832 PTOT = SQRT(PIN(1)**2+PIN(2)**2+PZ**2)
8833 IF (PTOT.LE.8.0D0) GOTO 9997
8834
8835* direction cosines of parton before mult. scattering
8836 COSX = PIN(1)/PTOT
8837 COSY = PIN(2)/PTOT
8838 COSZ = PZ/PTOT
8839
8840 RTESQ = R(1)**2+R(2)**2+R(3)**2-RNCL**2
8841 IF (RTESQ.GE.-TINY3) GOTO 9999
8842
8843* calculate distance (DIST) from R to surface of nucleus (radius RNCL)
8844* in the direction of particle motion
8845
8846 A = COSX*R(1)+COSY*R(2)+COSZ*R(3)
8847 TMP = A**2-RTESQ
8848 IF (TMP.LT.ZERO) GOTO 9998
8849 DIST = -A+SQRT(TMP)
8850
8851* multiple scattering angle
8852 THETO = CRONCO*SQRT(DIST)/PTOT
8853 IF (THETO.GT.0.1D0) THETO=0.1D0
8854
8855 1 CONTINUE
8856* Gaussian sampling of spatial angle
8857 CALL DT_RANNOR(R1,R2)
8858 THETA = ABS(R1*THETO)
8859 IF (THETA.GT.0.3D0) GOTO 9997
8860 CALL DT_DSFECF(SFE,CFE)
8861 COSTH = COS(THETA)
8862 SINTH = SIN(THETA)
8863
8864* new direction cosines
8865 CALL DT_MYTRAN(1,COSX,COSY,COSZ,COSTH,SINTH,SFE,CFE,
8866 & COSXN,COSYN,COSZN)
8867
8868 POUT(1) = COSXN*PTOT
8869 POUT(2) = COSYN*PTOT
8870 PZ = COSZN*PTOT
8871* Lorentz-transformation into nucl.-nucl. cms
8872 MODE = INCL+1
8873 CALL DT_LTNUC(PZ,PE,POUT(3),POUT(4),MODE)
8874
8875C IF (ABS(PIN(4)-POUT(4)).GT.0.2D0) THEN
8876C IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.1D0 ) THEN
8877 IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.05D0 ) THEN
8878 THETO = THETO/2.0D0
8879 NCBACK = NCBACK+1
8880 IF (MOD(NCBACK,200).EQ.0) THEN
8881 WRITE(LOUT,1001) THETO,PIN,POUT
8882 1001 FORMAT(1X,'CROMSC: inconsistent scattering angle ',
8883 & E12.4,/,1X,' PIN :',4E12.4,/,
8884 & 1X,' POUT:',4E12.4)
8885 GOTO 9997
8886 ENDIF
8887 GOTO 1
8888 ENDIF
8889
8890 RETURN
8891
8892 9997 IRCRON(2) = IRCRON(2)+1
8893 GOTO 9999
8894 9998 IRCRON(3) = IRCRON(3)+1
8895
8896 9999 CONTINUE
8897 DO 100 K=1,4
8898 POUT(K) = PIN(K)
8899 100 CONTINUE
8900 RETURN
8901 END
8902
8903*$ CREATE DT_COM2CR.FOR
8904*COPY DT_COM2CR
8905*
8906*===com2sr=============================================================*
8907*
8908 SUBROUTINE DT_COM2CR
8909
8910************************************************************************
8911* COMbine q-aq chains to Color Ropes (qq-aqaq). *
8912* CUTOF parameter determining minimum number of not *
8913* combined q-aq chains *
8914* This subroutine replaces KKEVCC etc. *
8915* This version dated 11.01.95 is written by S. Roesler. *
8916************************************************************************
8917
8918 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8919 SAVE
8920 PARAMETER ( LINP = 10 ,
8921 & LOUT = 6 ,
8922 & LDAT = 9 )
8923
8924* event history
8925 PARAMETER (NMXHKK=200000)
8926 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8927 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8928 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8929* extended event history
8930 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8931 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8932 & IHIST(2,NMXHKK)
8933* statistics
8934 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
8935 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
8936 & ICEVTG(8,0:30)
8937* various options for treatment of partons (DTUNUC 1.x)
8938* (chain recombination, Cronin,..)
8939 LOGICAL LCO2CR,LINTPT
8940 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8941 & LCO2CR,LINTPT
8942
8943 DIMENSION IDXQA(248),IDXAQ(248)
8944
8945 ICCHAI(1,9) = ICCHAI(1,9)+1
8946 NQA = 0
8947 NAQ = 0
8948* scan DTEVT1 for q-aq, aq-q chains
8949 DO 10 I=NPOINT(3),NHKK
8950* skip "chains" which are resonances
8951 IF ((IDHKK(I).EQ.88888).AND.(IDRES(I).EQ.0)) THEN
8952 MO1 = JMOHKK(1,I)
8953 MO2 = JMOHKK(2,I)
8954 IF ((ABS(IDHKK(MO1)).LE.6).AND.(ABS(IDHKK(MO2)).LE.6)) THEN
8955* q-aq, aq-q chain found, keep index
8956 IF (IDHKK(MO1).GT.0) THEN
8957 NQA = NQA+1
8958 IDXQA(NQA) = I
8959 ELSE
8960 NAQ = NAQ+1
8961 IDXAQ(NAQ) = I
8962 ENDIF
8963 ENDIF
8964 ENDIF
8965 10 CONTINUE
8966
8967* minimum number of q-aq chains requested for the same projectile/
8968* target
8969 NCHMIN = IDT_NPOISS(CUTOF)
8970
8971* combine q-aq chains of the same projectile
8972 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,1)
8973* combine q-aq chains of the same target
8974 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,2)
8975* combine aq-q chains of the same projectile
8976 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,1)
8977* combine aq-q chains of the same target
8978 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,2)
8979
8980 RETURN
8981 END
8982
8983*$ CREATE DT_SCN4CR.FOR
8984*COPY DT_SCN4CR
8985*
8986*===scn4cr=============================================================*
8987*
8988 SUBROUTINE DT_SCN4CR(NCH,IDXCH,NCHMIN,MODE)
8989
8990************************************************************************
8991* SCan q-aq chains for Color Ropes. *
8992* This version dated 11.01.95 is written by S. Roesler. *
8993************************************************************************
8994
8995 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8996 SAVE
8997 PARAMETER ( LINP = 10 ,
8998 & LOUT = 6 ,
8999 & LDAT = 9 )
9000
9001* event history
9002 PARAMETER (NMXHKK=200000)
9003 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9004 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9005 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9006* extended event history
9007 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9008 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9009 & IHIST(2,NMXHKK)
9010
9011 DIMENSION IDXCH(248),IDXJN(248)
9012
9013 DO 1 I=1,NCH
9014 IF (IDXCH(I).GT.0) THEN
9015 NJOIN = 1
9016 IDXMO = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(I))))
9017 IDXJN(NJOIN) = I
9018 IF (I.LT.NCH) THEN
9019 DO 2 J=I+1,NCH
9020 IF (IDXCH(J).GT.0) THEN
9021 IDXMO1 = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(J))))
9022 IF (IDXMO.EQ.IDXMO1) THEN
9023 NJOIN = NJOIN+1
9024 IDXJN(NJOIN) = J
9025 ENDIF
9026 ENDIF
9027 2 CONTINUE
9028 ENDIF
9029 IF (NJOIN.GE.NCHMIN+2) THEN
9030 NJ = INT(DBLE(NJOIN-NCHMIN)/2.0D0)
9031 DO 3 J=1,2*NJ,2
9032 CALL DT_JOIN(IDXCH(IDXJN(J)),IDXCH(IDXJN(J+1)),IREJ1)
9033 IF (IREJ1.NE.0) GOTO 3
9034 IDXCH(IDXJN(J)) = 0
9035 IDXCH(IDXJN(J+1)) = 0
9036 3 CONTINUE
9037 ENDIF
9038 ENDIF
9039 1 CONTINUE
9040
9041 RETURN
9042 END
9043
9044*$ CREATE DT_JOIN.FOR
9045*COPY DT_JOIN
9046*
9047*===join===============================================================*
9048*
9049 SUBROUTINE DT_JOIN(IDX1,IDX2,IREJ)
9050
9051************************************************************************
9052* This subroutine joins two q-aq chains to one qq-aqaq chain. *
9053* IDX1, IDX2 DTEVT1 indices of chains to be joined *
9054* This version dated 11.01.95 is written by S. Roesler. *
9055************************************************************************
9056
9057 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9058 SAVE
9059 PARAMETER ( LINP = 10 ,
9060 & LOUT = 6 ,
9061 & LDAT = 9 )
9062
9063* event history
9064 PARAMETER (NMXHKK=200000)
9065 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9066 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9067 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9068* extended event history
9069 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9070 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9071 & IHIST(2,NMXHKK)
9072* flags for input different options
9073 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
9074 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
9075 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
9076* statistics
9077 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
9078 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
9079 & ICEVTG(8,0:30)
9080
9081 DIMENSION MO(2,2),ID(2,2),IDX(2),PCH(4),PP(4),PT(4),P1(4),P2(4)
9082
9083 IREJ = 0
9084
9085 IDX(1) = IDX1
9086 IDX(2) = IDX2
9087 DO 1 I=1,2
9088 DO 2 J=1,2
9089 MO(I,J) = JMOHKK(J,IDX(I))
9090 ID(I,J) = IDT_IPDG2B(IDHKK(MO(I,J)),1,2)
9091 2 CONTINUE
9092 1 CONTINUE
9093
9094* check consistency
9095 IF ((ABS(ID(1,1)).GT.6).OR.(ABS(ID(1,2)).GT.6).OR.
9096 & (ABS(ID(2,1)).GT.6).OR.(ABS(ID(2,2)).GT.6).OR.
9097 & ((ID(1,1)*ID(2,1)).LT.0).OR.
9098 & ((ID(1,2)*ID(2,2)).LT.0)) THEN
9099 WRITE(LOUT,1000) IDX(1),MO(1,1),MO(1,2),IDX(2),MO(2,1),
9100 & MO(2,2)
9101 1000 FORMAT(1X,'JOIN: incons. chain system! chain ',I4,':',
9102 & 2I5,' chain ',I4,':',2I5)
9103 ENDIF
9104
9105* join chains
9106 DO 3 K=1,4
9107 PP(K) = PHKK(K,MO(1,1))+PHKK(K,MO(2,1))
9108 PT(K) = PHKK(K,MO(1,2))+PHKK(K,MO(2,2))
9109 3 CONTINUE
9110 IF1 = IDT_IB2PDG(ID(1,1),ID(2,1),2)
9111 IF2 = IDT_IB2PDG(ID(1,2),ID(2,2),2)
9112 IST1 = ISTHKK(MO(1,1))
9113 IST2 = ISTHKK(MO(1,2))
9114
9115* put partons again on mass shell
9116 XM1 = 0.0D0
9117 XM2 = 0.0D0
9118 IF (IMSHL.EQ.1) THEN
9119 XM1 = PYMASS(IF1)
9120 XM2 = PYMASS(IF2)
9121 ENDIF
9122 CALL DT_MASHEL(PP,PT,XM1,XM2,P1,P2,IREJ1)
9123 IF (IREJ1.NE.0) GOTO 9999
9124 DO 4 I=1,4
9125 PP(I) = P1(I)
9126 PT(I) = P2(I)
9127 4 CONTINUE
9128
9129* store new partons in DTEVT1
9130 CALL DT_EVTPUT(IST1,IF1,MO(1,1),MO(2,1),PP(1),PP(2),PP(3),PP(4),
9131 & 0,0,0)
9132 CALL DT_EVTPUT(IST2,IF2,MO(1,2),MO(2,2),PT(1),PT(2),PT(3),PT(4),
9133 & 0,0,0)
9134 DO 5 K=1,4
9135 PCH(K) = PP(K)+PT(K)
9136 5 CONTINUE
9137
9138* check new chain for lower mass limit
9139 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
9140 AMCH = SQRT(ABS(PCH(4)**2-PCH(1)**2-PCH(2)**2-PCH(3)**2))
9141 CALL DT_CH2RES(ID(1,1),ID(2,1),ID(1,2),ID(2,2),IDUM,IDUM,
9142 & AMCH,AMCHN,3,IREJ1)
9143 IF (IREJ1.NE.0) THEN
9144 NHKK = NHKK-2
9145 GOTO 9999
9146 ENDIF
9147 ENDIF
9148
9149 ICCHAI(2,9) = ICCHAI(2,9)+1
9150* store new chain in DTEVT1
9151 KCH = 191
9152 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),0,0,9)
9153 IDHKK(IDX(1)) = 22222
9154 IDHKK(IDX(2)) = 22222
9155* special treatment for space-time coordinates
9156 DO 6 K=1,4
9157 VHKK(K,NHKK) = (VHKK(K,IDX(1))+VHKK(K,IDX(2)))/2.0D0
9158 WHKK(K,NHKK) = (WHKK(K,IDX(1))+WHKK(K,IDX(2)))/2.0D0
9159 6 CONTINUE
9160 RETURN
9161
9162 9999 CONTINUE
9163 IREJ = 1
9164 RETURN
9165 END
9166
9167*$ CREATE DT_XSGLAU.FOR
9168*COPY DT_XSGLAU
9169*
9170*===xsglau=============================================================*
9171*
9172 SUBROUTINE DT_XSGLAU(NA,NB,JJPROJ,XI,Q2I,ECMI,IE,IQ,NIDX)
9173
9174************************************************************************
9175* Total, elastic, quasi-elastic, inelastic cross sections according to *
9176* Glauber's approach. *
9177* NA / NB mass numbers of proj./target nuclei *
9178* JJPROJ bamjet-index of projectile (=1 in case of proj.nucleus) *
9179* XI,Q2I,ECMI kinematical variables x, Q^2, E_cm *
9180* IE,IQ indices of energy and virtuality (the latter for gamma *
9181* projectiles only) *
9182* NIDX index of projectile/target nucleus *
9183* This version dated 17.3.98 is written by S. Roesler *
9184************************************************************************
9185
9186 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9187 SAVE
9188 PARAMETER ( LINP = 10 ,
9189 & LOUT = 6 ,
9190 & LDAT = 9 )
9191
9192 COMPLEX*16 CZERO,CONE,CTWO
9193 CHARACTER*12 CFILE
9194 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9195 & ONETHI=ONE/THREE,TINY25=1.0D-25)
9196 PARAMETER (TWOPI = 6.283185307179586454D+00,
9197 & PI = TWOPI/TWO,
9198 & GEV2MB = 0.38938D0,
9199 & GEV2FM = 0.1972D0,
9200 & ALPHEM = ONE/137.0D0,
9201* proton mass
9202 & AMP = 0.938D0,
9203 & AMP2 = AMP**2,
9204* approx. nucleon radius
9205 & RNUCLE = 1.12D0)
9206
9207* particle properties (BAMJET index convention)
9208 CHARACTER*8 ANAME
9209 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
9210 & IICH(210),IIBAR(210),K1(210),K2(210)
9211 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9212 PARAMETER ( MAXNCL = 260,
9213 & MAXVQU = MAXNCL,
9214 & MAXSQU = 20*MAXVQU,
9215 & MAXINT = MAXVQU+MAXSQU)
9216* Glauber formalism: parameters
9217 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9218 & BMAX(NCOMPX),BSTEP(NCOMPX),
9219 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9220 & NSITEB,NSTATB
9221* Glauber formalism: cross sections
9222 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
9223 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
9224 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
9225 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
9226 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
9227 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
9228 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
9229 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
9230 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
9231 & BSLOPE,NEBINI,NQBINI
9232* Glauber formalism: flags and parameters for statistics
9233 LOGICAL LPROD
9234 CHARACTER*8 CGLB
9235 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
9236* nucleon-nucleon event-generator
9237 CHARACTER*8 CMODEL
9238 LOGICAL LPHOIN
9239 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
9240* VDM parameter for photon-nucleus interactions
9241 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
9242* parameters for hA-diffraction
9243 COMMON /DTDIHA/ DIBETA,DIALPH
9244
9245 COMPLEX*16 PP11(MAXNCL),PP12(MAXNCL),PP21(MAXNCL),PP22(MAXNCL),
9246 & OMPP11,OMPP12,OMPP21,OMPP22,
9247 & DIPP11,DIPP12,DIPP21,DIPP22,AVDIPP,
9248 & PPTMP1,PPTMP2
9249 COMPLEX*16 C,CA,CI
9250 DIMENSION COOP1(3,MAXNCL),COOT1(3,MAXNCL),
9251 & COOP2(3,MAXNCL),COOT2(3,MAXNCL),
9252 & BPROD(KSITEB)
9253
9254 PARAMETER (NPOINT=16)
9255 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
9256
9257 LOGICAL LFIRST,LOPEN
9258 DATA LFIRST,LOPEN /.TRUE.,.FALSE./
9259
9260 NTARG = ABS(NIDX)
9261* for quasi-elastic neutrino scattering set projectile to proton
9262* it should not have an effect since the whole Glauber-formalism is
9263* not needed for these interactions..
9264 IF (MCGENE.EQ.4) THEN
9265 IJPROJ = 1
9266 ELSE
9267 IJPROJ = JJPROJ
9268 ENDIF
9269
9270 IF ((ABS(IOGLB).EQ.1).AND.(.NOT.LOPEN)) THEN
9271 I = INDEX(CGLB,' ')
9272 IF (I.EQ.0) THEN
9273 CFILE = CGLB//'.glb'
9274 OPEN(LDAT,FILE=CGLB//'.glb',STATUS='UNKNOWN')
9275 ELSEIF (I.GT.1) THEN
9276 CFILE = CGLB(1:I-1)//'.glb'
9277 OPEN(LDAT,FILE=CGLB(1:I-1)//'.glb',STATUS='UNKNOWN')
9278 ELSE
9279 STOP 'XSGLAU 1'
9280 ENDIF
9281 LOPEN = .TRUE.
9282 ENDIF
9283
9284 CZERO = DCMPLX(ZERO,ZERO)
9285 CONE = DCMPLX(ONE,ZERO)
9286 CTWO = DCMPLX(TWO,ZERO)
9287 NEBINI = IE
9288 NQBINI = IQ
9289
9290* re-define kinematics
9291 S = ECMI**2
9292 Q2 = Q2I
9293 X = XI
9294* g(Q2=0)-A, h-A, A-A scattering
9295 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9296 Q2 = 0.0001D0
9297 X = Q2/(S+Q2-AMP2)
9298* g(Q2>0)-A scattering
9299 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(S.GT.ZERO)) THEN
9300 X = Q2/(S+Q2-AMP2)
9301 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9302 Q2 = (S-AMP2)*X/(ONE-X)
9303 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
9304 S = Q2*(ONE-X)/X+AMP2
9305 ELSE
9306 WRITE(LOUT,*) 'XSGLAU: inconsistent input ',S,Q2,X
9307 STOP
9308 ENDIF
9309 ECMNN(IE) = SQRT(S)
9310 Q2G(IQ) = Q2
9311 XNU = (S+Q2-AMP2)/(TWO*AMP)
9312
9313* parameters determining statistics in evaluating Glauber-xsection
9314 NSTATB = JSTATB
9315 NSITEB = JBINSB
9316 IF (NSITEB.GT.KSITEB) NSITEB = KSITEB
9317
9318* set up interaction geometry (common /DTGLAM/)
9319* projectile/target radii
9320 RPRNCL = DT_RNCLUS(NA)
9321 RTANCL = DT_RNCLUS(NB)
9322 IF (IJPROJ.EQ.7) THEN
9323 RASH(1) = ZERO
9324 RBSH(NTARG) = RTANCL
9325 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9326 ELSE
9327 IF (NIDX.LE.-1) THEN
9328 RASH(1) = RPRNCL
9329 RBSH(NTARG) = RTANCL
9330 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9331 ELSE
9332 RASH(NTARG) = RPRNCL
9333 RBSH(1) = RTANCL
9334 BMAX(NTARG) = 2.0D0*(RASH(NTARG)+RBSH(1))
9335 ENDIF
9336 ENDIF
9337* maximum impact-parameter
9338 BSTEP(NTARG)= BMAX(NTARG)/DBLE(NSITEB-1)
9339
9340* slope, rho ( Re(f(0))/Im(f(0)) )
9341 IF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
9342 IF (MCGENE.EQ.2) THEN
9343 ZERO1 = ZERO
9344 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,SDUM1,SDUM2,SDUM3,
9345 & BSLOPE,0)
9346 ELSE
9347 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
9348 ENDIF
9349 IF (ECMNN(IE).LE.3.0D0) THEN
9350 ROSH = -0.43D0
9351 ELSEIF ((ECMNN(IE).GT.3.0D0).AND.(ECMNN(IE).LE.50.D0)) THEN
9352 ROSH = -0.63D0+0.175D0*LOG(ECMNN(IE))
9353 ELSEIF (ECMNN(IE).GT.50.0D0) THEN
9354 ROSH = 0.1D0
9355 ENDIF
9356 ELSEIF (IJPROJ.EQ.7) THEN
9357 ROSH = 0.1D0
9358 ELSE
9359 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
9360 ROSH = 0.01D0
9361 ENDIF
9362
9363* projectile-nucleon xsection (in fm)
9364 IF (IJPROJ.EQ.7) THEN
9365 SIGSH = DT_SIGVP(X,Q2)/10.0D0
9366 ELSE
9367 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
9368 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
9369C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
9370 DUMZER = ZERO
9371 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
9372 SIGSH = SIGSH/10.0D0
9373 ENDIF
9374
9375* parameters for projectile diffraction (hA scattering only)
9376 IF ((MCGENE.EQ.2).AND.(NA.EQ.1).AND.(NB.GT.1).AND.(IJPROJ.NE.7)
9377 & .AND.(DIBETA.GE.ZERO)) THEN
9378 ZERO1 = ZERO
9379 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,STOT,SDUM2,SDIF1,BDUM,0)
9380C DIBETA = SDIF1/STOT
9381 DIBETA = 0.2D0
9382 DIGAMM = SQRT(DIALPH**2+DIBETA**2)
9383 IF (DIBETA.LE.ZERO) THEN
9384 ALPGAM = ONE
9385 ELSE
9386 ALPGAM = DIALPH/DIGAMM
9387 ENDIF
9388 FACDI1 = ONE-ALPGAM
9389 FACDI2 = ONE+ALPGAM
9390 FACDI = SQRT(FACDI1*FACDI2)
9391 WRITE(LOUT,*)'DIBETA,DIALPH,DIGAMM: ',DIBETA,DIALPH,DIGAMM
9392 ELSE
9393 DIBETA = -1.0D0
9394 DIALPH = ZERO
9395 DIGAMM = ZERO
9396 FACDI1 = ZERO
9397 FACDI2 = 2.0D0
9398 FACDI = ZERO
9399 ENDIF
9400
9401* initializations
9402 DO 10 I=1,NSITEB
9403 BSITE( 0,IQ,NTARG,I) = ZERO
9404 BSITE(IE,IQ,NTARG,I) = ZERO
9405 BPROD(I) = ZERO
9406 10 CONTINUE
9407 STOT = ZERO
9408 STOT2 = ZERO
9409 SELA = ZERO
9410 SELA2 = ZERO
9411 SQEP = ZERO
9412 SQEP2 = ZERO
9413 SQET = ZERO
9414 SQET2 = ZERO
9415 SQE2 = ZERO
9416 SQE22 = ZERO
9417 SPRO = ZERO
9418 SPRO2 = ZERO
9419 SDEL = ZERO
9420 SDEL2 = ZERO
9421 SDQE = ZERO
9422 SDQE2 = ZERO
9423 FACN = ONE/DBLE(NSTATB)
9424
9425 IPNT = 0
9426 RPNT = ZERO
9427
9428* initialize Gauss-integration for photon-proj.
9429 JPOINT = 1
9430 IF (IJPROJ.EQ.7) THEN
9431 IF (INTRGE(1).EQ.1) THEN
9432 AMLO2 = (3.0D0*AAM(13))**2
9433 ELSEIF (INTRGE(1).EQ.2) THEN
9434 AMLO2 = AAM(33)**2
9435 ELSE
9436 AMLO2 = AAM(96)**2
9437 ENDIF
9438 IF (INTRGE(2).EQ.1) THEN
9439 AMHI2 = S/TWO
9440 ELSEIF (INTRGE(2).EQ.2) THEN
9441 AMHI2 = S/4.0D0
9442 ELSE
9443 AMHI2 = S
9444 ENDIF
9445 AMHI20 = (ECMNN(IE)-AMP)**2
9446 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
9447 XAMLO = LOG( AMLO2+Q2 )
9448 XAMHI = LOG( AMHI2+Q2 )
9449**PHOJET105a
9450C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9451**PHOJET112
9452 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9453**
9454 JPOINT = NPOINT
9455* ratio direct/total photon-nucleon xsection
9456 CALL DT_POILIK(NB,NTARG,ECMNN(IE),Q2,IPNT,RPNT,1)
9457 ENDIF
9458
9459* read pre-initialized profile-function from file
9460 IF (IOGLB.EQ.1) THEN
9461 READ(LDAT,'(5I10,E15.5)') KJPROJ,IA,IB,ISTATB,ISITEB,DUM
9462 IF ((IA.NE.NA).OR.(IB.NE.NB)) THEN
9463 WRITE(LOUT,1000) CFILE,IA,IB,ISTATB,ISITEB,
9464 & NA,NB,NSTATB,NSITEB
9465 1000 FORMAT(' XSGLAU: inconsistent input data in file ',A12,/,
9466 & ' (IA,IB,ISTATB,ISITEB) ',4I10,/,
9467 & ' (NA,NB,NSTATB,NSITEB) ',4I10)
9468 STOP
9469 ENDIF
9470 IF (LFIRST) WRITE(LOUT,1001) CFILE
9471 1001 FORMAT(/,' XSGLAU: impact parameter distribution read from ',
9472 & 'file ',A12,/)
9473 READ(LDAT,'(6E12.5)') XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),
9474 & XSQEP(IE,IQ,NTARG),XSQET(IE,IQ,NTARG),
9475 & XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9476 READ(LDAT,'(6E12.5)') XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),
9477 & XEQEP(IE,IQ,NTARG),XEQET(IE,IQ,NTARG),
9478 & XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9479 NLINES = INT(DBLE(NSITEB)/7.0D0)
9480 IF (NLINES.GT.0) THEN
9481 DO 21 I=1,NLINES
9482 ISTART = 7*I-6
9483 READ(LDAT,'(7E11.4)')
9484 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9485 21 CONTINUE
9486 ENDIF
9487 ISTART = 7*NLINES+1
9488 IF (ISTART.LE.NSITEB) THEN
9489 READ(LDAT,'(7E11.4)')
9490 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9491 ENDIF
9492 LFIRST = .FALSE.
9493 GOTO 100
9494* variable projectile/target/energy runs:
9495* read pre-initialized profile-functions from file
9496 ELSEIF (IOGLB.EQ.100) THEN
9497 CALL DT_GLBSET(IJPROJ,IINA,IINB,RRELAB,0)
9498 GOTO 100
9499 ENDIF
9500
9501* cross sections averaged over NSTATB nucleon configurations
9502 DO 11 IS=1,NSTATB
9503C IF ((NA.EQ.207).AND.(NB.EQ.207)) WRITE(LOUT,*) 'conf. ',IS
9504 STOTN = ZERO
9505 SELAN = ZERO
9506 SQEPN = ZERO
9507 SQETN = ZERO
9508 SQE2N = ZERO
9509 SPRON = ZERO
9510 SDELN = ZERO
9511 SDQEN = ZERO
9512
9513 IF (NIDX.LE.-1) THEN
9514 CALL DT_CONUCL(COOP1,NA,RASH(1),0)
9515 CALL DT_CONUCL(COOT1,NB,RBSH(NTARG),1)
9516 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9517 CALL DT_CONUCL(COOP2,NA,RASH(1),0)
9518 CALL DT_CONUCL(COOT2,NB,RBSH(NTARG),1)
9519 ENDIF
9520 ELSE
9521 CALL DT_CONUCL(COOP1,NA,RASH(NTARG),0)
9522 CALL DT_CONUCL(COOT1,NB,RBSH(1),1)
9523 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9524 CALL DT_CONUCL(COOP2,NA,RASH(NTARG),0)
9525 CALL DT_CONUCL(COOT2,NB,RBSH(1),1)
9526 ENDIF
9527 ENDIF
9528
9529* integration over impact parameter B
9530 DO 12 IB=1,NSITEB-1
9531 STOTB = ZERO
9532 SELAB = ZERO
9533 SQEPB = ZERO
9534 SQETB = ZERO
9535 SQE2B = ZERO
9536 SPROB = ZERO
9537 SDIR = ZERO
9538 SDELB = ZERO
9539 SDQEB = ZERO
9540 B = DBLE(IB)*BSTEP(NTARG)
9541 FACB = 10.0D0*TWOPI*B*BSTEP(NTARG)
9542
9543* integration over M_V^2 for photon-proj.
9544 DO 14 IM=1,JPOINT
9545 PP11(1) = CONE
9546 PP12(1) = CONE
9547 PP21(1) = CONE
9548 PP22(1) = CONE
9549 IF (IJPROJ.EQ.7) THEN
9550 DO 13 K=2,NB
9551 PP11(K) = CONE
9552 PP12(K) = CONE
9553 PP21(K) = CONE
9554 PP22(K) = CONE
9555 13 CONTINUE
9556 ENDIF
9557 SHI = ZERO
9558 FACM = ONE
9559 DCOH = 1.0D10
9560
9561 IF (IJPROJ.EQ.7) THEN
9562 AMV2 = EXP(ABSZX(IM))-Q2
9563 AMV = SQRT(AMV2)
9564 IF (AMV2.LT.16.0D0) THEN
9565 R = TWO
9566 ELSEIF ((AMV2.GE.16.0D0).AND.(AMV2.LT.121.0D0)) THEN
9567 R = 10.0D0/3.0D0
9568 ELSE
9569 R = 11.0D0/3.0D0
9570 ENDIF
9571* define M_V dependent properties of nucleon scattering amplitude
9572* V_M-nucleon xsection
9573 SIGMVD = RPNT*SIGSH/(AMV2+Q2+RL2)*10.0D0
9574 SIGMV = (ONE-RPNT)*SIGSH/(AMV2+Q2+RL2)
9575* slope-parametrisation a la Kaidalov
9576 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
9577 & +0.25D0*LOG(S/(AMV2+Q2)))
9578* coherence length
9579 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+Q2)*GEV2FM
9580* integration weight factor
9581 FACM = ALPHEM/(3.0D0*PI*(ONE-X))*
9582 & R*AMV2/(AMV2+Q2)*(ONE+EPSPOL*Q2/AMV2)*WEIGHT(IM)
9583 ENDIF
9584 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
9585 GAM = GSH
9586 IF (IJPROJ.EQ.7) THEN
9587 RCA = GAM*SIGMV/TWOPI
9588 ELSE
9589 RCA = GAM*SIGSH/TWOPI
9590 ENDIF
9591 FCA = -ROSH*RCA
9592 CA = DCMPLX(RCA,FCA)
9593 CI = CONE
9594
9595 DO 15 INA=1,NA
9596 KK1 = 1
9597 INT1 = 1
9598 KK2 = 1
9599 INT2 = 1
9600 DO 16 INB=1,NB
9601* photon-projectile: check for supression by coherence length
9602 IF (IJPROJ.EQ.7) THEN
9603 IF (ABS(COOT1(3,INB)-COOT1(3,KK1)).GT.DCOH)THEN
9604 KK1 = INB
9605 INT1 = INT1+1
9606 ENDIF
9607 IF (ABS(COOT2(3,INB)-COOT2(3,KK2)).GT.DCOH)THEN
9608 KK2 = INB
9609 INT2 = INT2+1
9610 ENDIF
9611 ENDIF
9612
9613 X11 = B+COOT1(1,INB)-COOP1(1,INA)
9614 Y11 = COOT1(2,INB)-COOP1(2,INA)
9615 XY11 = GAM*(X11*X11+Y11*Y11)
9616 IF (XY11.LE.15.0D0) THEN
9617 C = CONE-CA*EXP(-XY11)
9618 AR = DBLE(PP11(INT1))
9619 AI = DIMAG(PP11(INT1))
9620 IF (ABS(AR).LT.TINY25) AR = ZERO
9621 IF (ABS(AI).LT.TINY25) AI = ZERO
9622 PP11(INT1) = DCMPLX(AR,AI)
9623 PP11(INT1) = PP11(INT1)*C
9624 AR = DBLE(C)
9625 AI = DIMAG(C)
9626 SHI = SHI+LOG(AR*AR+AI*AI)
9627 ENDIF
9628 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9629 X12 = B+COOT2(1,INB)-COOP1(1,INA)
9630 Y12 = COOT2(2,INB)-COOP1(2,INA)
9631 XY12 = GAM*(X12*X12+Y12*Y12)
9632 IF (XY12.LE.15.0D0) THEN
9633 C = CONE-CA*EXP(-XY12)
9634 AR = DBLE(PP12(INT2))
9635 AI = DIMAG(PP12(INT2))
9636 IF (ABS(AR).LT.TINY25) AR = ZERO
9637 IF (ABS(AI).LT.TINY25) AI = ZERO
9638 PP12(INT2) = DCMPLX(AR,AI)
9639 PP12(INT2) = PP12(INT2)*C
9640 ENDIF
9641 X21 = B+COOT1(1,INB)-COOP2(1,INA)
9642 Y21 = COOT1(2,INB)-COOP2(2,INA)
9643 XY21 = GAM*(X21*X21+Y21*Y21)
9644 IF (XY21.LE.15.0D0) THEN
9645 C = CONE-CA*EXP(-XY21)
9646 AR = DBLE(PP21(INT1))
9647 AI = DIMAG(PP21(INT1))
9648 IF (ABS(AR).LT.TINY25) AR = ZERO
9649 IF (ABS(AI).LT.TINY25) AI = ZERO
9650 PP21(INT1) = DCMPLX(AR,AI)
9651 PP21(INT1) = PP21(INT1)*C
9652 ENDIF
9653 X22 = B+COOT2(1,INB)-COOP2(1,INA)
9654 Y22 = COOT2(2,INB)-COOP2(2,INA)
9655 XY22 = GAM*(X22*X22+Y22*Y22)
9656 IF (XY22.LE.15.0D0) THEN
9657 C = CONE-CA*EXP(-XY22)
9658 AR = DBLE(PP22(INT2))
9659 AI = DIMAG(PP22(INT2))
9660 IF (ABS(AR).LT.TINY25) AR = ZERO
9661 IF (ABS(AI).LT.TINY25) AI = ZERO
9662 PP22(INT2) = DCMPLX(AR,AI)
9663 PP22(INT2) = PP22(INT2)*C
9664 ENDIF
9665 ENDIF
9666 16 CONTINUE
9667 15 CONTINUE
9668
9669 OMPP11 = CZERO
9670 OMPP21 = CZERO
9671 DIPP11 = CZERO
9672 DIPP21 = CZERO
9673 DO 17 K=1,INT1
9674 IF (PP11(K).EQ.CZERO) THEN
9675 PPTMP1 = CZERO
9676 PPTMP2 = CZERO
9677 ELSE
9678 PPTMP1 = PP11(K)**(ONE-DIALPH-DIGAMM)
9679 PPTMP2 = PP11(K)**(ONE-DIALPH+DIGAMM)
9680 ENDIF
9681 AVDIPP = 0.5D0*
9682 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9683 OMPP11 = OMPP11+AVDIPP
9684C OMPP11 = OMPP11+(CONE-PP11(K))
9685 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9686 DIPP11 = DIPP11+AVDIPP
9687 IF (PP21(K).EQ.CZERO) THEN
9688 PPTMP1 = CZERO
9689 PPTMP2 = CZERO
9690 ELSE
9691 PPTMP1 = PP21(K)**(ONE-DIALPH-DIGAMM)
9692 PPTMP2 = PP21(K)**(ONE-DIALPH+DIGAMM)
9693 ENDIF
9694 AVDIPP = 0.5D0*
9695 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9696 OMPP21 = OMPP21+AVDIPP
9697C OMPP21 = OMPP21+(CONE-PP21(K))
9698 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9699 DIPP21 = DIPP21+AVDIPP
9700 17 CONTINUE
9701 OMPP12 = CZERO
9702 OMPP22 = CZERO
9703 DIPP12 = CZERO
9704 DIPP22 = CZERO
9705 DO 18 K=1,INT2
9706 IF (PP12(K).EQ.CZERO) THEN
9707 PPTMP1 = CZERO
9708 PPTMP2 = CZERO
9709 ELSE
9710 PPTMP1 = PP12(K)**(ONE-DIALPH-DIGAMM)
9711 PPTMP2 = PP12(K)**(ONE-DIALPH+DIGAMM)
9712 ENDIF
9713 AVDIPP = 0.5D0*
9714 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9715 OMPP12 = OMPP12+AVDIPP
9716C OMPP12 = OMPP12+(CONE-PP12(K))
9717 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9718 DIPP12 = DIPP12+AVDIPP
9719 IF (PP22(K).EQ.CZERO) THEN
9720 PPTMP1 = CZERO
9721 PPTMP2 = CZERO
9722 ELSE
9723 PPTMP1 = PP22(K)**(ONE-DIALPH-DIGAMM)
9724 PPTMP2 = PP22(K)**(ONE-DIALPH+DIGAMM)
9725 ENDIF
9726 AVDIPP = 0.5D0*
9727 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9728 OMPP22 = OMPP22+AVDIPP
9729C OMPP22 = OMPP22+(CONE-PP22(K))
9730 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9731 DIPP22 = DIPP22+AVDIPP
9732 18 CONTINUE
9733
9734 SPROM = ONE-EXP(SHI)
9735 SPROB = SPROB+FACM*SPROM
9736 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9737 STOTM = DBLE(OMPP11+OMPP22)
9738 SELAM = DBLE(OMPP11*DCONJG(OMPP22))
9739 SQEPM = DBLE(OMPP11*DCONJG(OMPP21))-SELAM
9740 SQETM = DBLE(OMPP11*DCONJG(OMPP12))-SELAM
9741 SQE2M = DBLE(OMPP11*DCONJG(OMPP11))-SELAM-SQEPM-SQETM
9742 SDELM = DBLE(DIPP11*DCONJG(DIPP22))
9743 SDQEM = DBLE(DIPP11*DCONJG(DIPP21))-SDELM
9744 STOTB = STOTB+FACM*STOTM
9745 SELAB = SELAB+FACM*SELAM
9746 SDELB = SDELB+FACM*SDELM
9747 IF (NB.GT.1) THEN
9748 SQEPB = SQEPB+FACM*SQEPM
9749 SDQEB = SDQEB+FACM*SDQEM
9750 ENDIF
9751 IF (NA.GT.1) SQETB = SQETB+FACM*SQETM
9752 IF ((NA.GT.1).AND.(NB.GT.1)) SQE2B = SQE2B+FACM*SQE2M
9753 IF (IJPROJ.EQ.7) SDIR = SDIR+FACM*SIGMVD
9754 ENDIF
9755
9756 14 CONTINUE
9757
9758 STOTN = STOTN+FACB*STOTB
9759 SELAN = SELAN+FACB*SELAB
9760 SQEPN = SQEPN+FACB*SQEPB
9761 SQETN = SQETN+FACB*SQETB
9762 SQE2N = SQE2N+FACB*SQE2B
9763 SPRON = SPRON+FACB*SPROB
9764 SDELN = SDELN+FACB*SDELB
9765 SDQEN = SDQEN+FACB*SDQEB
9766
9767 IF (IJPROJ.EQ.7) THEN
9768 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*(STOTB-SELAB-SQEPB)
9769 ELSE
9770 IF (DIBETA.GT.ZERO) THEN
9771 BPROD(IB+1)= BPROD(IB+1)
9772 & +FACN*FACB*(STOTB-SELAB-SQEPB-SQETB-SQE2B)
9773 ELSE
9774 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*SPROB
9775 ENDIF
9776 ENDIF
9777
9778 12 CONTINUE
9779
9780 STOT = STOT +FACN*STOTN
9781 STOT2 = STOT2+FACN*STOTN**2
9782 SELA = SELA +FACN*SELAN
9783 SELA2 = SELA2+FACN*SELAN**2
9784 SQEP = SQEP +FACN*SQEPN
9785 SQEP2 = SQEP2+FACN*SQEPN**2
9786 SQET = SQET +FACN*SQETN
9787 SQET2 = SQET2+FACN*SQETN**2
9788 SQE2 = SQE2 +FACN*SQE2N
9789 SQE22 = SQE22+FACN*SQE2N**2
9790 SPRO = SPRO +FACN*SPRON
9791 SPRO2 = SPRO2+FACN*SPRON**2
9792 SDEL = SDEL +FACN*SDELN
9793 SDEL2 = SDEL2+FACN*SDELN**2
9794 SDQE = SDQE +FACN*SDQEN
9795 SDQE2 = SDQE2+FACN*SDQEN**2
9796
9797 11 CONTINUE
9798
9799* final cross sections
9800* 1) total
9801 XSTOT(IE,IQ,NTARG) = STOT
9802 IF (IJPROJ.EQ.7)
9803 & XSTOT(IE,IQ,NTARG) = XSTOT(IE,IQ,NTARG)+DBLE(NB)*SDIR
9804* 2) elastic
9805 XSELA(IE,IQ,NTARG) = SELA
9806* 3) quasi-el.: A+B-->A+X (excluding 2)
9807 XSQEP(IE,IQ,NTARG) = SQEP
9808* 4) quasi-el.: A+B-->X+B (excluding 2)
9809 XSQET(IE,IQ,NTARG) = SQET
9810* 5) quasi-el.: A+B-->X (excluding 2-4)
9811 XSQE2(IE,IQ,NTARG) = SQE2
9812* 6) production (= STOT-SELA-SQEP-SQET-SQE2!)
9813 IF (SDEL.GT.ZERO) THEN
9814 XSPRO(IE,IQ,NTARG) = STOT-SELA-SQEP-SQET-SQE2
9815 ELSE
9816 XSPRO(IE,IQ,NTARG) = SPRO
9817 ENDIF
9818* 7) projectile diffraction (el. scatt. off target)
9819 XSDEL(IE,IQ,NTARG) = SDEL
9820* 8) projectile diffraction (quasi-el. scatt. off target)
9821 XSDQE(IE,IQ,NTARG) = SDQE
9822* stat. errors
9823 XETOT(IE,IQ,NTARG) = SQRT(ABS(STOT2-STOT**2)/DBLE(NSTATB-1))
9824 XEELA(IE,IQ,NTARG) = SQRT(ABS(SELA2-SELA**2)/DBLE(NSTATB-1))
9825 XEQEP(IE,IQ,NTARG) = SQRT(ABS(SQEP2-SQEP**2)/DBLE(NSTATB-1))
9826 XEQET(IE,IQ,NTARG) = SQRT(ABS(SQET2-SQET**2)/DBLE(NSTATB-1))
9827 XEQE2(IE,IQ,NTARG) = SQRT(ABS(SQE22-SQE2**2)/DBLE(NSTATB-1))
9828 XEPRO(IE,IQ,NTARG) = SQRT(ABS(SPRO2-SPRO**2)/DBLE(NSTATB-1))
9829 XEDEL(IE,IQ,NTARG) = SQRT(ABS(SDEL2-SDEL**2)/DBLE(NSTATB-1))
9830 XEDQE(IE,IQ,NTARG) = SQRT(ABS(SDQE2-SDQE**2)/DBLE(NSTATB-1))
9831
9832 IF (IJPROJ.EQ.7) THEN
9833 BNORM = XSTOT(IE,IQ,NTARG)-XSELA(IE,IQ,NTARG)
9834 & -XSQEP(IE,IQ,NTARG)
9835 ELSE
9836 BNORM = XSPRO(IE,IQ,NTARG)
9837 ENDIF
9838 DO 19 I=2,NSITEB
9839 BSITE(IE,IQ,NTARG,I) = BPROD(I)/BNORM+BSITE(IE,IQ,NTARG,I-1)
9840 IF ((IE.EQ.1).AND.(IQ.EQ.1))
9841 & BSITE(0,1,NTARG,I) = BPROD(I)/BNORM+BSITE(0,1,NTARG,I-1)
9842 19 CONTINUE
9843
9844* write profile function data into file
9845 IF ((IOGLB.EQ.-1).OR.(IOGLB.EQ.-100)) THEN
9846 WRITE(LDAT,'(5I10,1P,E15.5)')
9847 & IJPROJ,NA,NB,NSTATB,NSITEB,ECMNN(IE)
9848 WRITE(LDAT,'(1P,6E12.5)')
9849 & XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),XSQEP(IE,IQ,NTARG),
9850 & XSQET(IE,IQ,NTARG),XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9851 WRITE(LDAT,'(1P,6E12.5)')
9852 & XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),XEQEP(IE,IQ,NTARG),
9853 & XEQET(IE,IQ,NTARG),XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9854 NLINES = INT(DBLE(NSITEB)/7.0D0)
9855 IF (NLINES.GT.0) THEN
9856 DO 20 I=1,NLINES
9857 ISTART = 7*I-6
9858 WRITE(LDAT,'(1P,7E11.4)')
9859 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9860 20 CONTINUE
9861 ENDIF
9862 ISTART = 7*NLINES+1
9863 IF (ISTART.LE.NSITEB) THEN
9864 WRITE(LDAT,'(1P,7E11.4)')
9865 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9866 ENDIF
9867 ENDIF
9868
9869 100 CONTINUE
9870
9871C IF (ABS(IOGLB).EQ.1) CLOSE(LDAT)
9872
9873 RETURN
9874 END
9875
9876*$ CREATE DT_GETBXS.FOR
9877*COPY DT_GETBXS
9878*
9879*===getbxs=============================================================*
9880*
9881 SUBROUTINE DT_GETBXS(XSFRAC,BLO,BHI,NIDX)
9882
9883************************************************************************
9884* Biasing in impact parameter space. *
9885* XSFRAC = 0 : BLO - minimum impact parameter (input) *
9886* BHI - maximum impact parameter (input) *
9887* XSFRAC - fraction of cross section corresponding *
9888* to impact parameter range (BLO,BHI) *
9889* (output) *
9890* XSFRAC > 0 : XSFRAC - fraction of cross section (input) *
9891* BHI - maximum impact parameter giving requested *
9892* fraction of cross section in impact *
9893* parameter range (0,BMAX) (output) *
9894* This version dated 17.03.00 is written by S. Roesler *
9895************************************************************************
9896
9897 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9898 SAVE
9899 PARAMETER ( LINP = 10 ,
9900 & LOUT = 6 ,
9901 & LDAT = 9 )
9902
9903 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9904* Glauber formalism: parameters
9905 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9906 & BMAX(NCOMPX),BSTEP(NCOMPX),
9907 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9908 & NSITEB,NSTATB
9909
9910 NTARG = ABS(NIDX)
9911 IF (XSFRAC.LE.0.0D0) THEN
9912 ILO = MIN(NSITEB-1,INT(BLO/BSTEP(NTARG)))
9913 IHI = MIN(NSITEB-1,INT(BHI/BSTEP(NTARG)))
9914 IF (ILO.GE.IHI) THEN
9915 XSFRAC = 0.0D0
9916 RETURN
9917 ENDIF
9918 IF (ILO.EQ.NSITEB-1) THEN
9919 FRCLO = BSITE(0,1,NTARG,NSITEB)
9920 ELSE
9921 FRCLO = BSITE(0,1,NTARG,ILO+1)
9922 & +(BLO-ILO*BSTEP(NTARG))/BSTEP(NTARG)
9923 & *(BSITE(0,1,NTARG,ILO+2)-BSITE(0,1,NTARG,ILO+1))
9924 ENDIF
9925 IF (IHI.EQ.NSITEB-1) THEN
9926 FRCHI = BSITE(0,1,NTARG,NSITEB)
9927 ELSE
9928 FRCHI = BSITE(0,1,NTARG,IHI+1)
9929 & +(BHI-IHI*BSTEP(NTARG))/BSTEP(NTARG)
9930 & *(BSITE(0,1,NTARG,IHI+2)-BSITE(0,1,NTARG,IHI+1))
9931 ENDIF
9932 XSFRAC = FRCHI-FRCLO
9933 ELSE
9934 BLO = 0.0D0
9935 BHI = BMAX(NTARG)
9936 DO 1 I=1,NSITEB-1
9937 IF (XSFRAC.LT.BSITE(0,1,NTARG,I+1)) THEN
9938 FAC = (XSFRAC -BSITE(0,1,NTARG,I))/
9939 & (BSITE(0,1,NTARG,I+1)-BSITE(0,1,NTARG,I))
9940 BHI = DBLE(I-1)*BSTEP(NTARG)+BSTEP(NTARG)*FAC
9941 GOTO 2
9942 ENDIF
9943 1 CONTINUE
9944 2 CONTINUE
9945 ENDIF
9946
9947 RETURN
9948 END
9949
9950*$ CREATE DT_CONUCL.FOR
9951*COPY DT_CONUCL
9952*
9953*===conucl=============================================================*
9954*
9955 SUBROUTINE DT_CONUCL(X,N,R,MODE)
9956
9957************************************************************************
9958* Calculation of coordinates of nucleons within nuclei. *
9959* X(3,N) spatial coordinates of nucleons (in fm) (output) *
9960* N / R number of nucleons / radius of nucleus (input) *
9961* MODE = 0 coordinates not sorted *
9962* = 1 coordinates sorted with increasing X(3,i) *
9963* = 2 coordinates sorted with decreasing X(3,i) *
9964* This version dated 26.10.95 is revised by S. Roesler *
9965************************************************************************
9966
9967 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9968 SAVE
9969 PARAMETER ( LINP = 10 ,
9970 & LOUT = 6 ,
9971 & LDAT = 9 )
9972
9973 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9974 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
9975
9976 PARAMETER (TWOPI = 6.283185307179586454D+00 )
9977
9978 PARAMETER (NSRT=10)
9979 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
9980 DIMENSION X(3,N),XTMP(3,260)
9981
9982 CALL DT_COORDI(XTMP,IDXSRT,ICSRT,N,R)
9983
9984 IF ((MODE.NE.0).AND.(N.GT.4)) THEN
9985 K = 0
9986 DO 1 I=1,NSRT
9987 IF (MODE.EQ.2) THEN
9988 ISRT = NSRT+1-I
9989 ELSE
9990 ISRT = I
9991 ENDIF
9992 K1 = K
9993 DO 2 J=1,ICSRT(ISRT)
9994 K = K+1
9995 X(1,K) = XTMP(1,IDXSRT(ISRT,J))
9996 X(2,K) = XTMP(2,IDXSRT(ISRT,J))
9997 X(3,K) = XTMP(3,IDXSRT(ISRT,J))
9998 2 CONTINUE
9999 IF (ICSRT(ISRT).GT.1) THEN
10000 I0 = K1+1
10001 I1 = K
10002 CALL DT_SORT(X,N,I0,I1,MODE)
10003 ENDIF
10004 1 CONTINUE
10005 ELSEIF ((MODE.NE.0).AND.(N.GE.2).AND.(N.LE.4)) THEN
10006 DO 3 I=1,N
10007 X(1,I) = XTMP(1,I)
10008 X(2,I) = XTMP(2,I)
10009 X(3,I) = XTMP(3,I)
10010 3 CONTINUE
10011 CALL DT_SORT(X,N,1,N,MODE)
10012 ELSE
10013 DO 4 I=1,N
10014 X(1,I) = XTMP(1,I)
10015 X(2,I) = XTMP(2,I)
10016 X(3,I) = XTMP(3,I)
10017 4 CONTINUE
10018 ENDIF
10019
10020 RETURN
10021 END
10022
10023*$ CREATE DT_COORDI.FOR
10024*COPY DT_COORDI
10025*
10026*===coordi=============================================================*
10027*
10028 SUBROUTINE DT_COORDI(X,IDXSRT,ICSRT,N,R)
10029
10030************************************************************************
10031* Calculation of coordinates of nucleons within nuclei. *
10032* X(3,N) spatial coordinates of nucleons (in fm) (output) *
10033* N / R number of nucleons / radius of nucleus (input) *
10034* Based on the original version by Shmakov et al. *
10035* This version dated 26.10.95 is revised by S. Roesler *
10036************************************************************************
10037
10038 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10039 SAVE
10040 PARAMETER ( LINP = 10 ,
10041 & LOUT = 6 ,
10042 & LDAT = 9 )
10043
10044 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
10045 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
10046
10047 PARAMETER (TWOPI = 6.283185307179586454D+00 )
10048
10049 LOGICAL LSTART
10050
10051 PARAMETER (NSRT=10)
10052 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
10053 DIMENSION X(3,260),WD(4),RD(3)
10054
10055 DATA PDIF/0.545D0/,R2MIN/0.16D0/
10056 DATA WD / 0.0D0, 0.178D0, 0.465D0, 1.0D0/
10057 DATA RD /2.09D0, 0.935D0, 0.697D0/
10058
10059 X1SUM = ZERO
10060 X2SUM = ZERO
10061 X3SUM = ZERO
10062
10063 IF (N.EQ.1) THEN
10064 X(1,1) = ZERO
10065 X(2,1) = ZERO
10066 X(3,1) = ZERO
10067 ELSEIF (N.EQ.2) THEN
10068 EPS = DT_RNDM(RD(1))
10069 DO 30 I=1,3
10070 IF ((EPS.GE.WD(I)).AND.(EPS.LE.WD(I+1))) GOTO 40
10071 30 CONTINUE
10072 40 CONTINUE
10073 DO 50 J=1,3
10074 CALL DT_RANNOR(X1,X2)
10075 X(J,1) = RD(I)*X1
10076 X(J,2) = -X(J,1)
10077 50 CONTINUE
10078 ELSEIF ((N.EQ.3).OR.(N.EQ.4)) THEN
10079 SIGMA = R/SQRTWO
10080 LSTART = .TRUE.
10081 CALL DT_RANNOR(X3,X4)
10082 DO 100 I=1,N
10083 CALL DT_RANNOR(X1,X2)
10084 X(1,I) = SIGMA*X1
10085 X(2,I) = SIGMA*X2
10086 IF (LSTART) GOTO 80
10087 X(3,I) = SIGMA*X4
10088 CALL DT_RANNOR(X3,X4)
10089 GOTO 90
10090 80 CONTINUE
10091 X(3,I) = SIGMA*X3
10092 90 CONTINUE
10093 LSTART = .NOT.LSTART
10094 X1SUM = X1SUM+X(1,I)
10095 X2SUM = X2SUM+X(2,I)
10096 X3SUM = X3SUM+X(3,I)
10097 100 CONTINUE
10098 X1SUM = X1SUM/DBLE(N)
10099 X2SUM = X2SUM/DBLE(N)
10100 X3SUM = X3SUM/DBLE(N)
10101 DO 101 I=1,N
10102 X(1,I) = X(1,I)-X1SUM
10103 X(2,I) = X(2,I)-X2SUM
10104 X(3,I) = X(3,I)-X3SUM
10105 101 CONTINUE
10106 ELSE
10107
10108* maximum nuclear radius for coordinate sampling
10109 RMAX = R+4.605D0*PDIF
10110
10111* initialize pre-sorting
10112 DO 121 I=1,NSRT
10113 ICSRT(I) = 0
10114 121 CONTINUE
10115 DR = TWO*RMAX/DBLE(NSRT)
10116
10117* sample coordinates for N nucleons
10118 DO 140 I=1,N
10119 120 CONTINUE
10120 RAD = RMAX*(DT_RNDM(DR))**ONETHI
10121 F = DT_DENSIT(N,RAD,R)
10122 IF (DT_RNDM(RAD).GT.F) GOTO 120
10123* theta, phi uniformly distributed
10124 CT = ONE-TWO*DT_RNDM(F)
10125 ST = SQRT((ONE-CT)*(ONE+CT))
10126 CALL DT_DSFECF(SFE,CFE)
10127 X(1,I) = RAD*ST*CFE
10128 X(2,I) = RAD*ST*SFE
10129 X(3,I) = RAD*CT
10130* ensure that distance between two nucleons is greater than R2MIN
10131 IF (I.LT.2) GOTO 122
10132 I1 = I-1
10133 DO 130 I2=1,I1
10134 DIST2 = (X(1,I)-X(1,I2))**2+(X(2,I)-X(2,I2))**2+
10135 & (X(3,I)-X(3,I2))**2
10136 IF (DIST2.LE.R2MIN) GOTO 120
10137 130 CONTINUE
10138 122 CONTINUE
10139* save index according to z-bin
10140 IDXZ = INT( (X(3,I)+RMAX)/DR )+1
10141 ICSRT(IDXZ) = ICSRT(IDXZ)+1
10142 IDXSRT(IDXZ,ICSRT(IDXZ)) = I
10143 X1SUM = X1SUM+X(1,I)
10144 X2SUM = X2SUM+X(2,I)
10145 X3SUM = X3SUM+X(3,I)
10146 140 CONTINUE
10147 X1SUM = X1SUM/DBLE(N)
10148 X2SUM = X2SUM/DBLE(N)
10149 X3SUM = X3SUM/DBLE(N)
10150 DO 141 I=1,N
10151 X(1,I) = X(1,I)-X1SUM
10152 X(2,I) = X(2,I)-X2SUM
10153 X(3,I) = X(3,I)-X3SUM
10154 141 CONTINUE
10155
10156 ENDIF
10157
10158 RETURN
10159 END
10160
10161*$ CREATE DT_DENSIT.FOR
10162*COPY DT_DENSIT
10163*
10164*===densit=============================================================*
10165*
10166 DOUBLE PRECISION FUNCTION DT_DENSIT(NA,R,RA)
10167
10168 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10169 SAVE
10170
10171 PARAMETER ( LINP = 10 ,
10172 & LOUT = 6 ,
10173 & LDAT = 9 )
10174 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10175 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
10176 & PI = TWOPI/TWO)
10177
10178 DIMENSION R0(18),FNORM(18)
10179 DATA R0 / ZERO, ZERO, ZERO, ZERO, 2.12D0,
10180 & 2.56D0, 2.41D0, 2.46D0, 2.52D0, 2.45D0,
10181 & 2.37D0, 2.46D0, 2.44D0, 2.54D0, 2.58D0,
10182 & 2.72D0, 2.66D0, 2.79D0/
10183 DATA FNORM /.1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10184 & .1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10185 & .1012D+01,.1039D+01,.1075D+01,.1118D+01,.1164D+01,
10186 & .1214D+01,.1265D+01,.1318D+01/
10187 DATA PDIF /0.545D0/
10188
10189 DT_DENSIT = ZERO
10190* shell model
10191 IF (NA.LE.4) THEN
10192 STOP 'DT_DENSIT-0'
10193 ELSEIF ((NA.GT.4).AND.(NA.LE.18)) THEN
10194 R1 = R0(NA)/SQRT(2.5D0-4.0D0/DBLE(NA))
10195 DT_DENSIT = (ONE+(DBLE(NA)-4.0D0)/6.0D0*(R/R1)**2)
10196 & *EXP(-(R/R1)**2)/FNORM(NA)
10197* Woods-Saxon
10198 ELSEIF (NA.GT.18) THEN
10199 DT_DENSIT = ONE/(ONE+EXP((R-RA)/PDIF))
10200 ENDIF
10201
10202 RETURN
10203 END
10204
10205*$ CREATE DT_RNCLUS.FOR
10206*COPY DT_RNCLUS
10207*
10208*===rnclus=============================================================*
10209*
10210 DOUBLE PRECISION FUNCTION DT_RNCLUS(N)
10211
10212************************************************************************
10213* Nuclear radius for nucleus with mass number N. *
10214* This version dated 26.9.00 is written by S. Roesler *
10215************************************************************************
10216
10217 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10218 SAVE
10219
10220 PARAMETER (ONE=1.0D0,THREE=3.0D0,ONETHI=ONE/THREE)
10221
10222* nucleon radius
10223 PARAMETER (RNUCLE = 1.12D0)
10224
10225* nuclear radii for selected nuclei
10226 DIMENSION RADNUC(18)
10227 DATA RADNUC / 8*0.0D0,2.52D0,2.45D0,2.37D0,2.45D0,2.44D0,2.55D0,
10228 & 2.58D0,2.71D0,2.66D0,2.71D0/
10229
10230 IF (N.LE.18) THEN
10231 IF (RADNUC(N).GT.0.0D0) THEN
10232 DT_RNCLUS = RADNUC(N)
10233 ELSE
10234 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10235 ENDIF
10236 ELSE
10237 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10238 ENDIF
10239
10240 RETURN
10241 END
10242
10243*$ CREATE DT_DENTST.FOR
10244*COPY DT_DENTST
10245*
10246*===dentst=============================================================*
10247*
10248C PROGRAM DT_DENTST
10249 SUBROUTINE DT_DENTST
10250
10251 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10252 SAVE
10253
10254 OPEN(40,FILE='dentst.out',STATUS='UNKNOWN')
10255 OPEN(41,FILE='denmax.out',STATUS='UNKNOWN')
10256
10257 RMIN = 0.0D0
10258 RMAX = 8.0D0
10259 NBINS = 500.0D0
10260 DR = (RMAX-RMIN)/DBLE(NBINS)
10261 DO 1 IA=5,18
10262 FMAX = 0.0D0
10263 DO 2 IR=1,NBINS+1
10264 R = RMIN+DBLE(IR-1)*DR
10265 F = DT_DENSIT(IA,R,R)
10266 IF (F.GT.FMAX) FMAX = F
10267 WRITE(40,'(1X,I3,2E15.5)') IA,R,F
10268 2 CONTINUE
10269 WRITE(41,'(1X,I3,E15.5)') IA,FMAX
10270 1 CONTINUE
10271
10272 CLOSE(40)
10273 CLOSE(41)
10274
10275 END
10276
10277*$ CREATE DT_SHMAKI.FOR
10278*COPY DT_SHMAKI
10279*
10280*===shmaki=============================================================*
10281*
10282 SUBROUTINE DT_SHMAKI(NA,NCA,NB,NCB,IJP,PPN,MODE)
10283
10284************************************************************************
10285* Initialisation of Glauber formalism. This subroutine has to be *
10286* called once (in case of target emulsions as often as many different *
10287* target nuclei are considered) before events are sampled. *
10288* NA / NCA mass number/charge of projectile nucleus *
10289* NB / NCB mass number/charge of target nucleus *
10290* IJP identity of projectile (hadrons/leptons/photons) *
10291* PPN projectile momentum (for projectile nuclei: *
10292* momentum per nucleon) in target rest system *
10293* MODE = 0 Glauber formalism invoked *
10294* = 1 fitted results are loaded from data-file *
10295* = 99 NTARG is forced to be 1 *
10296* (used in connection with GLAUBERI-card only) *
10297* This version dated 22.03.96 is based on the original SHMAKI-routine *
10298* and revised by S. Roesler. *
10299************************************************************************
10300
10301 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10302 SAVE
10303 PARAMETER ( LINP = 10 ,
10304 & LOUT = 6 ,
10305 & LDAT = 9 )
10306 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
10307 & THREE=3.0D0)
10308
10309 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10310* Glauber formalism: parameters
10311 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10312 & BMAX(NCOMPX),BSTEP(NCOMPX),
10313 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10314 & NSITEB,NSTATB
10315* Lorentz-parameters of the current interaction
10316 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10317 & UMO,PPCM,EPROJ,PPROJ
10318* properties of photon/lepton projectiles
10319 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10320* kinematical cuts for lepton-nucleus interactions
10321 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
10322 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
10323* Glauber formalism: cross sections
10324 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10325 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10326 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10327 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10328 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10329 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10330 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10331 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10332 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10333 & BSLOPE,NEBINI,NQBINI
10334* cuts for variable energy runs
10335 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
10336* nucleon-nucleon event-generator
10337 CHARACTER*8 CMODEL
10338 LOGICAL LPHOIN
10339 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10340* Glauber formalism: flags and parameters for statistics
10341 LOGICAL LPROD
10342 CHARACTER*8 CGLB
10343 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10344
10345 DATA NTARG,ICOUT,IVEOUT /0,0,0/
10346
10347C CALL DT_HISHAD
10348C STOP
10349
10350 NTARG = NTARG+1
10351 IF (MODE.EQ.99) NTARG = 1
10352 NIDX = -NTARG
10353 IF (MODE.EQ.-1) NIDX = NTARG
10354
10355 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) ICOUT = ICOUT+1
10356 IF (ICOUT.EQ.1) WRITE(LOUT,1000)
10357 1000 FORMAT(//,1X,'SHMAKI: Glauber formalism (Shmakov et. al) -',
10358 & ' initialization',/,12X,'--------------------------',
10359 & '-------------------------',/)
10360
10361 IF (MODE.EQ.2) THEN
10362 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10363 CALL DT_SHFAST(MODE,PPN,IBACK)
10364 STOP ' Glauber pre-initialization done'
10365 ENDIF
10366 IF (MODE.EQ.1) THEN
10367 CALL DT_PROFBI(NA,NB,PPN,NTARG)
10368 ELSE
10369 IBACK = 1
10370 IF (MODE.EQ.3) CALL DT_SHFAST(MODE,PPN,IBACK)
10371 IF (IBACK.EQ.1) THEN
10372* lepton-nucleus (variable energy runs)
10373 IF ((IJP.EQ. 3).OR.(IJP.EQ. 4).OR.
10374 & (IJP.EQ.10).OR.(IJP.EQ.11)) THEN
10375 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10376 & WRITE(LOUT,1002) NB,NCB
10377 1002 FORMAT(1X,'variable energy run: projectile-id: 7',
10378 & ' target A/Z: ',I3,' /',I3,/,/,8X,
10379 & 'E_cm (GeV) Q^2 (GeV^2)',
10380 & ' Sigma_tot (mb) Sigma_in (mb)',/,7X,
10381 & '--------------------------------',
10382 & '------------------------------')
10383 AECMLO = LOG10(MIN(UMO,ECMLI))
10384 AECMHI = LOG10(MIN(UMO,ECMHI))
10385 IESTEP = NEB-1
10386 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10387 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10388 DO 1 I=1,IESTEP+1
10389 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10390 IF (Q2HI.GT.0.1D0) THEN
10391 IF (Q2LI.LT.0.01D0) THEN
10392 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10393 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10394 & WRITE(LOUT,1003)
10395 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10396 Q2LI = 0.01D0
10397 IBIN = 2
10398 ELSE
10399 IBIN = 1
10400 ENDIF
10401 IQSTEP = NQB-IBIN
10402 AQ2LO = LOG10(Q2LI)
10403 AQ2HI = LOG10(Q2HI)
10404 DAQ2 = (AQ2HI-AQ2LO)/MAX(DBLE(IQSTEP),ONE)
10405 DO 2 J=IBIN,IQSTEP+IBIN
10406 Q2 = 10.0D0**(AQ2LO+DBLE(J-IBIN)*DAQ2)
10407 CALL DT_XSGLAU(NA,NB,7,ZERO,Q2,ECM,I,J,NIDX)
10408 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10409 & WRITE(LOUT,1003) ECMNN(I),
10410 & Q2G(J),XSTOT(I,J,NTARG),XSPRO(I,J,NTARG)
10411 2 CONTINUE
10412 ELSE
10413 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10414 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10415 & WRITE(LOUT,1003)
10416 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10417 ENDIF
10418 1003 FORMAT(9X,F6.1,9X,F6.2,8X,F8.3,11X,F8.3)
10419 1 CONTINUE
10420 IVEOUT = 1
10421 ELSE
10422* hadron/photon/nucleus-nucleus
10423 IF ((ABS(VAREHI).GT.ZERO).AND.
10424 & (ABS(VAREHI).GT.ABS(VARELO))) THEN
10425 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) THEN
10426 WRITE(LOUT,1004) NA,NB,NCB
10427 1004 FORMAT(1X,'variable energy run: projectile-id:',
10428 & I3,' target A/Z: ',I3,' /',I3,/)
10429 WRITE(LOUT,1005)
10430 1005 FORMAT(' E_cm (GeV) E_Lab (GeV) sig_tot^pp (mb)'
10431 & ,' Sigma_tot (mb) Sigma_prod (mb)',/,
10432 & ' -------------------------------------',
10433 & '--------------------------------------')
10434 ENDIF
10435 AECMLO = LOG10(VARCLO)
10436 AECMHI = LOG10(VARCHI)
10437 IESTEP = NEB-1
10438 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10439 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10440 DO 3 I=1,IESTEP+1
10441 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10442 AMP = 0.938D0
10443 AMT = 0.938D0
10444 AMP2 = AMP**2
10445 AMT2 = AMT**2
10446 ELAB = (ECM**2-AMP2-AMT2)/(TWO*AMT)
10447 PLAB = SQRT((ELAB+AMP)*(ELAB-AMP))
10448 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,ECM,I,1,NIDX)
10449 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10450 & WRITE(LOUT,1006)
10451 & ECM,PLAB,SIGSH,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10452 1006 FORMAT(1X,F9.1,1X,E11.3,1X,F12.2,8X,F10.3,8X,F8.3)
10453 3 CONTINUE
10454 IVEOUT = 1
10455 ELSE
10456 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10457 ENDIF
10458 ENDIF
10459 ENDIF
10460 ENDIF
10461
10462 IF ((ICOUT.LT.15).AND.(IVEOUT.EQ.0).AND.(MCGENE.NE.4).AND.
10463 & (IOGLB.NE.100)) THEN
10464 WRITE(LOUT,1001) NA,NCA,NB,NCB,ECMNN(1),SIGSH*10.0D0,ROSH,
10465 & BSLOPE,NSITEB,NSTATB,XSPRO(1,1,NTARG)
10466 1001 FORMAT(38X,'projectile',
10467 & ' target',/,1X,'Mass number / charge',
10468 & 17X,I3,' /',I3,6X,I3,' /',I3,/,/,1X,
10469 & 'Nucleon-nucleon c.m. energy',9X,F10.2,' GeV',/,/,1X,
10470 & 'Parameters of elastic scattering amplitude:',/,5X,
10471 & 'sigma =',F7.2,' mb',6X,'rho = ',F9.4,6X,'slope = ',
10472 & F4.1,' GeV^-2',/,/,1X,'Number of b-steps',4X,I3,8X,
10473 & 'statistics at each b-step',4X,I5,/,/,1X,
10474 & 'Prod. cross section ',5X,F10.4,' mb',/)
10475 ENDIF
10476
10477 RETURN
10478 END
10479
10480*$ CREATE DT_PROFBI.FOR
10481*COPY DT_PROFBI
10482*
10483*===profbi=============================================================*
10484*
10485 SUBROUTINE DT_PROFBI(NA,NB,PPN,NTARG)
10486
10487************************************************************************
10488* Integral over profile function (to be used for impact-parameter *
10489* sampling during event generation). *
10490* Fitted results are used. *
10491* NA / NB mass numbers of proj./target nuclei *
10492* PPN projectile momentum (for projectile nuclei: *
10493* momentum per nucleon) in target rest system *
10494* NTARG index of target material (i.e. kind of nucleus) *
10495* This version dated 31.05.95 is revised by S. Roesler *
10496************************************************************************
10497
10498 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10499 SAVE
10500 PARAMETER ( LINP = 10 ,
10501 & LOUT = 6 ,
10502 & LDAT = 9 )
454792a9 10503CPH SAVE
9aaba0d6 10504
10505 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
10506
10507 LOGICAL LSTART
10508 CHARACTER CNAME*80
10509
10510 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10511* Glauber formalism: parameters
10512 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10513 & BMAX(NCOMPX),BSTEP(NCOMPX),
10514 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10515 & NSITEB,NSTATB
10516* Glauber formalism: cross sections
10517 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10518 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10519 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10520 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10521 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10522 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10523 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10524 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10525 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10526 & BSLOPE,NEBINI,NQBINI
10527
10528 PARAMETER (NGLMAX=8000)
10529 DIMENSION NGLIT(NGLMAX),NGLIP(NGLMAX),GLAPPN(NGLMAX),
10530 & GLASIG(NGLMAX),GLAFIT(5,NGLMAX)
10531
10532 DATA LSTART /.TRUE./
10533
10534 IF (LSTART) THEN
10535* read fit-parameters from file
10536 OPEN(47,FILE='inpdata/glpara.dat',STATUS='UNKNOWN')
10537 I = 0
10538 1 CONTINUE
10539 READ(47,'(A80)') CNAME
10540 IF (CNAME.EQ.'STOP') GOTO 2
10541 I = I+1
10542 READ(CNAME,*) NGLIP(I),NGLIT(I),GLAPPN(I),GLASIG(I),
10543 & GLAFIT(1,I),GLAFIT(2,I),GLAFIT(3,I),
10544 & GLAFIT(4,I),GLAFIT(5,I)
10545 IF (I+1.GT.NGLMAX) THEN
10546 WRITE(LOUT,1000)
10547 1000 FORMAT(1X,'PROFBI: warning! array size exceeded - ',
10548 & 'program stopped')
10549 STOP
10550 ENDIF
10551 GOTO 1
10552 2 CONTINUE
10553 NGLPAR = I
10554 LSTART = .FALSE.
10555 ENDIF
10556
10557 NNA = NA
10558 NNB = NB
10559 IF (NA.GT.NB) THEN
10560 NNA = NB
10561 NNB = NA
10562 ENDIF
10563 IDXGLA = 0
10564 DO 3 J=1,NGLPAR
10565 IF ((NNB.LT.NGLIT(J)).OR.(J.EQ.NGLPAR)) THEN
10566 IF (NNB.NE.NGLIT(J-1)) NNB = NGLIT(J-1)
10567 DO 4 K=1,J-1
10568 IPOINT = J-K
10569 IF (J.EQ.NGLPAR) IPOINT = J+1-K
10570 IF ((NNA.GT.NGLIP(IPOINT)).OR.
10571 & (NNB.NE.NGLIT(IPOINT)).OR.(IPOINT.EQ.1)) THEN
10572 IF (IPOINT.EQ.1) IPOINT = 0
10573 NATMP = NGLIP(IPOINT+1)
10574 IF (PPN.LT.GLAPPN(IPOINT+1)) THEN
10575 IDXGLA = IPOINT+1
10576 GOTO 6
10577 ELSE
10578 J1BEG = IPOINT+1
10579 J1END = J
10580C IF (J.EQ.NGLPAR) THEN
10581C J1BEG = IPOINT
10582C J1END = J
10583C ENDIF
10584 DO 5 J1=J1BEG,J1END
10585 IF (NGLIP(J1).EQ.NATMP) THEN
10586 IF (PPN.LT.GLAPPN(J1)) THEN
10587 IDXGLA = J1
10588 GOTO 6
10589 ENDIF
10590 ELSE
10591 IDXGLA = J1-1
10592 GOTO 6
10593 ENDIF
10594 5 CONTINUE
10595 IF ((J.EQ.NGLPAR).AND.(PPN.GT.GLAPPN(NGLPAR)))
10596 & IDXGLA = NGLPAR
10597 ENDIF
10598 ENDIF
10599 4 CONTINUE
10600 ENDIF
10601 3 CONTINUE
10602
10603 6 CONTINUE
10604 IF (IDXGLA.EQ.0) THEN
10605 WRITE(LOUT,1001) NNA,NNB,PPN
10606 1001 FORMAT(1X,'PROFBI: configuration (NA,NB,PPN = ',
10607 & 2I4,F6.0,') not found ')
10608 STOP
10609 ENDIF
10610
10611* no interpolation yet available
10612 XSPRO(1,1,NTARG) = GLASIG(IDXGLA)
10613
10614 BSITE(1,1,NTARG,1) = ZERO
10615 DO 10 I=2,NSITEB
10616 XX = DBLE(I)
10617 POLY = GLAFIT(1,IDXGLA)+GLAFIT(2,IDXGLA)*XX+
10618 & GLAFIT(3,IDXGLA)*XX**2+GLAFIT(4,IDXGLA)*XX**3+
10619 & GLAFIT(5,IDXGLA)*XX**4
10620 IF (ABS(POLY).GT.35.0D0) POLY = SIGN(35.0D0,POLY)
10621 BSITE(1,1,NTARG,I) = (1.0D0-EXP(-POLY))
10622 IF (BSITE(1,1,NTARG,I).LT.ZERO) BSITE(1,1,NTARG,I) = ZERO
10623 10 CONTINUE
10624
10625 RETURN
10626 END
10627
10628*$ CREATE DT_GLAUBE.FOR
10629*COPY DT_GLAUBE
10630*
10631*===glaube=============================================================*
10632*
10633 SUBROUTINE DT_GLAUBE(NA,NB,IJPROJ,B,INTT,INTA,INTB,JS,JT,NIDX)
10634
10635************************************************************************
10636* Calculation of configuartion of interacting nucleons for one event. *
10637* NB / NB mass numbers of proj./target nuclei (input) *
10638* B impact parameter (output) *
10639* INTT total number of wounded nucleons " *
10640* INTA / INTB number of wounded nucleons in proj. / target " *
10641* JS / JT(i) number of collisions proj. / target nucleon i is *
10642* involved (output) *
10643* NIDX index of projectile/target material (input) *
10644* = -2 call within FLUKA transport calculation *
10645* This is an update of the original routine SHMAKO by J.Ranft/HJM *
10646* This version dated 22.03.96 is revised by S. Roesler *
10647* *
10648* Last change 27.12.2006 by S. Roesler. *
10649************************************************************************
10650
10651 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10652 SAVE
10653 PARAMETER ( LINP = 10 ,
10654 & LOUT = 6 ,
10655 & LDAT = 9 )
10656 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
10657 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
10658
10659 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10660 PARAMETER ( MAXNCL = 260,
10661 & MAXVQU = MAXNCL,
10662 & MAXSQU = 20*MAXVQU,
10663 & MAXINT = MAXVQU+MAXSQU)
10664* Glauber formalism: parameters
10665 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10666 & BMAX(NCOMPX),BSTEP(NCOMPX),
10667 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10668 & NSITEB,NSTATB
10669* Glauber formalism: cross sections
10670 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10671 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10672 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10673 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10674 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10675 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10676 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10677 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10678 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10679 & BSLOPE,NEBINI,NQBINI
10680* Lorentz-parameters of the current interaction
10681 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10682 & UMO,PPCM,EPROJ,PPROJ
10683* properties of photon/lepton projectiles
10684 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10685* Glauber formalism: collision properties
10686 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
10687 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
10688* Glauber formalism: flags and parameters for statistics
10689 LOGICAL LPROD
10690 CHARACTER*8 CGLB
10691 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10692
10693 DIMENSION JS(MAXNCL),JT(MAXNCL)
10694
10695 NTARG = ABS(NIDX)
10696
10697* get actual energy from /DTLTRA/
10698 ECMNOW = UMO
10699 Q2 = VIRT
10700*
10701* new patch for pre-initialized variable projectile/target/energy runs,
10702* bypassed for use within FLUKA (Nidx=-2)
10703 IF (IOGLB.EQ.100) THEN
10704 IF (NIDX.NE.-2) CALL DT_GLBSET(IJPROJ,NA,NB,EPROJ,1)
10705*
10706* variable energy run, interpolate profile function
10707 ELSE
10708 I1 = 1
10709 I2 = 1
10710 RATE = ONE
10711 IF (NEBINI.GT.1) THEN
10712 IF (ECMNOW.GE.ECMNN(NEBINI)) THEN
10713 I1 = NEBINI
10714 I2 = NEBINI
10715 RATE = ONE
10716 ELSEIF (ECMNOW.GT.ECMNN(1)) THEN
10717 DO 1 I=2,NEBINI
10718 IF (ECMNOW.LT.ECMNN(I)) THEN
10719 I1 = I-1
10720 I2 = I
10721 RATE = (ECMNOW-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
10722 GOTO 2
10723 ENDIF
10724 1 CONTINUE
10725 2 CONTINUE
10726 ENDIF
10727 ENDIF
10728 J1 = 1
10729 J2 = 1
10730 RATQ = ONE
10731 IF (NQBINI.GT.1) THEN
10732 IF (Q2.GE.Q2G(NQBINI)) THEN
10733 J1 = NQBINI
10734 J2 = NQBINI
10735 RATQ = ONE
10736 ELSEIF (Q2.GT.Q2G(1)) THEN
10737 DO 3 I=2,NQBINI
10738 IF (Q2.LT.Q2G(I)) THEN
10739 J1 = I-1
10740 J2 = I
10741 RATQ = LOG10( Q2/MAX(Q2G(J1),TINY14))/
10742 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
10743C RATQ = (Q2-Q2G(J1))/(Q2G(J2)-Q2G(J1))
10744 GOTO 4
10745 ENDIF
10746 3 CONTINUE
10747 4 CONTINUE
10748 ENDIF
10749 ENDIF
10750
10751 DO 5 I=1,KSITEB
10752 BSITE(0,1,NTARG,I) = BSITE(I1,J1,NTARG,I)+
10753 & RATE*(BSITE(I2,J1,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10754 & RATQ*(BSITE(I1,J2,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10755 & RATE*RATQ*(BSITE(I2,J2,NTARG,I)-BSITE(I1,J2,NTARG,I)+
10756 & BSITE(I1,J1,NTARG,I)-BSITE(I2,J1,NTARG,I))
10757 5 CONTINUE
10758 ENDIF
10759
10760 CALL DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,INTT,INTA,INTB,IDIREC,NIDX)
10761 IF (NIDX.LE.-1) THEN
10762 RPROJ = RASH(1)
10763 RTARG = RBSH(NTARG)
10764 ELSE
10765 RPROJ = RASH(NTARG)
10766 RTARG = RBSH(1)
10767 ENDIF
10768
10769 RETURN
10770 END
10771
10772*$ CREATE DT_DIAGR.FOR
10773*COPY DT_DIAGR
10774*
10775*===diagr==============================================================*
10776*
10777 SUBROUTINE DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,JNT,INTA,INTB,IDIREC,
10778 & NIDX)
10779
10780************************************************************************
10781* Based on the original version by Shmakov et al. *
10782* This version dated 21.04.95 is revised by S. Roesler *
10783************************************************************************
10784
10785 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10786 SAVE
10787 PARAMETER ( LINP = 10 ,
10788 & LOUT = 6 ,
10789 & LDAT = 9 )
10790 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10791 PARAMETER (TWOPI = 6.283185307179586454D+00,
10792 & PI = TWOPI/TWO,
10793 & GEV2MB = 0.38938D0,
10794 & GEV2FM = 0.1972D0,
10795 & ALPHEM = ONE/137.0D0,
10796* proton mass
10797 & AMP = 0.938D0,
10798 & AMP2 = AMP**2,
10799* rho0 mass
10800 & AMRHO0 = 0.77D0)
10801
10802 COMPLEX*16 C,CA,CI
10803 PARAMETER ( MAXNCL = 260,
10804 & MAXVQU = MAXNCL,
10805 & MAXSQU = 20*MAXVQU,
10806 & MAXINT = MAXVQU+MAXSQU)
10807* particle properties (BAMJET index convention)
10808 CHARACTER*8 ANAME
10809 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
10810 & IICH(210),IIBAR(210),K1(210),K2(210)
10811 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10812* emulsion treatment
10813 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
10814 & NCOMPO,IEMUL
10815* Glauber formalism: parameters
10816 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10817 & BMAX(NCOMPX),BSTEP(NCOMPX),
10818 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10819 & NSITEB,NSTATB
10820* Glauber formalism: cross sections
10821 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10822 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10823 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10824 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10825 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10826 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10827 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10828 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10829 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10830 & BSLOPE,NEBINI,NQBINI
10831* VDM parameter for photon-nucleus interactions
10832 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
10833* nucleon-nucleon event-generator
10834 CHARACTER*8 CMODEL
10835 LOGICAL LPHOIN
10836 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10837**PHOJET105a
10838C COMMON /CUTOFF/ PTCUT(4),CUTMU(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10839**PHOJET112
10840C obsolete cut-off information
10841 DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
10842 COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10843**
10844* coordinates of nucleons
10845 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
10846* interface between Glauber formalism and DPM
10847 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
10848 & INTER1(MAXINT),INTER2(MAXINT)
10849* statistics: Glauber-formalism
10850 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
10851* n-n cross section fluctuations
10852 PARAMETER (NBINS = 1000)
10853 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
10854
10855 DIMENSION JS(MAXNCL),JT(MAXNCL),
10856 & JS0(MAXNCL),JT0(MAXNCL,MAXNCL),
10857 & JI1(MAXNCL,MAXNCL),JI2(MAXNCL,MAXNCL),JNT0(MAXNCL)
10858 DIMENSION NWA(0:210),NWB(0:210)
10859
10860 LOGICAL LFIRST
10861 DATA LFIRST /.TRUE./
10862
10863 DATA NTARGO,ICNT /0,0/
10864
10865 NTARG = ABS(NIDX)
10866
10867 IF (LFIRST) THEN
10868 LFIRST = .FALSE.
10869 IF (NCOMPO.EQ.0) THEN
10870 NCALL = 0
10871 NWAMAX = NA
10872 NWBMAX = NB
10873 DO 17 I=0,210
10874 NWA(I) = 0
10875 NWB(I) = 0
10876 17 CONTINUE
10877 ENDIF
10878 ENDIF
10879 IF (NTARG.EQ.-1) THEN
10880 IF (NCOMPO.EQ.0) THEN
10881 WRITE(LOUT,*) ' DIAGR: distribution of wounded nucleons'
10882 WRITE(LOUT,'(8X,A,3I7)') 'NCALL,NWAMAX,NWBMAX = ',
10883 & NCALL,NWAMAX,NWBMAX
10884 DO 18 I=1,MAX(NWAMAX,NWBMAX)
10885 WRITE(LOUT,'(8X,2I7,E12.4,I7,E12.4)')
10886 & I,NWA(I),DBLE(NWA(I))/DBLE(NCALL),
10887 & NWB(I),DBLE(NWB(I))/DBLE(NCALL)
10888 18 CONTINUE
10889 ENDIF
10890 RETURN
10891 ENDIF
10892
10893 DCOH = 1.0D10
10894 IPNT = 0
10895
10896 SQ2 = Q2
10897 IF (SQ2.LE.ZERO) SQ2 = 0.0001D0
10898 S = ECMNOW**2
10899 X = SQ2/(S+SQ2-AMP2)
10900 XNU = (S+SQ2-AMP2)/(TWO*AMP)
10901* photon projectiles: recalculate photon-nucleon amplitude
10902 IF (IJPROJ.EQ.7) THEN
10903 15 CONTINUE
10904* VDM assumption: mass of V-meson
10905 AMV2 = DT_SAM2(SQ2,ECMNOW)
10906 AMV = SQRT(AMV2)
10907 IF (AMV.GT.2.0D0*PTCUT(1)) GOTO 15
10908* check for pointlike interaction
10909 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,1)
10910**sr 27.10.
10911C SIGSH = DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10912 SIGSH = (ONE-RPNT)*DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10913**
10914 ROSH = 0.1D0
10915 BSLOPE = 2.0D0*(2.0D0+AMRHO0**2/(AMV2+SQ2)
10916 & +0.25D0*LOG(S/(AMV2+SQ2)))
10917* coherence length
10918 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+SQ2)*GEV2FM
10919 ELSEIF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
10920 IF (MCGENE.EQ.2) THEN
10921 ZERO1 = ZERO
10922 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SDUM1,SDUM2,SDUM3,
10923 & BSLOPE,0)
10924 ELSE
10925 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
10926 ENDIF
10927 IF (ECMNOW.LE.3.0D0) THEN
10928 ROSH = -0.43D0
10929 ELSEIF ((ECMNOW.GT.3.0D0).AND.(ECMNOW.LE.50.D0)) THEN
10930 ROSH = -0.63D0+0.175D0*LOG(ECMNOW)
10931 ELSEIF (ECMNOW.GT.50.0D0) THEN
10932 ROSH = 0.1D0
10933 ENDIF
10934 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10935 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10936 IF (MCGENE.EQ.2) THEN
10937 ZERO1 = ZERO
10938 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SIGSH,SDUM2,SDUM3,
10939 & BDUM,0)
10940 SIGSH = SIGSH/10.0D0
10941 ELSE
10942C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10943 DUMZER = ZERO
10944 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10945 SIGSH = SIGSH/10.0D0
10946 ENDIF
10947 ELSE
10948 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
10949 ROSH = 0.01D0
10950 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10951 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10952C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10953 DUMZER = ZERO
10954 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10955 SIGSH = SIGSH/10.0D0
10956 ENDIF
10957 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
10958 GAM = GSH
10959 RCA = GAM*SIGSH/TWOPI
10960 FCA = -ROSH*RCA
10961 CA = DCMPLX(RCA,FCA)
10962 CI = DCMPLX(ONE,ZERO)
10963
10964 16 CONTINUE
10965* impact parameter
10966 IF (MCGENE.NE.3) CALL DT_MODB(B,NIDX)
10967
10968 NTRY = 0
10969 3 CONTINUE
10970 NTRY = NTRY+1
10971* initializations
10972 JNT = 0
10973 DO 1 I=1,NA
10974 JS(I) = 0
10975 1 CONTINUE
10976 DO 2 I=1,NB
10977 JT(I) = 0
10978 2 CONTINUE
10979 IF (IJPROJ.EQ.7) THEN
10980 DO 8 I=1,MAXNCL
10981 JS0(I) = 0
10982 JNT0(I)= 0
10983 DO 9 J=1,NB
10984 JT0(I,J) = 0
10985 9 CONTINUE
10986 8 CONTINUE
10987 ENDIF
10988
10989* nucleon configuration
10990C IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,5).EQ.0)) THEN
10991 IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,1).EQ.0)) THEN
10992C CALL DT_CONUCL(PKOO,NA,RASH,2)
10993C CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),1)
10994 IF (NIDX.LE.-1) THEN
10995 CALL DT_CONUCL(PKOO,NA,RASH(1),0)
10996 CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),0)
10997 ELSE
10998 CALL DT_CONUCL(PKOO,NA,RASH(NTARG),0)
10999 CALL DT_CONUCL(TKOO,NB,RBSH(1),0)
11000 ENDIF
11001 NTARGO = NTARG
11002 ENDIF
11003 ICNT = ICNT+1
11004
11005* LEPTO: pick out one struck nucleon
11006 IF (MCGENE.EQ.3) THEN
11007 JNT = 1
11008 JS(1) = 1
11009 IDX = INT(DT_RNDM(X)*NB)+1
11010 JT(IDX) = 1
11011 B = ZERO
11012 GOTO 19
11013 ENDIF
11014
11015 DO 4 INA=1,NA
11016* cross section fluctuations
11017 AFLUC = ONE
11018 IF (IFLUCT.EQ.1) THEN
11019 IFLUK = INT((DT_RNDM(X)+0.001D0)*1000.0D0)
11020 AFLUC = FLUIXX(IFLUK)
11021 ENDIF
11022 KK1 = 1
11023 KINT = 1
11024 DO 5 INB=1,NB
11025* photon-projectile: check for supression by coherence length
11026 IF (IJPROJ.EQ.7) THEN
11027 IF (ABS(TKOO(3,INB)-TKOO(3,KK1)).GT.DCOH) THEN
11028 KK1 = INB
11029 KINT = KINT+1
11030 ENDIF
11031 ENDIF
11032 QQ1 = B+TKOO(1,INB)-PKOO(1,INA)
11033 QQ2 = TKOO(2,INB)-PKOO(2,INA)
11034 XY = GAM*(QQ1*QQ1+QQ2*QQ2)
11035 IF (XY.LE.15.0D0) THEN
11036 C = CI-CA*AFLUC*EXP(-XY)
11037 AR = DBLE(C)
11038 AI = DIMAG(C)
11039 P = AR*AR+AI*AI
11040 IF (DT_RNDM(XY).GE.P) THEN
11041 JNT = JNT+1
11042 IF (IJPROJ.EQ.7) THEN
11043 JNT0(KINT) = JNT0(KINT)+1
11044 IF (JNT0(KINT).GT.MAXNCL) THEN
11045 WRITE(LOUT,1001) MAXNCL
11046 1001 FORMAT(1X,
11047 & 'DIAGR: no. of requested interactions',
11048 & ' exceeds array dimensions ',I4)
11049 STOP
11050 ENDIF
11051 JS0(KINT) = JS0(KINT)+1
11052 JT0(KINT,INB) = JT0(KINT,INB)+1
11053 JI1(KINT,JNT0(KINT)) = INA
11054 JI2(KINT,JNT0(KINT)) = INB
11055 ELSE
11056 IF (JNT.GT.MAXINT) THEN
11057 WRITE(LOUT,1000) JNT, MAXINT
11058 1000 FORMAT(1X,
11059 & 'DIAGR: no. of requested interactions ('
11060 & ,I4,') exceeds array dimensions (',I4,')')
11061 STOP
11062 ENDIF
11063 JS(INA) = JS(INA)+1
11064 JT(INB) = JT(INB)+1
11065 INTER1(JNT) = INA
11066 INTER2(JNT) = INB
11067 ENDIF
11068 ENDIF
11069 ENDIF
11070 5 CONTINUE
11071 4 CONTINUE
11072
11073 IF (JNT.EQ.0) THEN
11074 IF (NTRY.LT.500) THEN
11075 GOTO 3
11076 ELSE
11077C WRITE(6,*) ' new impact parameter required (old= ',B,')'
11078 GOTO 16
11079 ENDIF
11080 ENDIF
11081
11082 IDIREC = 0
11083 IF (IJPROJ.EQ.7) THEN
11084 K = INT(ONE+DT_RNDM(X)*DBLE(KINT))
11085 10 CONTINUE
11086 IF (JNT0(K).EQ.0) THEN
11087 K = K+1
11088 IF (K.GT.KINT) K = 1
11089 GOTO 10
11090 ENDIF
11091* supress Glauber-cascade by direct photon processes
11092 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,2)
11093 IF (IPNT.GT.0) THEN
11094 JNT = 1
11095 JS(1) = 1
11096 DO 11 INB=1,NB
11097 JT(INB) = JT0(K,INB)
11098 IF (JT(INB).GT.0) GOTO 12
11099 11 CONTINUE
11100 12 CONTINUE
11101 INTER1(1) = 1
11102 INTER2(1) = INB
11103 IDIREC = IPNT
11104 ELSE
11105 JNT = JNT0(K)
11106 JS(1) = JS0(K)
11107 DO 13 INB=1,NB
11108 JT(INB) = JT0(K,INB)
11109 13 CONTINUE
11110 DO 14 I=1,JNT
11111 INTER1(I) = JI1(K,I)
11112 INTER2(I) = JI2(K,I)
11113 14 CONTINUE
11114 ENDIF
11115 ENDIF
11116
11117 19 CONTINUE
11118 INTA = 0
11119 INTB = 0
11120 DO 6 I=1,NA
11121 IF (JS(I).NE.0) INTA=INTA+1
11122 6 CONTINUE
11123 DO 7 I=1,NB
11124 IF (JT(I).NE.0) INTB=INTB+1
11125 7 CONTINUE
11126 ICWPG = INTA
11127 ICWTG = INTB
11128 ICIG = JNT
11129 IPGLB = IPGLB+INTA
11130 ITGLB = ITGLB+INTB
11131 NGLB = NGLB+1
11132
11133 IF (NCOMPO.EQ.0) THEN
11134 NCALL = NCALL+1
11135 NWA(INTA) = NWA(INTA)+1
11136 NWB(INTB) = NWB(INTB)+1
11137 ENDIF
11138
11139 RETURN
11140 END
11141
11142*$ CREATE DT_MODB.FOR
11143*COPY DT_MODB
11144*
11145*===modb===============================================================*
11146*
11147 SUBROUTINE DT_MODB(B,NIDX)
11148
11149************************************************************************
11150* Sampling of impact parameter of collision. *
11151* B impact parameter (output) *
11152* NIDX index of projectile/target material (input)*
11153* Based on the original version by Shmakov et al. *
11154* This version dated 21.04.95 is revised by S. Roesler *
11155* *
11156* Last change 27.12.2006 by S. Roesler. *
11157************************************************************************
11158
11159 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11160 SAVE
11161 PARAMETER ( LINP = 10 ,
11162 & LOUT = 6 ,
11163 & LDAT = 9 )
11164 PARAMETER (ZERO=0.0D0,TINY15=1.0D-15,ONE=1.0D0,TWO=2.0D0)
11165
11166 LOGICAL LEFT,LFIRST
11167
11168* central particle production, impact parameter biasing
11169 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
11170 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11171* Glauber formalism: parameters
11172 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11173 & BMAX(NCOMPX),BSTEP(NCOMPX),
11174 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11175 & NSITEB,NSTATB
11176* Glauber formalism: cross sections
11177 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11178 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11179 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11180 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11181 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11182 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11183 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11184 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11185 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11186 & BSLOPE,NEBINI,NQBINI
11187
11188 DATA LFIRST /.TRUE./
11189
11190 NTARG = ABS(NIDX)
11191 IF (NIDX.LE.-1) THEN
11192 RA = RASH(1)
11193 RB = RBSH(NTARG)
11194 ELSE
11195 RA = RASH(NTARG)
11196 RB = RBSH(1)
11197 ENDIF
11198
11199 IF (ICENTR.EQ.2) THEN
11200 IF (RA.EQ.RB) THEN
11201 BB = DT_RNDM(B)*(0.3D0*RA)**2
11202 B = SQRT(BB)
11203 ELSEIF(RA.LT.RB)THEN
11204 BB = DT_RNDM(B)*1.4D0*(RB-RA)**2
11205 B = SQRT(BB)
11206 ELSEIF(RA.GT.RB)THEN
11207 BB = DT_RNDM(B)*1.4D0*(RA-RB)**2
11208 B = SQRT(BB)
11209 ENDIF
11210 ELSE
11211 9 CONTINUE
11212 Y = DT_RNDM(BB)
11213 I0 = 1
11214 I2 = NSITEB
11215 10 CONTINUE
11216 I1 = (I0+I2)/2
11217 LEFT = ((BSITE(0,1,NTARG,I0)-Y)
11218 & *(BSITE(0,1,NTARG,I1)-Y)).LT.ZERO
11219 IF (LEFT) GOTO 20
11220 I0 = I1
11221 GOTO 30
11222 20 CONTINUE
11223 I2 = I1
11224 30 CONTINUE
11225 IF (I2-I0-2) 40,50,60
11226 40 CONTINUE
11227 I1 = I2+1
11228 IF (I1.GT.NSITEB) I1 = I0-1
11229 GOTO 70
11230 50 CONTINUE
11231 I1 = I0+1
11232 GOTO 70
11233 60 CONTINUE
11234 GOTO 10
11235 70 CONTINUE
11236 X0 = DBLE(I0-1)*BSTEP(NTARG)
11237 X1 = DBLE(I1-1)*BSTEP(NTARG)
11238 X2 = DBLE(I2-1)*BSTEP(NTARG)
11239 Y0 = BSITE(0,1,NTARG,I0)
11240 Y1 = BSITE(0,1,NTARG,I1)
11241 Y2 = BSITE(0,1,NTARG,I2)
11242 80 CONTINUE
11243 B = X0*(Y-Y1)*(Y-Y2)/((Y0-Y1)*(Y0-Y2)+TINY15)+
11244 & X1*(Y-Y0)*(Y-Y2)/((Y1-Y0)*(Y1-Y2)+TINY15)+
11245 & X2*(Y-Y0)*(Y-Y1)/((Y2-Y0)*(Y2-Y1)+TINY15)
11246**sr 5.4.98: shift B by half the bin width to be in agreement with BPROD
11247 B = B+0.5D0*BSTEP(NTARG)
11248 IF (B.LT.ZERO) B = X1
11249 IF (B.GT.BMAX(NTARG)) B = BMAX(NTARG)
11250 IF (ICENTR.LT.0) THEN
11251 IF (LFIRST) THEN
11252 LFIRST = .FALSE.
11253 IF (ICENTR.LE.-100) THEN
11254 BIMIN = 0.0D0
11255 ELSE
11256 XSFRAC = 0.0D0
11257 ENDIF
11258 CALL DT_GETBXS(XSFRAC,BIMIN,BIMAX,NTARG)
11259 WRITE(LOUT,1000) RASH(1),RBSH(NTARG),BMAX(NTARG),
11260 & BIMIN,BIMAX,XSFRAC*100.0D0,
11261 & XSFRAC*XSPRO(1,1,NTARG)
11262 10000 FORMAT(/,1X,'DT_MODB: Biasing in impact parameter',
11263 & /,15X,'---------------------------'/,/,4X,
11264 & 'average radii of proj / targ :',F10.3,' fm /',
11265 & F7.3,' fm',/,4X,'corresp. b_max (4*(r_p+r_t)) :',
11266 & F10.3,' fm',/,/,21X,'b_lo / b_hi :',
11267 & F10.3,' fm /',F7.3,' fm',/,5X,'percentage of',
11268 & ' cross section :',F10.3,' %',/,5X,
11269 & 'corresponding cross section :',F10.3,' mb',/)
11270 ENDIF
11271 IF (ABS(BIMAX-BIMIN).LT.1.0D-3) THEN
11272 B = BIMIN
11273 ELSE
11274 IF ((B.LT.BIMIN).OR.(B.GT.BIMAX)) GOTO 9
11275 ENDIF
11276 ENDIF
11277 ENDIF
11278
11279 RETURN
11280 END
11281
11282*$ CREATE DT_SHFAST.FOR
11283*COPY DT_SHFAST
11284*
11285*===shfast=============================================================*
11286*
11287 SUBROUTINE DT_SHFAST(MODE,PPN,IBACK)
11288
11289 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11290 SAVE
11291 PARAMETER ( LINP = 10 ,
11292 & LOUT = 6 ,
11293 & LDAT = 9 )
11294 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY1=1.0D-1,
11295 & ONE=1.0D0,TWO=2.0D0)
11296
11297 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11298* Glauber formalism: parameters
11299 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11300 & BMAX(NCOMPX),BSTEP(NCOMPX),
11301 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11302 & NSITEB,NSTATB
11303* properties of interacting particles
11304 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11305* Glauber formalism: cross sections
11306 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11307 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11308 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11309 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11310 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11311 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11312 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11313 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11314 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11315 & BSLOPE,NEBINI,NQBINI
11316
11317 IBACK = 0
11318
11319 IF (MODE.EQ.2) THEN
11320 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11321 WRITE(47,1000) IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG,PPN
11322 1000 FORMAT(1X,8I5,E15.5)
11323 WRITE(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11324 1001 FORMAT(1X,4E15.5)
11325 WRITE(47,1002) SIGSH,ROSH,GSH
11326 1002 FORMAT(1X,3E15.5)
11327 DO 10 I=1,100
11328 WRITE(47,'(1X,E15.5)') BSITE(1,1,1,I)
11329 10 CONTINUE
11330 WRITE(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11331 1003 FORMAT(1X,2I10,3E15.5)
11332 CLOSE(47)
11333 ELSE
11334 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11335 READ(47,1000) JT,JTZ,JP,JPZ,JJPROJ,JBPROJ,JJTARG,JBTARG,PP
11336 IF ((JT.EQ.IT).AND.(JTZ.EQ.ITZ).AND.(JP.EQ.IP).AND.
11337 & (JPZ.EQ.IPZ).AND.(JJPROJ.EQ.IJPROJ).AND.(JBPROJ.EQ.IBPROJ)
11338 & .AND.(JJTARG.EQ.IJTARG).AND.(JBTARG.EQ.IBTARG).AND.
11339 & (ABS(PP-PPN).LT.(PPN*0.01D0))) THEN
11340 READ(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11341 READ(47,1002) SIGSH,ROSH,GSH
11342 DO 11 I=1,100
11343 READ(47,'(1X,E15.5)') BSITE(1,1,1,I)
11344 11 CONTINUE
11345 READ(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11346 ELSE
11347 IBACK = 1
11348 ENDIF
11349 CLOSE(47)
11350 ENDIF
11351
11352 RETURN
11353 END
11354
11355*$ CREATE DT_POILIK.FOR
11356*COPY DT_POILIK
11357*
11358*===poilik=============================================================*
11359*
11360 SUBROUTINE DT_POILIK(NB,NTARG,ECM,VIRT,IPNT,RPNT,MODE)
11361
11362 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
11363 SAVE
11364
11365 PARAMETER ( LINP = 10 ,
11366 & LOUT = 6 ,
11367 & LDAT = 9 )
11368 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.0D0)
11369 PARAMETER (NE = 8)
11370
11371**PHOJET105a
11372C CHARACTER*8 MDLNA
11373C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
11374C PARAMETER (IEETAB=10)
11375C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
11376**PHOJET110
11377C model switches and parameters
11378 CHARACTER*8 MDLNA
11379 INTEGER ISWMDL,IPAMDL
11380 DOUBLE PRECISION PARMDL
11381 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
11382C energy-interpolation table
11383 INTEGER IEETA2
11384 PARAMETER ( IEETA2 = 20 )
11385 INTEGER ISIMAX
11386 DOUBLE PRECISION SIGTAB,SIGECM
11387 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
11388**
11389* VDM parameter for photon-nucleus interactions
11390 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
11391**sr 22.7.97
11392 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11393* Glauber formalism: cross sections
11394 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11395 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11396 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11397 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11398 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11399 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11400 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11401 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11402 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11403 & BSLOPE,NEBINI,NQBINI
11404**
11405
11406 DATA ECMOLD,Q2OLD /-1.0D0,-1.0D0/
11407
11408 IF ((ECM.EQ.ECMOLD).AND.(VIRT.EQ.Q2OLD)) GOTO 3
11409
11410* load cross sections from interpolation table
11411 IP = 1
11412 IF(ECM.LE.SIGECM(IP,1)) THEN
11413 I1 = 1
11414 I2 = 1
11415 ELSE IF(ECM.LT.SIGECM(IP,ISIMAX)) THEN
11416 DO 50 I=2,ISIMAX
11417 IF(ECM.LE.SIGECM(IP,I)) GOTO 200
11418 50 CONTINUE
11419 200 CONTINUE
11420 I1 = I-1
11421 I2 = I
11422 ELSE
11423 WRITE(LOUT,'(/1X,A,2E12.3)')
11424 & 'POILIK:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
11425 I1 = ISIMAX
11426 I2 = ISIMAX
11427 ENDIF
11428 FAC2 = ZERO
11429 IF(I1.NE.I2) FAC2=LOG(ECM/SIGECM(IP,I1))
11430 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
11431 FAC1 = ONE-FAC2
11432
11433 SIGANO = DT_SANO(ECM)
11434
11435* cross section dependence on photon virtuality
11436 FSUP1 = ZERO
11437 DO 150 I=1,3
11438 FSUP1 = FSUP1+PARMDL(26+I)*(ONE+VIRT/(4.D0*PARMDL(30+I)))
11439 & /(ONE+VIRT/PARMDL(30+I))**2
11440 150 CONTINUE
11441 FSUP1 = FSUP1+PARMDL(30)/(ONE+VIRT/PARMDL(34))
11442 FAC1 = FAC1*FSUP1
11443 FAC2 = FAC2*FSUP1
11444 FSUP2 = ONE
11445
11446 ECMOLD = ECM
11447 Q2OLD = VIRT
11448
11449 3 CONTINUE
11450
11451C SIGTOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
11452 CALL DT_SIGGP(ZERO,VIRT,ECM,ZERO,SIGTOT,DUM1,DUM2)
11453 IF (ISHAD(1).EQ.1) THEN
11454 SIGDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
11455 ELSE
11456 SIGDIR = ZERO
11457 ENDIF
11458 SIGANO = FSUP1*FSUP2*SIGANO
11459 SIGTOT = SIGTOT-SIGDIR-SIGANO
11460 SIGDIR = SIGDIR/(FSUP1*FSUP2)
11461 SIGANO = SIGANO/(FSUP1*FSUP2)
11462 SIGTOT = SIGTOT+SIGDIR+SIGANO
11463
11464 RR = DT_RNDM(SIGTOT)
11465 IF (RR.LT.SIGDIR/SIGTOT) THEN
11466 IPNT = 1
11467 ELSEIF ((RR.GE.SIGDIR/SIGTOT).AND.
11468 & (RR.LT.(SIGDIR+SIGANO)/SIGTOT)) THEN
11469 IPNT = 2
11470 ELSE
11471 IPNT = 0
11472 ENDIF
11473 RPNT = (SIGDIR+SIGANO)/SIGTOT
11474C WRITE(LOUT,'(I3,2F15.5)') ISHAD(1),FAC1,FAC2
11475C WRITE(LOUT,'(I3,2F15.5)') MODE,SIGDIR,SIGANO
11476C WRITE(LOUT,'(I3,4F15.5)') MODE,SIGDIR+SIGANO,SIGTOT,RPNT,ECM
11477C WRITE(LOUT,'(1X,6E12.4)') ECM,VIRT,SIGTOT,SIGDIR,SIGANO,RPNT
11478 IF (MODE.EQ.1) RETURN
11479
11480**sr 22.7.97
11481 K1 = 1
11482 K2 = 1
11483 RATE = ZERO
11484 IF (ECM.GE.ECMNN(NEBINI)) THEN
11485 K1 = NEBINI
11486 K2 = NEBINI
11487 RATE = ONE
11488 ELSEIF (ECM.GT.ECMNN(1)) THEN
11489 DO 10 I=2,NEBINI
11490 IF (ECM.LT.ECMNN(I)) THEN
11491 K1 = I-1
11492 K2 = I
11493 RATE = (ECM-ECMNN(K1))/(ECMNN(K2)-ECMNN(K1))
11494 GOTO 11
11495 ENDIF
11496 10 CONTINUE
11497 11 CONTINUE
11498 ENDIF
11499 J1 = 1
11500 J2 = 1
11501 RATQ = ZERO
11502 IF (NQBINI.GT.1) THEN
11503 IF (VIRT.GE.Q2G(NQBINI)) THEN
11504 J1 = NQBINI
11505 J2 = NQBINI
11506 RATQ = ONE
11507 ELSEIF (VIRT.GT.Q2G(1)) THEN
11508 DO 12 I=2,NQBINI
11509 IF (VIRT.LT.Q2G(I)) THEN
11510 J1 = I-1
11511 J2 = I
11512 RATQ = LOG10( VIRT/MAX(Q2G(J1),TINY14))/
11513 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
11514 GOTO 13
11515 ENDIF
11516 12 CONTINUE
11517 13 CONTINUE
11518 ENDIF
11519 ENDIF
11520 SGA = XSPRO(K1,J1,NTARG)+
11521 & RATE*(XSPRO(K2,J1,NTARG)-XSPRO(K1,J1,NTARG))+
11522 & RATQ*(XSPRO(K1,J2,NTARG)-XSPRO(K1,J1,NTARG))+
11523 & RATE*RATQ*(XSPRO(K2,J2,NTARG)-XSPRO(K1,J2,NTARG)+
11524 & XSPRO(K1,J1,NTARG)-XSPRO(K2,J1,NTARG))
11525 SDI = DBLE(NB)*SIGDIR
11526 SAN = DBLE(NB)*SIGANO
11527 SPL = SDI+SAN
11528 RR = DT_RNDM(SPL)
11529 IF (RR.LT.SDI/SGA) THEN
11530 IPNT = 1
11531 ELSEIF ((RR.GE.SDI/SGA).AND.
11532 & (RR.LT.SPL/SGA)) THEN
11533 IPNT = 2
11534 ELSE
11535 IPNT = 0
11536 ENDIF
11537 RPNT = SPL/SGA
11538C WRITE(LOUT,'(I3,4F15.5)') MODE,SPL,SGA,RPNT,ECM
11539**
11540
11541 RETURN
11542 END
11543
11544*$ CREATE DT_GLBINI.FOR
11545*COPY DT_GLBINI
11546*
11547*===glbini=============================================================*
11548*
11549 SUBROUTINE DT_GLBINI(WHAT)
11550
11551************************************************************************
11552* Pre-initialization of profile function *
11553* This version dated 28.11.00 is written by S. Roesler. *
11554* *
11555* Last change 27.12.2006 by S. Roesler. *
11556************************************************************************
11557
11558 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11559 SAVE
11560
11561 PARAMETER ( LINP = 10 ,
11562 & LOUT = 6 ,
11563 & LDAT = 9 )
11564 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.D-14)
11565
11566 LOGICAL LCMS
11567
11568* particle properties (BAMJET index convention)
11569 CHARACTER*8 ANAME
11570 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11571 & IICH(210),IIBAR(210),K1(210),K2(210)
11572* properties of interacting particles
11573 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11574 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11575* emulsion treatment
11576 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11577 & NCOMPO,IEMUL
11578* Glauber formalism: flags and parameters for statistics
11579 LOGICAL LPROD
11580 CHARACTER*8 CGLB
11581 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11582* number of data sets other than protons and nuclei
11583* at the moment = 2 (pions and kaons)
11584 PARAMETER (MAXOFF=2)
11585 DIMENSION IJPINI(5),IOFFST(25)
11586 DATA IJPINI / 13, 15, 0, 0, 0/
11587* Glauber data-set to be used for hadron projectiles
11588* (0=proton, 1=pion, 2=kaon)
11589 DATA (IOFFST(K),K=1,25) /
11590 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11591 & 0, 0, 1, 2, 2/
11592* Acceptance interval for target nucleus mass
11593 PARAMETER (KBACC = 6)
11594* flags for input different options
11595 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
11596 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
11597 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
11598
11599 PARAMETER (MAXMSS = 100)
11600 DIMENSION IASAV(MAXMSS),IBSAV(MAXMSS)
11601 DIMENSION WHAT(6)
11602
11603 DATA JPEACH,JPSTEP / 18, 5 /
11604
11605* temporary patch until fix has been implemented in phojet:
11606* maximum energy for pion projectile
11607 DATA ECMXPI / 100000.0D0 /
11608*
11609*--------------------------------------------------------------------------
11610* general initializations
11611*
11612* steps in projectile mass number for initialization
11613 IF (WHAT(4).GT.ZERO) JPEACH = INT(WHAT(4))
11614 IF (WHAT(5).GT.ZERO) JPSTEP = INT(WHAT(5))
11615*
11616* energy range and binning
11617 ELO = ABS(WHAT(1))
11618 EHI = ABS(WHAT(2))
11619 IF (ELO.GT.EHI) ELO = EHI
11620 NEBIN = MAX(INT(WHAT(3)),1)
11621 IF (ELO.EQ.EHI) NEBIN = 0
11622 LCMS = (WHAT(1).LT.ZERO).OR.(WHAT(2).LT.ZERO)
11623 IF (LCMS) THEN
11624 ECMINI = EHI
11625 ELSE
11626 ECMINI = SQRT(AAM(IJPROJ)**2+AAM(IJTARG)**2
11627 & +2.0D0*AAM(IJTARG)*EHI)
11628 ENDIF
11629*
11630* default arguments for Glauber-routine
11631 XI = ZERO
11632 Q2I = ZERO
11633*
11634* initialize nuclear parameters, etc.
11635 CALL DT_BERTTP
11636 CALL DT_INCINI
11637*
11638* open Glauber-data output file
11639 IDX = INDEX(CGLB,' ')
11640 K = 12
11641 IF (IDX.GT.1) K = IDX-1
11642 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11643*
11644*--------------------------------------------------------------------------
11645* Glauber-initialization for proton and nuclei projectiles
11646*
11647* initialize phojet for proton-proton interactions
11648 ELAB = ZERO
11649 PLAB = ZERO
11650 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11651 CALL DT_PHOINI
11652*
11653* record projectile masses
11654 NASAV = 0
11655 NPROJ = MIN(IP,JPEACH)
11656 DO 10 KPROJ=1,NPROJ
11657 NASAV = NASAV+1
11658 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11659 IASAV(NASAV) = KPROJ
11660 10 CONTINUE
11661 IF (IP.GT.JPEACH) THEN
11662 NPROJ = DBLE(IP-JPEACH)/DBLE(JPSTEP)
11663 IF (NPROJ.EQ.0) THEN
11664 NASAV = NASAV+1
11665 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11666 IASAV(NASAV) = IP
11667 ELSE
11668 DO 11 IPROJ=1,NPROJ
11669 KPROJ = JPEACH+IPROJ*JPSTEP
11670 NASAV = NASAV+1
11671 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11672 IASAV(NASAV) = KPROJ
11673 11 CONTINUE
11674 IF (KPROJ.LT.IP) THEN
11675 NASAV = NASAV+1
11676 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11677 IASAV(NASAV) = IP
11678 ENDIF
11679 ENDIF
11680 ENDIF
11681*
11682* record target masses
11683 NBSAV = 0
11684 NTARG = 1
11685 IF (NCOMPO.GT.0) NTARG = NCOMPO
11686 DO 12 ITARG=1,NTARG
11687 NBSAV = NBSAV+1
11688 IF (NBSAV.GT.MAXMSS) STOP ' GLBINI: NBSAV > MAXMSS ! '
11689 IF (NCOMPO.GT.0) THEN
11690 IBSAV(NBSAV) = IEMUMA(ITARG)
11691 ELSE
11692 IBSAV(NBSAV) = IT
11693 ENDIF
11694 12 CONTINUE
11695*
11696* print masses
11697 WRITE(LDAT,1000) NEBIN,': ',SIGN(ELO,WHAT(1)),SIGN(EHI,WHAT(2))
11698 1000 FORMAT(I4,A,1P,2E13.5)
11699 NLINES = DBLE(NASAV)/18.0D0
11700 IF (NLINES.GT.0) THEN
11701 DO 13 I=1,NLINES
11702 IF (I.EQ.1) THEN
11703 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=1,18)
11704 ELSE
11705 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=18*I-17,18*I)
11706 ENDIF
11707 13 CONTINUE
11708 ENDIF
11709 I0 = 18*NLINES+1
11710 IF (I0.LE.NASAV) THEN
11711 IF (I0.EQ.1) THEN
11712 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=I0,NASAV)
11713 ELSE
11714 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=I0,NASAV)
11715 ENDIF
11716 ENDIF
11717 NLINES = DBLE(NBSAV)/18.0D0
11718 IF (NLINES.GT.0) THEN
11719 DO 14 I=1,NLINES
11720 IF (I.EQ.1) THEN
11721 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=1,18)
11722 ELSE
11723 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=18*I-17,18*I)
11724 ENDIF
11725 14 CONTINUE
11726 ENDIF
11727 I0 = 18*NLINES+1
11728 IF (I0.LE.NBSAV) THEN
11729 IF (I0.EQ.1) THEN
11730 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=I0,NBSAV)
11731 ELSE
11732 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=I0,NBSAV)
11733 ENDIF
11734 ENDIF
11735*
11736* calculate Glauber-data for each energy and mass combination
11737*
11738* loop over energy bins
11739 ELO = LOG10(ELO)
11740 EHI = LOG10(EHI)
11741 DEBIN = (EHI-ELO)/MAX(DBLE(NEBIN),ONE)
11742 DO 1 IE=1,NEBIN+1
11743 E = ELO+DBLE(IE-1)*DEBIN
11744 E = 10**E
11745 IF (LCMS) THEN
11746 E = MAX(2.0D0*AAM(IJPROJ)+0.1D0,E)
11747 ECM = E
11748 ELSE
11749 PLAB = ZERO
11750 ECM = ZERO
11751 E = MAX(AAM(IJPROJ)+0.1D0,E)
11752 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11753 ENDIF
11754*
11755* loop over projectile and target masses
11756 DO 2 ITARG=1,NBSAV
11757 DO 3 IPROJ=1,NASAV
11758 CALL DT_XSGLAU(IASAV(IPROJ),IBSAV(ITARG),IJPROJ,
11759 & XI,Q2I,ECM,1,1,-1)
11760 3 CONTINUE
11761 2 CONTINUE
11762*
11763 1 CONTINUE
11764*
11765*--------------------------------------------------------------------------
11766* Glauber-initialization for pion, kaon, ... projectiles
11767*
11768 DO 6 IJ=1,MAXOFF
11769*
11770* initialize phojet for this interaction
11771 ELAB = ZERO
11772 PLAB = ZERO
11773 IJPROJ = IJPINI(IJ)
11774 IP = 1
11775 IPZ = 1
11776*
11777* temporary patch until fix has been implemented in phojet:
11778 IF (ECMINI.GT.ECMXPI) THEN
11779 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMXPI,1)
11780 ELSE
11781 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11782 ENDIF
11783 CALL DT_PHOINI
11784*
11785* calculate Glauber-data for each energy and mass combination
11786*
11787* loop over energy bins
11788 DO 4 IE=1,NEBIN+1
11789 E = ELO+DBLE(IE-1)*DEBIN
11790 E = 10**E
11791 IF (LCMS) THEN
11792 E = MAX(2.0D0*AAM(IJPROJ)+TINY14,E)
11793 ECM = E
11794 ELSE
11795 PLAB = ZERO
11796 ECM = ZERO
11797 E = MAX(AAM(IJPROJ)+TINY14,E)
11798 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11799 ENDIF
11800*
11801* loop over projectile and target masses
11802 DO 5 ITARG=1,NBSAV
11803 CALL DT_XSGLAU(1,IBSAV(ITARG),IJPROJ,XI,Q2I,ECM,1,1,-1)
11804 5 CONTINUE
11805*
11806 4 CONTINUE
11807*
11808 6 CONTINUE
11809
11810*--------------------------------------------------------------------------
11811* close output unit(s), etc.
11812*
11813 CLOSE(LDAT)
11814
11815 RETURN
11816 END
11817
11818*$ CREATE DT_GLBSET.FOR
11819*COPY DT_GLBSET
11820*
11821*===glbset=============================================================*
11822*
11823 SUBROUTINE DT_GLBSET(IDPROJ,NA,NB,ELAB,MODE)
11824************************************************************************
11825* Interpolation of pre-initialized profile functions *
11826* This version dated 28.11.00 is written by S. Roesler. *
11827************************************************************************
11828
11829 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11830 SAVE
11831
11832 PARAMETER ( LINP = 10 ,
11833 & LOUT = 6 ,
11834 & LDAT = 9 )
11835 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
11836
11837 LOGICAL LCMS,LREAD,LFRST1,LFRST2
11838
11839* particle properties (BAMJET index convention)
11840 CHARACTER*8 ANAME
11841 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11842 & IICH(210),IIBAR(210),K1(210),K2(210)
11843* Glauber formalism: flags and parameters for statistics
11844 LOGICAL LPROD
11845 CHARACTER*8 CGLB
11846 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11847 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11848* Glauber formalism: parameters
11849 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11850 & BMAX(NCOMPX),BSTEP(NCOMPX),
11851 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11852 & NSITEB,NSTATB
11853* Glauber formalism: cross sections
11854 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11855 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11856 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11857 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11858 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11859 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11860 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11861 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11862 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11863 & BSLOPE,NEBINI,NQBINI
11864* number of data sets other than protons and nuclei
11865* at the moment = 2 (pions and kaons)
11866 PARAMETER (MAXOFF=2)
11867 DIMENSION IJPINI(5),IOFFST(25)
11868 DATA IJPINI / 13, 15, 0, 0, 0/
11869* Glauber data-set to be used for hadron projectiles
11870* (0=proton, 1=pion, 2=kaon)
11871 DATA (IOFFST(K),K=1,25) /
11872 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11873 & 0, 0, 1, 2, 2/
11874* Acceptance interval for target nucleus mass
11875 PARAMETER (KBACC = 6)
11876* emulsion treatment
11877 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11878 & NCOMPO,IEMUL
11879
11880 PARAMETER (MAXSET=5000,
11881 & MAXBIN=100)
11882 DIMENSION XSIG(MAXSET,6),XERR(MAXSET,6),BPROFL(MAXSET,KSITEB)
11883 DIMENSION IABIN(MAXBIN),IBBIN(MAXBIN),XS(6),XE(6),
11884 & BPRO0(KSITEB),BPRO1(KSITEB),BPRO(KSITEB),
11885 & IAIDX(10)
11886
11887 DATA LREAD,LFRST1,LFRST2 /.FALSE.,.TRUE.,.TRUE./
11888*
11889* read data from file
11890*
11891 IF (MODE.EQ.0) THEN
11892
11893 IF (LREAD) RETURN
11894
11895 DO 1 I=1,MAXSET
11896 DO 2 J=1,6
11897 XSIG(I,J) = ZERO
11898 XERR(I,J) = ZERO
11899 2 CONTINUE
11900 DO 3 J=1,KSITEB
11901 BPROFL(I,J) = ZERO
11902 3 CONTINUE
11903 1 CONTINUE
11904 DO 4 I=1,MAXBIN
11905 IABIN(I) = 0
11906 IBBIN(I) = 0
11907 4 CONTINUE
11908 DO 5 I=1,KSITEB
11909 BPRO0(I) = ZERO
11910 BPRO1(I) = ZERO
11911 BPRO(I) = ZERO
11912 5 CONTINUE
11913
11914 IDX = INDEX(CGLB,' ')
11915 K = 12
11916 IF (IDX.GT.1) K = IDX-1
11917 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11918 WRITE(LOUT,1000) CGLB(1:K)//'.glb'
11919 1000 FORMAT(/,' GLBSET: impact parameter distributions read from ',
11920 & 'file ',A12,/)
11921*
11922* read binning information
11923 READ(LDAT,'(I4,2X,2E13.5)') NEBIN,ELO,EHI
11924* return lower energy threshold to Fluka-interface
11925 ELAB = ELO
11926 LCMS = ELO.LT.ZERO
11927 WRITE(LOUT,'(1X,A)') ' equidistant logarithmic energy binning:'
11928 IF (LCMS) THEN
11929 WRITE(LOUT,1001) '(cms)',ABS(ELO),ABS(EHI),NEBIN
11930 ELSE
11931 WRITE(LOUT,1001) '(lab)',ABS(ELO),ABS(EHI),NEBIN
11932 ENDIF
11933 1001 FORMAT(2X,A5,' E_lo = ',1P,E9.3,' E_hi = ',1P,E9.3,4X,
11934 & 'No. of bins:',I5,/)
11935 ELO = LOG10(ABS(ELO))
11936 EHI = LOG10(ABS(EHI))
11937 DEBIN = (EHI-ELO)/ABS(DBLE(NEBIN))
11938 WRITE(LOUT,'(/,1X,A)') ' projectiles: (mass number)'
11939 READ(LDAT,'(I4,2X,18I4)') NABIN,(IABIN(J),J=1,18)
11940 IF (NABIN.LT.18) THEN
11941 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,NABIN)
11942 ELSE
11943 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,18)
11944 ENDIF
11945 IF (NABIN.GT.MAXBIN) STOP ' GLBSET: NABIN > MAXBIN !'
11946 IF (NABIN.GT.18) THEN
11947 NLINES = DBLE(NABIN-18)/18.0D0
11948 IF (NLINES.GT.0) THEN
11949 DO 7 I=1,NLINES
11950 I0 = 18*(I+1)-17
11951 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11952 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11953 7 CONTINUE
11954 ENDIF
11955 I0 = 18*(NLINES+1)+1
11956 IF (I0.LE.NABIN) THEN
11957 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11958 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11959 ENDIF
11960 ENDIF
11961 WRITE(LOUT,'(/,1X,A)') ' targets: (mass number)'
11962 READ(LDAT,'(I4,2X,18I4)') NBBIN,(IBBIN(J),J=1,18)
11963 IF (NBBIN.LT.18) THEN
11964 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,NBBIN)
11965 ELSE
11966 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,18)
11967 ENDIF
11968 IF (NBBIN.GT.MAXBIN) STOP ' GLBSET: NBBIN > MAXBIN !'
11969 IF (NBBIN.GT.18) THEN
11970 NLINES = DBLE(NBBIN-18)/18.0D0
11971 IF (NLINES.GT.0) THEN
11972 DO 8 I=1,NLINES
11973 I0 = 18*(I+1)-17
11974 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
11975 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
11976 8 CONTINUE
11977 ENDIF
11978 I0 = 18*(NLINES+1)+1
11979 IF (I0.LE.NBBIN) THEN
11980 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
11981 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
11982 ENDIF
11983 ENDIF
11984* number of data sets to follow in the Glauber data file
11985* this variable is used for checks of consistency of projectile
11986* and target mass configurations given in header of Glauber data
11987* file and the data-sets which follow in this file
11988 NSET0 = (NEBIN+1)*(NABIN+MAXOFF)*NBBIN
11989*
11990* read profile function data
11991 NSET = 0
11992 NAIDX = 0
11993 IPOLD = 0
11994 10 CONTINUE
11995 NSET = NSET+1
11996 IF (NSET.GT.MAXSET) STOP ' GLBSET: NSET > MAXSET ! '
11997 READ(LDAT,1002,END=100) IP,IA,IB,ISTATB,ISITEB,ECM
11998 1002 FORMAT(5I10,E15.5)
11999 IF ((IP.NE.1).AND.(IP.NE.IPOLD)) THEN
12000 NAIDX = NAIDX+1
12001 IF (NAIDX.GT.10) STOP ' GLBSET: NAIDX > 10 !'
12002 IAIDX(NAIDX) = IP
12003 IPOLD = IP
12004 ENDIF
12005 READ(LDAT,'(6E12.5)') (XSIG(NSET,I),I=1,6)
12006 READ(LDAT,'(6E12.5)') (XERR(NSET,I),I=1,6)
12007 NLINES = INT(DBLE(ISITEB)/7.0D0)
12008 IF (NLINES.GT.0) THEN
12009 DO 11 I=1,NLINES
12010 READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=7*I-6,7*I)
12011 11 CONTINUE
12012 ENDIF
12013 I0 = 7*NLINES+1
12014 IF (I0.LE.ISITEB)
12015 & READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=I0,ISITEB)
12016 GOTO 10
12017 100 CONTINUE
12018 NSET = NSET-1
12019 IF (NSET.NE.NSET0) STOP ' GLBSET: NSET.NE.NSET0 !'
12020 WRITE(LOUT,'(/,1X,A)')
12021 & ' projectiles other than protons and nuclei: (particle index)'
12022 IF (NAIDX.GT.0) THEN
12023 WRITE(LOUT,'(6X,18I4)') (IAIDX(J),J=1,NAIDX)
12024 ELSE
12025 WRITE(LOUT,'(6X,A)') 'none'
12026 ENDIF
12027*
12028 CLOSE(LDAT)
12029 WRITE(LOUT,*)
12030 LREAD = .TRUE.
12031
12032 IF (NCOMPO.EQ.0) THEN
12033 DO 12 J=1,NBBIN
12034 NCOMPO = NCOMPO+1
12035 IEMUMA(NCOMPO) = IBBIN(J)
12036 IEMUCH(NCOMPO) = IEMUMA(NCOMPO)/2
12037 EMUFRA(NCOMPO) = 1.0D0
12038 12 CONTINUE
12039 IEMUL = 1
12040 ENDIF
12041*
12042* calculate profile function for certain set of parameters
12043*
12044 ELSE
12045
12046c write(*,*) 'glbset called for ',IDPROJ,NA,NB,ELAB,MODE
12047*
12048* check for type of projectile and set index-offset to entry in
12049* Glauber data array correspondingly
12050 IF (IDPROJ.GT.25) STOP ' GLBSET: IDPROJ > 25 !'
12051 IF (IOFFST(IDPROJ).EQ.-1) THEN
12052 STOP ' GLBSET: no data for this projectile !'
12053 ELSEIF (IOFFST(IDPROJ).GT.0) THEN
12054 IDXOFF = (NEBIN+1)*(NABIN+IOFFST(IDPROJ)-1)*NBBIN
12055 ELSE
12056 IDXOFF = 0
12057 ENDIF
12058*
12059* get energy bin and interpolation factor
12060 IF (LCMS) THEN
12061 E = SQRT(AAM(IDPROJ)**2+AAM(1)**2+2.0D0*AAM(1)*ELAB)
12062 ELSE
12063 E = ELAB
12064 ENDIF
12065 E = LOG10(E)
12066 IF (E.LT.ELO) THEN
12067 IF (LFRST1) THEN
12068 WRITE(LOUT,*) ' GLBSET: Too low energy! (E_lo,E) ',ELO,E
12069 LFRST1 = .FALSE.
12070 ENDIF
12071 E = ELO
12072 ENDIF
12073 IF (E.GT.EHI) THEN
12074 IF (LFRST2) THEN
12075 WRITE(LOUT,*) ' GLBSET: Too high energy! (E_hi,E) ',EHI,E
12076 LFRST2 = .FALSE.
12077 ENDIF
12078 E = EHI
12079 ENDIF
12080 IE0 = (E-ELO)/DEBIN+1
12081 IE1 = IE0+1
12082 FACE = (E-(ELO+DBLE(IE0-1)*DEBIN))/DEBIN
12083*
12084* get target nucleus index
12085 KB = 0
12086 NBACC = KBACC
12087 DO 20 I=1,NBBIN
12088 NBDIFF = ABS(NB-IBBIN(I))
12089 IF (NB.EQ.IBBIN(I)) THEN
12090 KB = I
12091 GOTO 21
12092 ELSEIF (NBDIFF.LE.NBACC) THEN
12093 KB = I
12094 NBACC = NBDIFF
12095 ENDIF
12096 20 CONTINUE
12097 IF (KB.NE.0) GOTO 21
12098 WRITE(LOUT,*) ' GLBSET: data not found for target ',NB
12099 STOP
12100 21 CONTINUE
12101*
12102* get projectile nucleus bin and interpolation factor
12103 KA0 = 0
12104 KA1 = 0
12105 FACNA = 0
12106 IF (IDXOFF.GT.0) THEN
12107 KA0 = 1
12108 KA1 = 1
12109 KABIN = 1
12110 ELSE
12111 IF (NA.GT.IABIN(NABIN)) STOP ' GLBSET: NA > IABIN(NABIN) !'
12112 DO 22 I=1,NABIN
12113 IF (NA.EQ.IABIN(I)) THEN
12114 KA0 = I
12115 KA1 = I
12116 GOTO 23
12117 ELSEIF (NA.LT.IABIN(I)) THEN
12118 KA0 = I-1
12119 KA1 = I
12120 GOTO 23
12121 ENDIF
12122 22 CONTINUE
12123 WRITE(LOUT,*) ' GLBSET: data not found for projectile ',NA
12124 STOP
12125 23 CONTINUE
12126 IF (KA0.NE.KA1)
12127 & FACNA = DBLE(NA-IABIN(KA0))/DBLE(IABIN(KA1)-IABIN(KA0))
12128 KABIN = NABIN
12129 ENDIF
12130*
12131* interpolate profile functions for interactions ka0-kb and ka1-kb
12132* for energy E separately
12133 IDX0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12134 IDX1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12135 IDY0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12136 IDY1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12137 DO 30 I=1,ISITEB
12138 BPRO0(I) = BPROFL(IDX0,I)
12139 & +FACE*(BPROFL(IDX1,I)-BPROFL(IDX0,I))
12140 BPRO1(I) = BPROFL(IDY0,I)
12141 & +FACE*(BPROFL(IDY1,I)-BPROFL(IDY0,I))
12142 30 CONTINUE
12143 RADB = DT_RNCLUS(NB)
12144 BSTP0 = 2.0D0*(DT_RNCLUS(IABIN(KA0))+RADB)/DBLE(ISITEB-1)
12145 BSTP1 = 2.0D0*(DT_RNCLUS(IABIN(KA1))+RADB)/DBLE(ISITEB-1)
12146*
12147* interpolate cross sections for energy E and projectile mass
12148 DO 31 I=1,6
12149 XS0 = XSIG(IDX0,I)+FACE*(XSIG(IDX1,I)-XSIG(IDX0,I))
12150 XS1 = XSIG(IDY0,I)+FACE*(XSIG(IDY1,I)-XSIG(IDY0,I))
12151 XS(I) = XS0+FACNA*(XS1-XS0)
12152 XE0 = XERR(IDX0,I)+FACE*(XERR(IDX1,I)-XERR(IDX0,I))
12153 XE1 = XERR(IDY0,I)+FACE*(XERR(IDY1,I)-XERR(IDY0,I))
12154 XE(I) = XE0+FACNA*(XE1-XE0)
12155 31 CONTINUE
12156*
12157* interpolate between ka0 and ka1
12158 RADA = DT_RNCLUS(NA)
12159 BMX = 2.0D0*(RADA+RADB)
12160 BSTP = BMX/DBLE(ISITEB-1)
12161 BPRO(1) = ZERO
12162 DO 32 I=1,ISITEB-1
12163 B = DBLE(I)*BSTP
12164*
12165* calculate values of profile functions at B
12166 IDX0 = B/BSTP0+1
12167 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12168 IDX1 = MIN(IDX0+1,ISITEB)
12169 FACB = (B-DBLE(IDX0-1)*BSTP0)/BSTP0
12170 BPR0 = BPRO0(IDX0)+FACB*(BPRO0(IDX1)-BPRO0(IDX0))
12171 IDX0 = B/BSTP1+1
12172 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12173 IDX1 = MIN(IDX0+1,ISITEB)
12174 FACB = (B-DBLE(IDX0-1)*BSTP1)/BSTP1
12175 BPR1 = BPRO1(IDX0)+FACB*(BPRO1(IDX1)-BPRO1(IDX0))
12176*
12177 BPRO(I+1) = BPR0+FACNA*(BPR1-BPR0)
12178 32 CONTINUE
12179*
12180* fill common dtglam
12181 NSITEB = ISITEB
12182 RASH(1) = RADA
12183 RBSH(1) = RADB
12184 BMAX(1) = BMX
12185 BSTEP(1) = BSTP
12186 DO 33 I=1,KSITEB
12187 BSITE(0,1,1,I) = BPRO(I)
12188 33 CONTINUE
12189*
12190* fill common dtglxs
12191 XSTOT(1,1,1) = XS(1)
12192 XSELA(1,1,1) = XS(2)
12193 XSQEP(1,1,1) = XS(3)
12194 XSQET(1,1,1) = XS(4)
12195 XSQE2(1,1,1) = XS(5)
12196 XSPRO(1,1,1) = XS(6)
12197 XETOT(1,1,1) = XE(1)
12198 XEELA(1,1,1) = XE(2)
12199 XEQEP(1,1,1) = XE(3)
12200 XEQET(1,1,1) = XE(4)
12201 XEQE2(1,1,1) = XE(5)
12202 XEPRO(1,1,1) = XE(6)
12203
12204 ENDIF
12205
12206 RETURN
12207 END
12208
12209*$ CREATE DT_XKSAMP.FOR
12210*COPY DT_XKSAMP
12211*
12212*===xksamp=============================================================*
12213*
12214 SUBROUTINE DT_XKSAMP(NN,ECM)
12215
12216************************************************************************
12217* Sampling of parton x-values and chain system for one interaction. *
12218* processed by S. Roesler, 9.8.95 *
12219************************************************************************
12220
12221 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
12222 SAVE
12223 PARAMETER ( LINP = 10 ,
12224 & LOUT = 6 ,
12225 & LDAT = 9 )
12226 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
454792a9 12227CPH SAVE
9aaba0d6 12228
12229 PARAMETER (
12230* lower cuts for (valence-sea/sea-valence) chain masses
12231* antiquark-quark (u/d-sea quark) (s-sea quark)
12232 & AMIU = 0.5D0, AMIS = 0.8D0,
12233* quark-diquark (u/d-sea quark) (s-sea quark)
12234 & AMAU = 2.6D0, AMAS = 2.6D0,
12235* maximum lower valence-x threshold
12236 & XVMAX = 0.98D0,
12237* fraction of sea-diquarks sampled out of sea-partons
12238**test
12239C & FRCDIQ = 0.9D0,
12240**
12241*
12242 & SQMA = 0.7D0,
12243*
12244* maximum number of trials to generate x's for the required number
12245* of sea quark pairs for a given hadron
12246 & NSEATY = 12
12247C & NSEATY = 3
12248 & )
12249
12250 LOGICAL ZUOVP,ZUOSP,ZUOVT,ZUOST,INTLO
12251
12252 PARAMETER ( MAXNCL = 260,
12253 & MAXVQU = MAXNCL,
12254 & MAXSQU = 20*MAXVQU,
12255 & MAXINT = MAXVQU+MAXSQU)
12256* event history
12257 PARAMETER (NMXHKK=200000)
12258 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
12259 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
12260 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
12261* particle properties (BAMJET index convention)
12262 CHARACTER*8 ANAME
12263 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
12264 & IICH(210),IIBAR(210),K1(210),K2(210)
12265* interface between Glauber formalism and DPM
12266 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
12267 & INTER1(MAXINT),INTER2(MAXINT)
12268* properties of interacting particles
12269 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
12270* threshold values for x-sampling (DTUNUC 1.x)
12271 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
12272 & SSMIMQ,VVMTHR
12273* x-values of partons (DTUNUC 1.x)
12274 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
12275 & XTVQ(MAXVQU),XTVD(MAXVQU),
12276 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
12277 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
12278* flavors of partons (DTUNUC 1.x)
12279 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
12280 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
12281 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
12282 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
12283 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
12284 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
12285 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
12286* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12287 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
12288 & IXPV,IXPS,IXTV,IXTS,
12289 & INTVV1(MAXVQU),INTVV2(MAXVQU),
12290 & INTSV1(MAXVQU),INTSV2(MAXVQU),
12291 & INTVS1(MAXVQU),INTVS2(MAXVQU),
12292 & INTSS1(MAXSQU),INTSS2(MAXSQU),
12293 & INTDV1(MAXVQU),INTDV2(MAXVQU),
12294 & INTVD1(MAXVQU),INTVD2(MAXVQU),
12295 & INTDS1(MAXSQU),INTDS2(MAXSQU),
12296 & INTSD1(MAXSQU),INTSD2(MAXSQU)
12297* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12298 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
12299 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
12300* auxiliary common for chain system storage (DTUNUC 1.x)
12301 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
12302* flags for input different options
12303 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
12304 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
12305 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
12306* various options for treatment of partons (DTUNUC 1.x)
12307* (chain recombination, Cronin,..)
12308 LOGICAL LCO2CR,LINTPT
12309 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
12310 & LCO2CR,LINTPT
12311
12312 DIMENSION ZUOVP(MAXVQU),ZUOSP(MAXSQU),ZUOVT(MAXVQU),ZUOST(MAXSQU),
12313 & INTLO(MAXINT)
12314
12315* (1) initializations
12316*-----------------------------------------------------------------------
12317
12318**test
12319 IF (ECM.LT.4.5D0) THEN
12320C FRCDIQ = 0.6D0
12321 FRCDIQ = 0.4D0
12322 ELSEIF ((ECM.GE.4.5D0).AND.(ECM.LT.7.5)) THEN
12323C FRCDIQ = 0.6D0+(ECM-4.5D0)/3.0D0*0.3D0
12324 FRCDIQ = 0.4D0+(ECM-4.5D0)/3.0D0*0.3D0
12325 ELSE
12326C FRCDIQ = 0.9D0
12327 FRCDIQ = 0.7D0
12328 ENDIF
12329**
12330 DO 30 I=1,MAXSQU
12331 ZUOSP(I) = .FALSE.
12332 ZUOST(I) = .FALSE.
12333 IF (I.LE.MAXVQU) THEN
12334 ZUOVP(I) = .FALSE.
12335 ZUOVT(I) = .FALSE.
12336 ENDIF
12337 30 CONTINUE
12338
12339* lower thresholds for x-selection
12340* sea-quarks (default: CSEA=0.2)
12341 IF (ECM.LT.10.0D0) THEN
12342**!!test
12343 XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM
12344C XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM**2.0D0
12345 NSEA = NSEATY
12346C XSTHR = ONE/ECM**2
12347 ELSE
12348**sr 30.3.98
12349C XSTHR = CSEA/ECM
12350 XSTHR = CSEA/ECM**2
12351C XSTHR = ONE/ECM**2
12352**
12353 IF ((IP.GE.150).AND.(IT.GE.150))
12354 & XSTHR = 2.5D0/(ECM*SQRT(ECM))
12355 NSEA = NSEATY
12356 ENDIF
12357* (default: SSMIMA=0.14) used for sea-diquarks (?)
12358 XSSTHR = SSMIMA/ECM
12359 BSQMA = SQMA/ECM
12360* valence-quarks (default: CVQ=1.0)
12361 XVTHR = CVQ/ECM
12362* valence-diquarks (default: CDQ=2.0)
12363 XDTHR = CDQ/ECM
12364
12365* maximum-x for sea-quarks
12366 XVCUT = XVTHR+XDTHR
12367 IF (XVCUT.GT.XVMAX) THEN
12368 XVCUT = XVMAX
12369 XVTHR = XVCUT/3.0D0
12370 XDTHR = XVCUT-XVTHR
12371 ENDIF
12372 XXSEAM = ONE-XVCUT
12373**sr 18.4. test: DPMJET
12374C XXSEAM=1.0 - XVTHR*(1.D0+0.3D0*DT_RNDM(V1))
12375C & - XDTHR*(1.D0+0.3D0*DT_RNDM(V2))
12376C & -0.01*(1.D0+1.5D0*DT_RNDM(V3))
12377**
12378* maximum number of sea-pairs allowed kinematically
12379C NSMAX = INT(OHALF*XXSEAM/XSTHR)
12380 RNSMAX = OHALF*XXSEAM/XSTHR
12381 IF (RNSMAX.GT.10000.0D0) THEN
12382 NSMAX = 10000
12383 ELSE
12384 NSMAX = INT(OHALF*XXSEAM/XSTHR)
12385 ENDIF
12386* check kinematical limit for valence-x thresholds
12387* (should be obsolete now)
12388 IF (XVCUT.GT.XVMAX) THEN
12389 WRITE(LOUT,1000) XVCUT,ECM
12390 1000 FORMAT(' XKSAMP: kin. limit for valence-x',
12391 & ' thresholds not allowed (',2E9.3,')')
12392C XVTHR = XVMAX-XDTHR
12393C IF (XVTHR.LT.ZERO) STOP
12394 STOP
12395 ENDIF
12396
12397* set eta for valence-x sampling (BETREJ)
12398* (UNON per default, UNOM used for projectile mesons only)
12399 IF ((IJPROJ.NE.0).AND.(IBPROJ.EQ.0)) THEN
12400 UNOPRV = UNOM
12401 ELSE
12402 UNOPRV = UNON
12403 ENDIF
12404
12405* (2) select parton x-values of interacting projectile nucleons
12406*-----------------------------------------------------------------------
12407
12408 IXPV = 0
12409 IXPS = 0
12410
12411 DO 100 IPP=1,IP
12412* get interacting projectile nucleon as sampled by Glauber
12413 IF (JSSH(IPP).NE.0) THEN
12414 IXSTMP = IXPS
12415 IXVTMP = IXPV
12416 99 CONTINUE
12417 IXPS = IXSTMP
12418 IXPV = IXVTMP
12419* JIPP is the actual number of sea-pairs sampled for this nucleon
12420 JIPP = MIN(JSSH(IPP)-1,NSMAX)
12421 41 CONTINUE
12422 XXSEA = ZERO
12423 IF (JIPP.GT.0) THEN
12424 XSMAX = XXSEAM-2.0D0*DBLE(JIPP)*XSTHR
12425*???
12426 IF (XSTHR.GE.XSMAX) THEN
12427 JIPP = JIPP-1
12428 GOTO 41
12429 ENDIF
12430
12431*>>>get x-values of sea-quark pairs
12432 NSCOUN = 0
12433 PLW = 0.5D0
12434 40 CONTINUE
12435* accumulator for sea x-values
12436 XXSEA = ZERO
12437 NSCOUN = NSCOUN+1
12438 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12439 IF (NSCOUN.GT.NSEA) THEN
12440* decrease the number of interactions after NSEA trials
12441 JIPP = JIPP-1
12442 NSCOUN = 0
12443 ENDIF
12444 DO 70 ISQ=1,JIPP
12445* sea-quarks
12446 IF (IPSQ(IXPS+1).LE.2) THEN
12447**sr 8.4.98 (1/sqrt(x))
12448C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12449C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12450 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12451**
12452 ELSE
12453 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12454 XPSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12455 ELSE
12456**sr 8.4.98 (1/sqrt(x))
12457C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12458C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12459 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12460**
12461 ENDIF
12462 ENDIF
12463* sea-antiquarks
12464 IF (IPSAQ(IXPS+1).GE.-2) THEN
12465**sr 8.4.98 (1/sqrt(x))
12466C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12467C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12468 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12469**
12470 ELSE
12471 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12472 XPSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12473 ELSE
12474**sr 8.4.98 (1/sqrt(x))
12475C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12476C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12477 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12478**
12479 ENDIF
12480 ENDIF
12481 XXSEA = XXSEA+XPSQI+XPSAQI
12482* check for maximum allowed sea x-value
12483 IF (XXSEA.GE.XXSEAM) THEN
12484 IXPS = IXPS-ISQ+1
12485 GOTO 40
12486 ENDIF
12487* accept this sea-quark pair
12488 IXPS = IXPS+1
12489 XPSQ(IXPS) = XPSQI
12490 XPSAQ(IXPS) = XPSAQI
12491 IFROSP(IXPS) = IPP
12492 ZUOSP(IXPS) = .TRUE.
12493 70 CONTINUE
12494 ENDIF
12495
12496*>>>get x-values of valence partons
12497* valence quark
12498 IF (XVTHR.GT.0.05D0) THEN
12499 XVHI = ONE-XXSEA-XDTHR
12500 XPVQI = DT_BETREJ(OHALF,UNOPRV,XVTHR,XVHI)
12501 ELSE
12502 90 CONTINUE
12503 XPVQI = DT_DBETAR(OHALF,UNOPRV)
12504 IF ((XPVQI.LT.XVTHR).OR.(ONE-XPVQI-XXSEA.LT.XDTHR))
12505 & GOTO 90
12506 ENDIF
12507* valence diquark
12508 XPVDI = ONE-XPVQI-XXSEA
12509* reject according to x**1.5
12510 XDTMP = XPVDI**1.5D0
12511 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 99
12512* accept these valence partons
12513 IXPV = IXPV+1
12514 XPVQ(IXPV) = XPVQI
12515 XPVD(IXPV) = XPVDI
12516 IFROVP(IXPV) = IPP
12517 ITOVP(IPP) = IXPV
12518 ZUOVP(IXPV) = .TRUE.
12519
12520 ENDIF
12521 100 CONTINUE
12522
12523* (3) select parton x-values of interacting target nucleons
12524*-----------------------------------------------------------------------
12525
12526 IXTV = 0
12527 IXTS = 0
12528
12529 DO 170 ITT=1,IT
12530* get interacting target nucleon as sampled by Glauber
12531 IF (JTSH(ITT).NE.0) THEN
12532 IXSTMP = IXTS
12533 IXVTMP = IXTV
12534 169 CONTINUE
12535 IXTS = IXSTMP
12536 IXTV = IXVTMP
12537* JITT is the actual number of sea-pairs sampled for this nucleon
12538 JITT = MIN(JTSH(ITT)-1,NSMAX)
12539 111 CONTINUE
12540 XXSEA = ZERO
12541 IF (JITT.GT.0) THEN
12542 XSMAX = XXSEAM-2.0D0*DBLE(JITT)*XSTHR
12543*???
12544 IF (XSTHR.GE.XSMAX) THEN
12545 JITT = JITT-1
12546 GOTO 111
12547 ENDIF
12548
12549*>>>get x-values of sea-quark pairs
12550 NSCOUN = 0
12551 PLW = 0.5D0
12552 110 CONTINUE
12553* accumulator for sea x-values
12554 XXSEA = ZERO
12555 NSCOUN = NSCOUN+1
12556 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12557 IF (NSCOUN.GT.NSEA)THEN
12558* decrease the number of interactions after NSEA trials
12559 JITT = JITT-1
12560 NSCOUN = 0
12561 ENDIF
12562 DO 140 ISQ=1,JITT
12563* sea-quarks
12564 IF (ITSQ(IXTS+1).LE.2) THEN
12565**sr 8.4.98 (1/sqrt(x))
12566C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12567C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12568 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12569**
12570 ELSE
12571 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12572 XTSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12573 ELSE
12574**sr 8.4.98 (1/sqrt(x))
12575C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12576C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12577 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12578**
12579 ENDIF
12580 ENDIF
12581* sea-antiquarks
12582 IF (ITSAQ(IXTS+1).GE.-2) THEN
12583**sr 8.4.98 (1/sqrt(x))
12584C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12585C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12586 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12587**
12588 ELSE
12589 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12590 XTSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12591 ELSE
12592**sr 8.4.98 (1/sqrt(x))
12593C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12594C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12595 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12596**
12597 ENDIF
12598 ENDIF
12599 XXSEA = XXSEA+XTSQI+XTSAQI
12600* check for maximum allowed sea x-value
12601 IF (XXSEA.GE.XXSEAM) THEN
12602 IXTS = IXTS-ISQ+1
12603 GOTO 110
12604 ENDIF
12605* accept this sea-quark pair
12606 IXTS = IXTS+1
12607 XTSQ(IXTS) = XTSQI
12608 XTSAQ(IXTS) = XTSAQI
12609 IFROST(IXTS) = ITT
12610 ZUOST(IXTS) = .TRUE.
12611 140 CONTINUE
12612 ENDIF
12613
12614*>>>get x-values of valence partons
12615* valence quark
12616 IF (XVTHR.GT.0.05D0) THEN
12617 XVHI = ONE-XXSEA-XDTHR
12618 XTVQI = DT_BETREJ(OHALF,UNON,XVTHR,XVHI)
12619 ELSE
12620 160 CONTINUE
12621 XTVQI = DT_DBETAR(OHALF,UNON)
12622 IF ((XTVQI.LT.XVTHR).OR.(ONE-XTVQI-XXSEA.LT.XDTHR))
12623 & GOTO 160
12624 ENDIF
12625* valence diquark
12626 XTVDI = ONE-XTVQI-XXSEA
12627* reject according to x**1.5
12628 XDTMP = XTVDI**1.5D0
12629 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 169
12630* accept these valence partons
12631 IXTV = IXTV+1
12632 XTVQ(IXTV) = XTVQI
12633 XTVD(IXTV) = XTVDI
12634 IFROVT(IXTV) = ITT
12635 ITOVT(ITT) = IXTV
12636 ZUOVT(IXTV) = .TRUE.
12637
12638 ENDIF
12639 170 CONTINUE
12640
12641* (4) get valence-valence chains
12642*-----------------------------------------------------------------------
12643
12644 NVV = 0
12645 DO 240 I=1,NN
12646 INTLO(I) = .TRUE.
12647 IPVAL = ITOVP(INTER1(I))
12648 ITVAL = ITOVT(INTER2(I))
12649 IF (ZUOVP(IPVAL).AND.ZUOVT(ITVAL)) THEN
12650 INTLO(I) = .FALSE.
12651 ZUOVP(IPVAL) = .FALSE.
12652 ZUOVT(ITVAL) = .FALSE.
12653 NVV = NVV+1
12654 ISKPCH(8,NVV) = 0
12655 INTVV1(NVV) = IPVAL
12656 INTVV2(NVV) = ITVAL
12657 ENDIF
12658 240 CONTINUE
12659
12660* (5) get sea-valence chains
12661*-----------------------------------------------------------------------
12662
12663 NSV = 0
12664 NDV = 0
12665 PLW = 0.5D0
12666 DO 270 I=1,NN
12667 IF (INTLO(I)) THEN
12668 IPVAL = ITOVP(INTER1(I))
12669 ITVAL = ITOVT(INTER2(I))
12670 DO 250 J=1,IXPS
12671 IF (ZUOSP(J).AND.(IFROSP(J).EQ.INTER1(I)).AND.
12672 & ZUOVT(ITVAL)) THEN
12673 ZUOSP(J) = .FALSE.
12674 ZUOVT(ITVAL) = .FALSE.
12675 INTLO(I) = .FALSE.
12676 IF (LSEADI.AND.(DT_RNDM(PLW).GT.FRCDIQ)) THEN
12677* sample sea-diquark pair
12678 CALL DT_SAMSDQ(ECM,ITVAL,J,2,IREJ1)
12679 IF (IREJ1.EQ.0) GOTO 260
12680 ENDIF
12681 NSV = NSV+1
12682 ISKPCH(4,NSV) = 0
12683 INTSV1(NSV) = J
12684 INTSV2(NSV) = ITVAL
12685
12686*>>>correct chain kinematics according to minimum chain masses
12687* the actual chain masses
12688 AMSVQ1 = XPSQ(J) *XTVD(ITVAL)*ECM**2
12689 AMSVQ2 = XPSAQ(J)*XTVQ(ITVAL)*ECM**2
12690* get lower mass cuts
12691 IF (IPSQ(J).EQ.3) THEN
12692* q being s-quark
12693 AMCHK1 = AMAS
12694 AMCHK2 = AMIS
12695 ELSE
12696* q being u/d-quark
12697 AMCHK1 = AMAU
12698 AMCHK2 = AMIU
12699 ENDIF
12700* q-qq chain
12701* chain mass above minimum - resampling of sea-q x-value
12702 IF (AMSVQ1.GT.AMCHK1) THEN
12703 XPSQTH = AMCHK1/(XTVD(ITVAL)*ECM**2)
12704**sr 8.4.98 (1/sqrt(x))
12705C XPSQXX = DT_SAMPEX(XPSQTH,XPSQ(J))
12706C XPSQXX = DT_SAMSQX(XPSQTH,XPSQ(J))
12707 XPSQXX = DT_SAMPLW(XPSQTH,XPSQ(J),PLW)
12708**
12709 XPVD(IPVAL) = XPVD(IPVAL)+XPSQ(J)-XPSQXX
12710 XPSQ(J) = XPSQXX
12711* chain mass below minimum - reset sea-q x-value and correct
12712* diquark-x of the same nucleon
12713 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12714 XPSQW = AMCHK1/(XTVD(ITVAL)*ECM**2)
12715 DXPSQ = XPSQW-XPSQ(J)
12716 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12717 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12718 XPSQ(J) = XPSQW
12719 ENDIF
12720 ENDIF
12721* aq-q chain
12722* chain mass below minimum - reset sea-aq x-value and correct
12723* diquark-x of the same nucleon
12724 IF (AMSVQ2.LT.AMCHK2) THEN
12725 XPSQW = AMCHK2/(XTVQ(ITVAL)*ECM**2)
12726 DXPSQ = XPSQW-XPSAQ(J)
12727 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12728 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12729 XPSAQ(J) = XPSQW
12730 ENDIF
12731 ENDIF
12732*>>>end of chain mass correction
12733
12734 GOTO 260
12735 ENDIF
12736 250 CONTINUE
12737 ENDIF
12738 260 CONTINUE
12739 270 CONTINUE
12740
12741* (6) get valence-sea chains
12742*-----------------------------------------------------------------------
12743
12744 NVS = 0
12745 NVD = 0
12746 DO 300 I=1,NN
12747 IF (INTLO(I)) THEN
12748 IPVAL = ITOVP(INTER1(I))
12749 ITVAL = ITOVT(INTER2(I))
12750 DO 280 J=1,IXTS
12751 IF (ZUOVP(IPVAL).AND.ZUOST(J).AND.
12752 & (IFROST(J).EQ.INTER2(I))) THEN
12753 ZUOST(J) = .FALSE.
12754 ZUOVP(IPVAL) = .FALSE.
12755 INTLO(I) = .FALSE.
12756 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
12757* sample sea-diquark pair
12758 CALL DT_SAMSDQ(ECM,IPVAL,J,1,IREJ1)
12759 IF (IREJ1.EQ.0) GOTO 290
12760 ENDIF
12761 NVS = NVS + 1
12762 ISKPCH(6,NVS) = 0
12763 INTVS1(NVS) = IPVAL
12764 INTVS2(NVS) = J
12765
12766*>>>correct chain kinematics according to minimum chain masses
12767* the actual chain masses
12768 AMVSQ1 = XPVQ(IPVAL)*XTSAQ(J)*ECM**2
12769 AMVSQ2 = XPVD(IPVAL)*XTSQ(J) *ECM**2
12770* get lower mass cuts
12771 IF (ITSQ(J).EQ.3) THEN
12772* q being s-quark
12773 AMCHK1 = AMIS
12774 AMCHK2 = AMAS
12775 ELSE
12776* q being u/d-quark
12777 AMCHK1 = AMIU
12778 AMCHK2 = AMAU
12779 ENDIF
12780* q-aq chain
12781* chain mass below minimum - reset sea-aq x-value and correct
12782* diquark-x of the same nucleon
12783 IF (AMVSQ1.LT.AMCHK1) THEN
12784 XTSQW = AMCHK1/(XPVQ(IPVAL)*ECM**2)
12785 DXTSQ = XTSQW-XTSAQ(J)
12786 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12787 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12788 XTSAQ(J) = XTSQW
12789 ENDIF
12790 ENDIF
12791* qq-q chain
12792* chain mass above minimum - resampling of sea-q x-value
12793 IF (AMVSQ2.GT.AMCHK2) THEN
12794 XTSQTH = AMCHK2/(XPVD(IPVAL)*ECM**2)
12795**sr 8.4.98 (1/sqrt(x))
12796C XTSQXX = DT_SAMPEX(XTSQTH,XTSQ(J))
12797C XTSQXX = DT_SAMSQX(XTSQTH,XTSQ(J))
12798 XTSQXX = DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
12799**
12800 XTVD(ITVAL) = XTVD(ITVAL)+XTSQ(J)-XTSQXX
12801 XTSQ(J) = XTSQXX
12802* chain mass below minimum - reset sea-q x-value and correct
12803* diquark-x of the same nucleon
12804 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
12805 XTSQW = AMCHK2/(XPVD(IPVAL)*ECM**2)
12806 DXTSQ = XTSQW-XTSQ(J)
12807 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12808 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12809 XTSQ(J) = XTSQW
12810 ENDIF
12811 ENDIF
12812*>>>end of chain mass correction
12813
12814 GOTO 290
12815 ENDIF
12816 280 CONTINUE
12817 ENDIF
12818 290 CONTINUE
12819 300 CONTINUE
12820
12821* (7) get sea-sea chains
12822*-----------------------------------------------------------------------
12823
12824 NSS = 0
12825 NDS = 0
12826 NSD = 0
12827 DO 420 I=1,NN
12828 IF (INTLO(I)) THEN
12829 IPVAL = ITOVP(INTER1(I))
12830 ITVAL = ITOVT(INTER2(I))
12831* loop over target partons not yet matched
12832 DO 400 J=1,IXTS
12833 IF (ZUOST(J).AND.(IFROST(J).EQ.INTER2(I))) THEN
12834* loop over projectile partons not yet matched
12835 DO 390 JJ=1,IXPS
12836 IF (ZUOSP(JJ).AND.(IFROSP(JJ).EQ.INTER1(I))) THEN
12837 ZUOSP(JJ) = .FALSE.
12838 ZUOST(J) = .FALSE.
12839 INTLO(I) = .FALSE.
12840 NSS = NSS+1
12841 ISKPCH(1,NSS) = 0
12842 INTSS1(NSS) = JJ
12843 INTSS2(NSS) = J
12844
12845*---->chain recombination option
12846 VALFRA = DBLE(NVV/(NVV+IXPS+IXTS))
12847 IF (IRECOM.EQ.1.AND.(DT_RNDM(BSQMA).GT.VALFRA))
12848 & THEN
12849* sea-sea chains may recombine with valence-valence chains
12850* only if they have the same projectile or target nucleon
12851 DO 4201 IVV=1,NVV
12852 IF (ISKPCH(8,IVV).NE.99) THEN
12853 IXVPR = INTVV1(IVV)
12854 IXVTA = INTVV2(IVV)
12855 IF ((INTER1(I).EQ.IFROVP(IXVPR)).OR.
12856 & (INTER2(I).EQ.IFROVT(IXVTA))) THEN
12857* recombination possible, drop old v-v and s-s chains
12858 ISKPCH(1,NSS) = 99
12859 ISKPCH(8,IVV) = 99
12860
12861* (a) assign new s-v chains
12862* ~~~~~~~~~~~~~~~~~~~~~~~~~
12863 IF (LSEADI.AND.
12864 & (DT_RNDM(VALFRA).GT.FRCDIQ))
12865 & THEN
12866* sample sea-diquark pair
12867 CALL DT_SAMSDQ(ECM,IXVTA,JJ,2,
12868 & IREJ1)
12869 IF (IREJ1.EQ.0) GOTO 4202
12870 ENDIF
12871 NSV = NSV+1
12872 ISKPCH(4,NSV) = 0
12873 INTSV1(NSV) = JJ
12874 INTSV2(NSV) = IXVTA
12875*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12876* the actual chain masses
12877 AMSVQ1 = XPSQ(JJ) *XTVD(IXVTA)
12878 & *ECM**2
12879 AMSVQ2 = XPSAQ(JJ)*XTVQ(IXVTA)
12880 & *ECM**2
12881* get lower mass cuts
12882 IF (IPSQ(JJ).EQ.3) THEN
12883* q being s-quark
12884 AMCHK1 = AMAS
12885 AMCHK2 = AMIS
12886 ELSE
12887* q being u/d-quark
12888 AMCHK1 = AMAU
12889 AMCHK2 = AMIU
12890 ENDIF
12891* q-qq chain
12892* chain mass above minimum - resampling of sea-q x-value
12893 IF (AMSVQ1.GT.AMCHK1) THEN
12894 XPSQTH =
12895 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12896**sr 8.4.98 (1/sqrt(x))
12897 XPSQXX =
12898 & DT_SAMPLW(XPSQTH,XPSQ(JJ),PLW)
12899C & DT_SAMSQX(XPSQTH,XPSQ(JJ))
12900C & DT_SAMPEX(XPSQTH,XPSQ(JJ))
12901**
12902 XPVD(IPVAL) =
12903 & XPVD(IPVAL)+XPSQ(JJ)-XPSQXX
12904 XPSQ(JJ) = XPSQXX
12905* chain mass below minimum - reset sea-q x-value and correct
12906* diquark-x of the same nucleon
12907 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12908 XPSQW =
12909 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12910 DXPSQ = XPSQW-XPSQ(JJ)
12911 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12912 & THEN
12913 XPVD(IPVAL) =
12914 & XPVD(IPVAL)-DXPSQ
12915 XPSQ(JJ) = XPSQW
12916 ENDIF
12917 ENDIF
12918* aq-q chain
12919* chain mass below minimum - reset sea-aq x-value and correct
12920* diquark-x of the same nucleon
12921 IF (AMSVQ2.LT.AMCHK2) THEN
12922 XPSQW =
12923 & AMCHK2/(XTVQ(IXVTA)*ECM**2)
12924 DXPSQ = XPSQW-XPSAQ(JJ)
12925 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12926 & THEN
12927 XPVD(IPVAL) =
12928 & XPVD(IPVAL)-DXPSQ
12929 XPSAQ(JJ) = XPSQW
12930 ENDIF
12931 ENDIF
12932*>>>>>>>>>>>end of chain mass correction
12933 4202 CONTINUE
12934
12935* (b) assign new v-s chains
12936* ~~~~~~~~~~~~~~~~~~~~~~~~~
12937 IF (LSEADI.AND.(
12938 & DT_RNDM(AMSVQ2).GT.FRCDIQ))
12939 & THEN
12940* sample sea-diquark pair
12941 CALL DT_SAMSDQ(ECM,IXVPR,J,1,
12942 & IREJ1)
12943 IF (IREJ1.EQ.0) GOTO 4203
12944 ENDIF
12945 NVS = NVS+1
12946 ISKPCH(6,NVS) = 0
12947 INTVS1(NVS) = IXVPR
12948 INTVS2(NVS) = J
12949*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12950* the actual chain masses
12951 AMVSQ1 = XPVQ(IXVPR)*XTSAQ(J)*ECM**2
12952 AMVSQ2 = XPVD(IXVPR)*XTSQ(J) *ECM**2
12953* get lower mass cuts
12954 IF (ITSQ(J).EQ.3) THEN
12955* q being s-quark
12956 AMCHK1 = AMIS
12957 AMCHK2 = AMAS
12958 ELSE
12959* q being u/d-quark
12960 AMCHK1 = AMIU
12961 AMCHK2 = AMAU
12962 ENDIF
12963* q-aq chain
12964* chain mass below minimum - reset sea-aq x-value and correct
12965* diquark-x of the same nucleon
12966 IF (AMVSQ1.LT.AMCHK1) THEN
12967 XTSQW =
12968 & AMCHK1/(XPVQ(IXVPR)*ECM**2)
12969 DXTSQ = XTSQW-XTSAQ(J)
12970 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
12971 & THEN
12972 XTVD(ITVAL) =
12973 & XTVD(ITVAL)-DXTSQ
12974 XTSAQ(J) = XTSQW
12975 ENDIF
12976 ENDIF
12977 IF (AMVSQ2.GT.AMCHK2) THEN
12978 XTSQTH =
12979 & AMCHK2/(XPVD(IXVPR)*ECM**2)
12980**sr 8.4.98 (1/sqrt(x))
12981 XTSQXX =
12982 & DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
12983C & DT_SAMSQX(XTSQTH,XTSQ(J))
12984C & DT_SAMPEX(XTSQTH,XTSQ(J))
12985**
12986 XTVD(ITVAL) =
12987 & XTVD(ITVAL)+XTSQ(J)-XTSQXX
12988 XTSQ(J) = XTSQXX
12989 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
12990 XTSQW =
12991 & AMCHK2/(XPVD(IXVPR)*ECM**2)
12992 DXTSQ = XTSQW-XTSQ(J)
12993 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
12994 & THEN
12995 XTVD(ITVAL) =
12996 & XTVD(ITVAL)-DXTSQ
12997 XTSQ(J) = XTSQW
12998 ENDIF
12999 ENDIF
13000*>>>>>>>>>end of chain mass correction
13001 4203 CONTINUE
13002* jump out of s-s chain loop
13003 GOTO 420
13004 ENDIF
13005 ENDIF
13006 4201 CONTINUE
13007 ENDIF
13008*---->end of chain recombination option
13009
13010* sample sea-diquark pair (projectile)
13011 IF (LSEADI.AND.(DT_RNDM(BSQMA).GT.FRCDIQ)) THEN
13012 CALL DT_SAMSDQ(ECM,J,JJ,4,IREJ1)
13013 IF (IREJ1.EQ.0) THEN
13014 ISKPCH(1,NSS) = 99
13015 GOTO 410
13016 ENDIF
13017 ENDIF
13018* sample sea-diquark pair (target)
13019 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
13020 CALL DT_SAMSDQ(ECM,JJ,J,3,IREJ1)
13021 IF (IREJ1.EQ.0) THEN
13022 ISKPCH(1,NSS) = 99
13023 GOTO 410
13024 ENDIF
13025 ENDIF
13026*>>>>>correct chain kinematics according to minimum chain masses
13027* the actual chain masses
13028 SSMA1Q = XPSQ(JJ) *XTSAQ(J)*ECM**2
13029 SSMA2Q = XPSAQ(JJ)*XTSQ(J) *ECM**2
13030* check for lower mass cuts
13031 IF ((SSMA1Q.LT.SSMIMQ).OR.
13032 & (SSMA2Q.LT.SSMIMQ)) THEN
13033 IPVAL = ITOVP(INTER1(I))
13034 ITVAL = ITOVT(INTER2(I))
13035 IF ((XPVD(IPVAL).GT.XDTHR+3.5D0*XSSTHR).AND.
13036 & (XTVD(ITVAL).GT.XDTHR+3.5D0*XSSTHR))THEN
13037* maximum allowed x values for sea quarks
13038 XSPMAX = ONE-XPVQ(IPVAL)-XDTHR-
13039 & 1.2D0*XSSTHR
13040 XSTMAX = ONE-XTVQ(ITVAL)-XDTHR-
13041 & 1.2D0*XSSTHR
13042* resampling of x values not possible - skip sea-sea chains
13043 IF ((XSPMAX.LE.XSSTHR+0.05D0).OR.
13044 & (XSTMAX.LE.XSSTHR+0.05D0)) GOTO 380
13045* resampling of x for projectile sea quark pair
13046 ICOUS = 0
13047 310 CONTINUE
13048 ICOUS = ICOUS+1
13049 IF (XSSTHR.GT.0.05D0) THEN
13050 XPSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13051 & XSPMAX)
13052 XPSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13053 & XSPMAX)
13054 ELSE
13055 320 CONTINUE
13056 XPSQI = DT_DBETAR(XSEACU,UNOSEA)
13057 IF ((XPSQI.LT.XSSTHR).OR.
13058 & (XPSQI.GT.XSPMAX)) GOTO 320
13059 330 CONTINUE
13060 XPSAQI = DT_DBETAR(XSEACU,UNOSEA)
13061 IF ((XPSAQI.LT.XSSTHR).OR.
13062 & (XPSAQI.GT.XSPMAX)) GOTO 330
13063 ENDIF
13064* final test of remaining x for projectile diquark
13065 XPVDCO = XPVD(IPVAL)-XPSQI-XPSAQI
13066 & +XPSQ(JJ)+XPSAQ(JJ)
13067 IF (XPVDCO.LE.XDTHR) THEN
13068*!!!
13069C IF (ICOUS.LT.5) GOTO 310
13070 IF (ICOUS.LT.0.5D0) GOTO 310
13071 GOTO 380
13072 ENDIF
13073* resampling of x for target sea quark pair
13074 ICOUS = 0
13075 350 CONTINUE
13076 ICOUS = ICOUS+1
13077 IF (XSSTHR.GT.0.05D0) THEN
13078 XTSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13079 & XSTMAX)
13080 XTSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13081 & XSTMAX)
13082 ELSE
13083 360 CONTINUE
13084 XTSQI = DT_DBETAR(XSEACU,UNOSEA)
13085 IF ((XTSQI.LT.XSSTHR).OR.
13086 & (XTSQI.GT.XSTMAX)) GOTO 360
13087 370 CONTINUE
13088 XTSAQI = DT_DBETAR(XSEACU,UNOSEA)
13089 IF ((XTSAQI.LT.XSSTHR).OR.
13090 & (XTSAQI.GT.XSTMAX)) GOTO 370
13091 ENDIF
13092* final test of remaining x for target diquark
13093 XTVDCO = XTVD(ITVAL)-XTSQI-XTSAQI
13094 & +XTSQ(J)+XTSAQ(J)
13095 IF (XTVDCO.LT.XDTHR) THEN
13096 IF (ICOUS.LT.5) GOTO 350
13097 GOTO 380
13098 ENDIF
13099 XPVD(IPVAL) = XPVDCO
13100 XTVD(ITVAL) = XTVDCO
13101 XPSQ(JJ) = XPSQI
13102 XPSAQ(JJ) = XPSAQI
13103 XTSQ(J) = XTSQI
13104 XTSAQ(J) = XTSAQI
13105*>>>>>end of chain mass correction
13106 GOTO 410
13107 ENDIF
13108* come here to discard s-s interaction
13109* resampling of x values not allowed or unsuccessful
13110 380 CONTINUE
13111 INTLO(I) = .FALSE.
13112 ZUOST(J) = .TRUE.
13113 ZUOSP(JJ) = .TRUE.
13114 NSS = NSS-1
13115 ENDIF
13116* consider next s-s interaction
13117 GOTO 410
13118 ENDIF
13119 390 CONTINUE
13120 ENDIF
13121 400 CONTINUE
13122 ENDIF
13123 410 CONTINUE
13124 420 CONTINUE
13125
13126* correct x-values of valence quarks for non-matching sea quarks
13127 DO 430 I=1,IXPS
13128 IF (ZUOSP(I)) THEN
13129 IPVAL = ITOVP(IFROSP(I))
13130 XPVQ(IPVAL) = XPVQ(IPVAL)+XPSQ(I)+XPSAQ(I)
13131 XPSQ(I) = ZERO
13132 XPSAQ(I) = ZERO
13133 ZUOSP(I) = .FALSE.
13134 ENDIF
13135 430 CONTINUE
13136 DO 440 I=1,IXTS
13137 IF (ZUOST(I)) THEN
13138 ITVAL = ITOVT(IFROST(I))
13139 XTVQ(ITVAL) = XTVQ(ITVAL)+XTSQ(I)+XTSAQ(I)
13140 XTSQ(I) = ZERO
13141 XTSAQ(I) = ZERO
13142 ZUOST(I) = .FALSE.
13143 ENDIF
13144 440 CONTINUE
13145 DO 450 I=1,IXPV
13146 IF (ZUOVP(I)) ISTHKK(IFROVP(I)) = 13
13147 450 CONTINUE
13148 DO 460 I=1,IXTV
13149 IF (ZUOVT(I)) ISTHKK(IFROVT(I)+IP) = 14
13150 460 CONTINUE
13151
13152 RETURN
13153 END
13154
13155*$ CREATE DT_SAMSDQ.FOR
13156*COPY DT_SAMSDQ
13157*
13158*===samsdq=============================================================*
13159*
13160 SUBROUTINE DT_SAMSDQ(ECM,IDX1,IDX2,MODE,IREJ)
13161
13162************************************************************************
13163* SAMpling of Sea-DiQuarks *
13164* ECM cm-energy of the nucleon-nucleon system *
13165* IDX1,2 indices of x-values of the participating *
13166* partons (IDX2 is always the sea-q-pair to be *
13167* changed to sea-qq-pair) *
13168* MODE = 1 valence-q - sea-diq *
13169* = 2 sea-diq - valence-q *
13170* = 3 sea-q - sea-diq *
13171* = 4 sea-diq - sea-q *
13172* Based on DIQVS, DIQSV, DIQSSD, DIQDSS. *
13173* This version dated 17.10.95 is written by S. Roesler *
13174************************************************************************
13175
13176 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13177 SAVE
13178
13179 PARAMETER (ZERO=0.0D0)
13180
13181* threshold values for x-sampling (DTUNUC 1.x)
13182 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
13183 & SSMIMQ,VVMTHR
13184* various options for treatment of partons (DTUNUC 1.x)
13185* (chain recombination, Cronin,..)
13186 LOGICAL LCO2CR,LINTPT
13187 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
13188 & LCO2CR,LINTPT
13189 PARAMETER ( MAXNCL = 260,
13190 & MAXVQU = MAXNCL,
13191 & MAXSQU = 20*MAXVQU,
13192 & MAXINT = MAXVQU+MAXSQU)
13193* x-values of partons (DTUNUC 1.x)
13194 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
13195 & XTVQ(MAXVQU),XTVD(MAXVQU),
13196 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
13197 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
13198* flavors of partons (DTUNUC 1.x)
13199 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
13200 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
13201 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
13202 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
13203 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
13204 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
13205 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
13206* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13207 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
13208 & IXPV,IXPS,IXTV,IXTS,
13209 & INTVV1(MAXVQU),INTVV2(MAXVQU),
13210 & INTSV1(MAXVQU),INTSV2(MAXVQU),
13211 & INTVS1(MAXVQU),INTVS2(MAXVQU),
13212 & INTSS1(MAXSQU),INTSS2(MAXSQU),
13213 & INTDV1(MAXVQU),INTDV2(MAXVQU),
13214 & INTVD1(MAXVQU),INTVD2(MAXVQU),
13215 & INTDS1(MAXSQU),INTDS2(MAXSQU),
13216 & INTSD1(MAXSQU),INTSD2(MAXSQU)
13217* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13218 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
13219 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
13220* auxiliary common for chain system storage (DTUNUC 1.x)
13221 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
13222
13223 IREJ = 0
13224* threshold-x for valence diquarks
13225 XDTHR = CDQ/ECM
13226
13227 GOTO (1,2,3,4) MODE
13228
13229*---------------------------------------------------------------------
13230* proj. valence partons - targ. sea partons
13231* get x-values and flavors for target sea-diquark pair
13232
13233 1 CONTINUE
13234 IDXVP = IDX1
13235 IDXST = IDX2
13236
13237* index of corr. val-diquark-x in target nucleon
13238 IDXVT = ITOVT(IFROST(IDXST))
13239* available x above diquark thresholds for valence- and sea-diquarks
13240 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13241
13242 IF (XXD.GE.ZERO) THEN
13243* x-values for the three diquarks of the target nucleon
13244 RR1 = DT_RNDM(XXD)
13245 RR2 = DT_RNDM(RR1)
13246 RR3 = DT_RNDM(RR2)
13247 SR123 = RR1+RR2+RR3
13248 XXTV = XDTHR+RR1*XXD/SR123
13249 XXTSQ = XDTHR+RR2*XXD/SR123
13250 XXTSAQ = XDTHR+RR3*XXD/SR123
13251 ELSE
13252 XXTV = XTVD(IDXVT)
13253 XXTSQ = XTSQ(IDXST)
13254 XXTSAQ = XTSAQ(IDXST)
13255 ENDIF
13256* flavor of the second quarks in the sea-diquark pair
13257 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13258 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13259* check masses of the new val-q - sea-qq, val-qq - sea-aqaq chains
13260 AM1 = XXTSQ *XPVQ(IDXVP)*ECM**2
13261 AM2 = XXTSAQ*XPVD(IDXVP)*ECM**2
13262 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13263* ss-asas pair
13264 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13265 IREJ = 1
13266 RETURN
13267 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13268* at least one strange quark
13269 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13270 IREJ = 1
13271 RETURN
13272 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13273 IREJ = 1
13274 RETURN
13275 ENDIF
13276* accept the new sea-diquark
13277 XTVD(IDXVT) = XXTV
13278 XTSQ(IDXST) = XXTSQ
13279 XTSAQ(IDXST) = XXTSAQ
13280 NVD = NVD+1
13281 INTVD1(NVD) = IDXVP
13282 INTVD2(NVD) = IDXST
13283 ISKPCH(7,NVD) = 0
13284 RETURN
13285
13286*---------------------------------------------------------------------
13287* proj. sea partons - targ. valence partons
13288* get x-values and flavors for projectile sea-diquark pair
13289
13290 2 CONTINUE
13291 IDXSP = IDX2
13292 IDXVT = IDX1
13293
13294* index of corr. val-diquark-x in projectile nucleon
13295 IDXVP = ITOVP(IFROSP(IDXSP))
13296* available x above diquark thresholds for valence- and sea-diquarks
13297 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13298
13299 IF (XXD.GE.ZERO) THEN
13300* x-values for the three diquarks of the projectile nucleon
13301 RR1 = DT_RNDM(XXD)
13302 RR2 = DT_RNDM(RR1)
13303 RR3 = DT_RNDM(RR2)
13304 SR123 = RR1+RR2+RR3
13305 XXPV = XDTHR+RR1*XXD/SR123
13306 XXPSQ = XDTHR+RR2*XXD/SR123
13307 XXPSAQ = XDTHR+RR3*XXD/SR123
13308 ELSE
13309 XXPV = XPVD(IDXVP)
13310 XXPSQ = XPSQ(IDXSP)
13311 XXPSAQ = XPSAQ(IDXSP)
13312 ENDIF
13313* flavor of the second quarks in the sea-diquark pair
13314 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13315 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13316* check masses of the new sea-qq - val-q, sea-aqaq - val-qq chains
13317 AM1 = XXPSQ *XTVQ(IDXVT)*ECM**2
13318 AM2 = XXPSAQ*XTVD(IDXVT)*ECM**2
13319 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13320* ss-asas pair
13321 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13322 IREJ = 1
13323 RETURN
13324 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13325* at least one strange quark
13326 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13327 IREJ = 1
13328 RETURN
13329 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13330 IREJ = 1
13331 RETURN
13332 ENDIF
13333* accept the new sea-diquark
13334 XPVD(IDXVP) = XXPV
13335 XPSQ(IDXSP) = XXPSQ
13336 XPSAQ(IDXSP) = XXPSAQ
13337 NDV = NDV+1
13338 INTDV1(NDV) = IDXSP
13339 INTDV2(NDV) = IDXVT
13340 ISKPCH(5,NDV) = 0
13341 RETURN
13342
13343*---------------------------------------------------------------------
13344* proj. sea partons - targ. sea partons
13345* get x-values and flavors for target sea-diquark pair
13346
13347 3 CONTINUE
13348 IDXSP = IDX1
13349 IDXST = IDX2
13350
13351* index of corr. val-diquark-x in target nucleon
13352 IDXVT = ITOVT(IFROST(IDXST))
13353* available x above diquark thresholds for valence- and sea-diquarks
13354 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13355
13356 IF (XXD.GE.ZERO) THEN
13357* x-values for the three diquarks of the target nucleon
13358 RR1 = DT_RNDM(XXD)
13359 RR2 = DT_RNDM(RR1)
13360 RR3 = DT_RNDM(RR2)
13361 SR123 = RR1+RR2+RR3
13362 XXTV = XDTHR+RR1*XXD/SR123
13363 XXTSQ = XDTHR+RR2*XXD/SR123
13364 XXTSAQ = XDTHR+RR3*XXD/SR123
13365 ELSE
13366 XXTV = XTVD(IDXVT)
13367 XXTSQ = XTSQ(IDXST)
13368 XXTSAQ = XTSAQ(IDXST)
13369 ENDIF
13370* flavor of the second quarks in the sea-diquark pair
13371 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13372 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13373* check masses of the new sea-q - sea-qq, sea-aq - sea-aqaq chains
13374 AM1 = XXTSQ *XPSQ(IDXSP)*ECM**2
13375 AM2 = XXTSAQ*XPSAQ(IDXSP)*ECM**2
13376 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13377* ss-asas pair
13378 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13379 IREJ = 1
13380 RETURN
13381 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13382* at least one strange quark
13383 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13384 IREJ = 1
13385 RETURN
13386 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13387 IREJ = 1
13388 RETURN
13389 ENDIF
13390* accept the new sea-diquark
13391 XTVD(IDXVT) = XXTV
13392 XTSQ(IDXST) = XXTSQ
13393 XTSAQ(IDXST) = XXTSAQ
13394 NSD = NSD+1
13395 INTSD1(NSD) = IDXSP
13396 INTSD2(NSD) = IDXST
13397 ISKPCH(3,NSD) = 0
13398 RETURN
13399
13400*---------------------------------------------------------------------
13401* proj. sea partons - targ. sea partons
13402* get x-values and flavors for projectile sea-diquark pair
13403
13404 4 CONTINUE
13405 IDXSP = IDX2
13406 IDXST = IDX1
13407
13408* index of corr. val-diquark-x in projectile nucleon
13409 IDXVP = ITOVP(IFROSP(IDXSP))
13410* available x above diquark thresholds for valence- and sea-diquarks
13411 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13412
13413 IF (XXD.GE.ZERO) THEN
13414* x-values for the three diquarks of the projectile nucleon
13415 RR1 = DT_RNDM(XXD)
13416 RR2 = DT_RNDM(RR1)
13417 RR3 = DT_RNDM(RR2)
13418 SR123 = RR1+RR2+RR3
13419 XXPV = XDTHR+RR1*XXD/SR123
13420 XXPSQ = XDTHR+RR2*XXD/SR123
13421 XXPSAQ = XDTHR+RR3*XXD/SR123
13422 ELSE
13423 XXPV = XPVD(IDXVP)
13424 XXPSQ = XPSQ(IDXSP)
13425 XXPSAQ = XPSAQ(IDXSP)
13426 ENDIF
13427* flavor of the second quarks in the sea-diquark pair
13428 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13429 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13430* check masses of the new sea-qq - sea-q, sea-aqaq - sea-qq chains
13431 AM1 = XXPSQ *XTSQ(IDXST)*ECM**2
13432 AM2 = XXPSAQ*XTSAQ(IDXST)*ECM**2
13433 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13434* ss-asas pair
13435 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13436 IREJ = 1
13437 RETURN
13438 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13439* at least one strange quark
13440 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13441 IREJ = 1
13442 RETURN
13443 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13444 IREJ = 1
13445 RETURN
13446 ENDIF
13447* accept the new sea-diquark
13448 XPVD(IDXVP) = XXPV
13449 XPSQ(IDXSP) = XXPSQ
13450 XPSAQ(IDXSP) = XXPSAQ
13451 NDS = NDS+1
13452 INTDS1(NDS) = IDXSP
13453 INTDS2(NDS) = IDXST
13454 ISKPCH(2,NDS) = 0
13455 RETURN
13456 END
13457
13458*$ CREATE DT_DIFEVT.FOR
13459*COPY DT_DIFEVT
13460*
13461*===difevt=============================================================*
13462*
13463 SUBROUTINE DT_DIFEVT(IFP1,IFP2,PP,MOP,
13464 & IFT1,IFT2,PT,MOT,JDIFF,NCSY,IREJ)
13465
13466************************************************************************
13467* Interface to treatment of diffractive interactions. *
13468* (input) IFP1/2 PDG-indizes of projectile partons *
13469* (baryon: IFP2 - adiquark) *
13470* PP(4) projectile 4-momentum *
13471* IFT1/2 PDG-indizes of target partons *
13472* (baryon: IFT1 - adiquark) *
13473* PT(4) target 4-momentum *
13474* (output) JDIFF = 0 no diffraction *
13475* = 1/-1 LMSD/LMDD *
13476* = 2/-2 HMSD/HMDD *
13477* NCSY counter for two-chain systems *
13478* dumped to DTEVT1 *
13479* This version dated 14.02.95 is written by S. Roesler *
13480************************************************************************
13481
13482 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13483 SAVE
13484 PARAMETER ( LINP = 10 ,
13485 & LOUT = 6 ,
13486 & LDAT = 9 )
13487 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5,
13488 & OHALF=0.5D0)
13489
13490* event history
13491 PARAMETER (NMXHKK=200000)
13492 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
13493 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
13494 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
13495* extended event history
13496 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
13497 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
13498 & IHIST(2,NMXHKK)
13499* flags for diffractive interactions (DTUNUC 1.x)
13500 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
13501
13502 DIMENSION PP(4),PT(4)
13503
13504 LOGICAL LFIRST
13505 DATA LFIRST /.TRUE./
13506
13507 IREJ = 0
13508 JDIFF = 0
13509 IFLAGD = JDIFF
13510
13511* cm. energy
13512 XM = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
13513 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
13514* identities of projectile hadron / target nucleon
13515 KPROJ = IDT_ICIHAD(IDHKK(MOP))
13516 KTARG = IDT_ICIHAD(IDHKK(MOT))
13517
13518* single diffractive xsections
13519 CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM)
13520* double diffractive xsections
13521**!! no double diff yet
13522C CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM,DDTOT,DDHM)
13523 DDTOT = 0.0D0
13524 DDHM = 0.0D0
13525**!!
13526* total inelastic xsection
13527C SIGIN = DT_SHNTOT(KPROJ,KTARG,XM,ZERO)-DT_SHNELA(KPROJ,KTARG,XM)
13528 DUMZER = ZERO
13529 CALL DT_XSHN(KPROJ,KTARG,DUMZER,XM,SIGTO,SIGEL)
13530 SIGIN = MAX(SIGTO-SIGEL,ZERO)
13531
13532* fraction of diffractive processes
13533 FRADIF = (SDTOT+DDTOT)/SIGIN
13534
13535 IF (LFIRST) THEN
13536 WRITE(LOUT,1000) XM,SDTOT,SIGIN
13537 1000 FORMAT(1X,'DIFEVT: single diffraction requested at E_cm = ',
13538 & F5.1,' GeV',/,9X,'sigma_sd = ',F4.1,' mb, sigma_in = ',
13539 & F5.1,' mb',/)
13540 LFIRST = .FALSE.
13541 ENDIF
13542
13543 IF ((DT_RNDM(DDHM).LE.FRADIF).OR.
13544 & (ISINGD.GT.1).OR.(IDOUBD.GT.1)) THEN
13545* diffractive interaction requested by x-section or by user
13546 FRASD = SDTOT/(SDTOT+DDTOT)
13547 FRASDH = SDHM/SDTOT
13548**sr needs to be specified!!
13549C FRADDH = DDHM/DDTOT
13550 FRADDH = 1.0D0
13551**
13552 IF ((DT_RNDM(FRASD).LE.FRASD).OR.(ISINGD.GT.1)) THEN
13553* single diffraction
13554 KDIFF = 1
13555 IF (DT_RNDM(DDTOT).LE.FRASDH) THEN
13556 KP = 2
13557 KT = 0
13558 IF (((ISINGD.EQ.4).OR.(DT_RNDM(DDTOT).GE.OHALF)).AND.
13559 & ISINGD.NE.3) THEN
13560 KP = 0
13561 KT = 2
13562 ENDIF
13563 ELSE
13564 KP = 1
13565 KT = 0
13566 IF (((ISINGD.EQ.4).OR.(DT_RNDM(FRADDH).GE.OHALF)).AND.
13567 & ISINGD.NE.3) THEN
13568 KP = 0
13569 KT = 1
13570 ENDIF
13571 ENDIF
13572 ELSE
13573* double diffraction
13574 KDIFF = -1
13575 IF (DT_RNDM(FRADDH).LE.FRADDH) THEN
13576 KP = 2
13577 KT = 2
13578 ELSE
13579 KP = 1
13580 KT = 1
13581 ENDIF
13582 ENDIF
13583 CALL DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13584 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13585 IF (IREJ1.EQ.0) THEN
13586 IFLAGD = 2*KDIFF
13587 IF ((KP.EQ.1).OR.(KT.EQ.1)) IFLAGD = KDIFF
13588 ELSE
13589 GOTO 9999
13590 ENDIF
13591 ENDIF
13592 JDIFF = IFLAGD
13593
13594 RETURN
13595
13596 9999 CONTINUE
13597 IREJ = 1
13598 RETURN
13599 END
13600
13601*$ CREATE DT_DIFFKI.FOR
13602*COPY DT_DIFFKI
13603*
13604*===difkin=============================================================*
13605*
13606 SUBROUTINE DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13607 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ)
13608
13609************************************************************************
13610* Kinematics of diffractive nucleon-nucleon interaction. *
13611* IFP1/2 PDG-indizes of projectile partons *
13612* (baryon: IFP2 - adiquark) *
13613* PP(4) projectile 4-momentum *
13614* IFT1/2 PDG-indizes of target partons *
13615* (baryon: IFT1 - adiquark) *
13616* PT(4) target 4-momentum *
13617* KP = 0 projectile quasi-elastically scattered *
13618* = 1 excited to low-mass diff. state *
13619* = 2 excited to high-mass diff. state *
13620* KT = 0 target quasi-elastically scattered *
13621* = 1 excited to low-mass diff. state *
13622* = 2 excited to high-mass diff. state *
13623* This version dated 12.02.95 is written by S. Roesler *
13624************************************************************************
13625
13626 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13627 SAVE
13628 PARAMETER ( LINP = 10 ,
13629 & LOUT = 6 ,
13630 & LDAT = 9 )
13631 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5)
13632
13633 LOGICAL LSTART
13634
13635* particle properties (BAMJET index convention)
13636 CHARACTER*8 ANAME
13637 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
13638 & IICH(210),IIBAR(210),K1(210),K2(210)
13639* flags for input different options
13640 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
13641 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
13642 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
13643* rejection counter
13644 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
13645 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
13646 & IREXCI(3),IRDIFF(2),IRINC
13647* kinematics of diffractive interactions (DTUNUC 1.x)
13648 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13649 & PPF(4),PTF(4),
13650 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13651 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13652
13653 DIMENSION PITOT(4),BGTOT(4),PP1(4),PT1(4),PPBLOB(4),PTBLOB(4),
13654 & PP(4),PT(4),PPOM1(4),DEV1(4),DEV2(4)
13655
13656 DATA LSTART /.TRUE./
13657
13658 IF (LSTART) THEN
13659 WRITE(LOUT,2000)
13660 2000 FORMAT(/,1X,'DIFEVT: diffractive interactions treated ')
13661 LSTART = .FALSE.
13662 ENDIF
13663
13664 IREJ = 0
13665
13666* initialize common /DTDIKI/
13667 CALL DT_DIFINI
13668* store momenta of initial incoming particles for emc-check
13669 IF (LEMCCK) THEN
13670 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM,IDUM)
13671 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM,IDUM)
13672 ENDIF
13673
13674* masses of initial particles
13675 XMP2 = PP(4)**2-PP(1)**2-PP(2)**2-PP(3)**2
13676 XMT2 = PT(4)**2-PT(1)**2-PT(2)**2-PT(3)**2
13677 IF ((XMP2.LT.ZERO).OR.(XMT2.LT.ZERO)) GOTO 9999
13678 XMP = SQRT(XMP2)
13679 XMT = SQRT(XMT2)
13680* check quark-input (used to adjust coherence cond. for M-selection)
13681 IBP = 0
13682 IF ((ABS(IFP1).GE.1000).OR.(ABS(IFP2).GE.1000)) IBP = 1
13683 IBT = 0
13684 IF ((ABS(IFT1).GE.1000).OR.(ABS(IFT2).GE.1000)) IBT = 1
13685
13686* parameter for Lorentz-transformation into nucleon-nucleon cms
13687 DO 3 K=1,4
13688 PITOT(K) = PP(K)+PT(K)
13689 3 CONTINUE
13690 XMTOT2 = PITOT(4)**2-PITOT(1)**2-PITOT(2)**2-PITOT(3)**2
13691 IF (XMTOT2.LE.ZERO) THEN
13692 WRITE(LOUT,1000) XMTOT2
13693 1000 FORMAT(1X,'DIFEVT: negative cm. energy! ',
13694 & 'XMTOT2 = ',E12.3)
13695 GOTO 9999
13696 ENDIF
13697 XMTOT = SQRT(XMTOT2)
13698 DO 4 K=1,4
13699 BGTOT(K) = PITOT(K)/XMTOT
13700 4 CONTINUE
13701* transformation of nucleons into cms
13702 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PP(1),PP(2),
13703 & PP(3),PP(4),PPTOT,PP1(1),PP1(2),PP1(3),PP1(4))
13704 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PT(1),PT(2),
13705 & PT(3),PT(4),PTTOT,PT1(1),PT1(2),PT1(3),PT1(4))
13706* rotation angles
13707 COD = PP1(3)/PPTOT
13708C SID = SQRT((ONE-COD)*(ONE+COD))
13709 PPT = SQRT(PP1(1)**2+PP1(2)**2)
13710 SID = PPT/PPTOT
13711 COF = ONE
13712 SIF = ZERO
13713 IF(PPTOT*SID.GT.TINY10) THEN
13714 COF = PP1(1)/(SID*PPTOT)
13715 SIF = PP1(2)/(SID*PPTOT)
13716 ANORF = SQRT(COF*COF+SIF*SIF)
13717 COF = COF/ANORF
13718 SIF = SIF/ANORF
13719 ENDIF
13720* check consistency
13721 DO 5 K=1,4
13722 DEV1(K) = ABS(PP1(K)+PT1(K))
13723 5 CONTINUE
13724 DEV1(4) = ABS(DEV1(4)-XMTOT)
13725 IF ((DEV1(1).GT.TINY10).OR.(DEV1(2).GT.TINY10).OR.
13726 & (DEV1(3).GT.TINY10).OR.(DEV1(4).GT.TINY10)) THEN
13727 WRITE(LOUT,1001) DEV1
13728 1001 FORMAT(1X,'DIFEVT: inconsitent Lorentz-transformation! ',
13729 & /,8X,4E12.3)
13730 GOTO 9999
13731 ENDIF
13732
13733* select x-fractions in high-mass diff. interactions
13734 IF ((KP.EQ.2).OR.(KT.EQ.2)) CALL DT_XVALHM(KP,KT)
13735
13736* select diffractive masses
13737* - projectile
13738 IF (KP.EQ.1) THEN
13739 XMPF = DT_XMLMD(XMTOT)
13740 CALL DT_LM2RES(IFP1,IFP2,XMPF,IDPR,IDXPR,IREJ1)
13741 IF (IREJ1.GT.0) GOTO 9999
13742 ELSEIF (KP.EQ.2) THEN
13743 XMPF = DT_XMHMD(XMTOT,IBP,1)
13744 ELSE
13745 XMPF = XMP
13746 ENDIF
13747* - target
13748 IF (KT.EQ.1) THEN
13749 XMTF = DT_XMLMD(XMTOT)
13750 CALL DT_LM2RES(IFT1,IFT2,XMTF,IDTR,IDXTR,IREJ1)
13751 IF (IREJ1.GT.0) GOTO 9999
13752 ELSEIF (KT.EQ.2) THEN
13753 XMTF = DT_XMHMD(XMTOT,IBT,2)
13754 ELSE
13755 XMTF = XMT
13756 ENDIF
13757
13758* kinematical treatment of "two-particle" system (masses - XMPF,XMTF)
13759 XMPF2 = XMPF**2
13760 XMTF2 = XMTF**2
13761 PPBLOB(3) = DT_YLAMB(XMTOT2,XMPF2,XMTF2)/(2.D0*XMTOT)
13762 PPBLOB(4) = SQRT(XMPF2+PPBLOB(3)**2)
13763
13764* select momentum transfer (all t-values used here are <0)
13765* minimum absolute value to produce diffractive masses
13766 TMIN = XMP2+XMPF2-2.0D0*(PP1(4)*PPBLOB(4)-PPTOT*PPBLOB(3))
13767 TT = DT_TDIFF(XMTOT,TMIN,XMPF,KP,XMTF,KT,IREJ1)
13768 IF (IREJ1.GT.0) GOTO 9999
13769
13770* longitudinal momentum of excited/elastically scattered projectile
13771 PPBLOB(3) = (TT-XMP2-XMPF2+2.0D0*PP1(4)*PPBLOB(4))/(2.0D0*PPTOT)
13772* total transverse momentum due to t-selection
13773 PPBLT2 = PPBLOB(4)**2-PPBLOB(3)**2-XMPF2
13774 IF (PPBLT2.LT.ZERO) THEN
13775 WRITE(LOUT,1002) PPBLT2,KP,PP1,XMPF,KT,PT1,XMTF,TT
13776 1002 FORMAT(1X,'DIFEVT: inconsistent transverse momentum! ',
13777 & E12.3,2(/,1X,I2,5E12.3),/,1X,E12.3)
13778 GOTO 9999
13779 ENDIF
13780 CALL DT_DSFECF(SINPHI,COSPHI)
13781 PPBLT = SQRT(PPBLT2)
13782 PPBLOB(1) = COSPHI*PPBLT
13783 PPBLOB(2) = SINPHI*PPBLT
13784
13785* rotate excited/elastically scattered projectile into n-n cms.
13786 CALL DT_MYTRAN(1,PPBLOB(1),PPBLOB(2),PPBLOB(3),COD,SID,COF,SIF,
13787 & XX,YY,ZZ)
13788 PPBLOB(1) = XX
13789 PPBLOB(2) = YY
13790 PPBLOB(3) = ZZ
13791
13792* 4-momentum of excited/elastically scattered target and of exchanged
13793* Pomeron
13794 DO 6 K=1,4
13795 IF (K.LT.4) PTBLOB(K) = -PPBLOB(K)
13796 PPOM1(K) = PP1(K)-PPBLOB(K)
13797 6 CONTINUE
13798 PTBLOB(4) = XMTOT-PPBLOB(4)
13799
13800* Lorentz-transformation back into system of initial diff. collision
13801 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13802 & PPBLOB(1),PPBLOB(2),PPBLOB(3),PPBLOB(4),
13803 & PPTOTF,PPF(1),PPF(2),PPF(3),PPF(4))
13804 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13805 & PTBLOB(1),PTBLOB(2),PTBLOB(3),PTBLOB(4),
13806 & PTTOTF,PTF(1),PTF(2),PTF(3),PTF(4))
13807 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13808 & PPOM1(1),PPOM1(2),PPOM1(3),PPOM1(4),
13809 & PPOMTO,PPOM(1),PPOM(2),PPOM(3),PPOM(4))
13810
13811* store 4-momentum of elastically scattered particle (in single diff.
13812* events)
13813 IF (KP.EQ.0) THEN
13814 DO 7 K=1,4
13815 PSC(K) = PPF(K)
13816 7 CONTINUE
13817 ELSEIF (KT.EQ.0) THEN
13818 DO 8 K=1,4
13819 PSC(K) = PTF(K)
13820 8 CONTINUE
13821 ENDIF
13822
13823* check consistency of kinematical treatment so far
13824 IF (LEMCCK) THEN
13825 CALL DT_EVTEMC(-PPF(1),-PPF(2),-PPF(3),-PPF(4),2,IDUM,IDUM)
13826 CALL DT_EVTEMC(-PTF(1),-PTF(2),-PTF(3),-PTF(4),2,IDUM,IDUM)
13827 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,60,IREJ1)
13828 IF (IREJ1.NE.0) GOTO 9999
13829 ENDIF
13830 DO 9 K=1,4
13831 DEV1(K) = ABS(PP(K)-PPF(K)-PPOM(K))
13832 DEV2(K) = ABS(PT(K)-PTF(K)+PPOM(K))
13833 9 CONTINUE
13834 IF ((DEV1(1).GT.TINY5).OR.(DEV1(2).GT.TINY5).OR.
13835 & (DEV1(3).GT.TINY5).OR.(DEV1(4).GT.TINY5).OR.
13836 & (DEV2(1).GT.TINY5).OR.(DEV2(2).GT.TINY5).OR.
13837 & (DEV2(3).GT.TINY5).OR.(DEV2(4).GT.TINY5)) THEN
13838 WRITE(LOUT,1003) DEV1,DEV2
13839 1003 FORMAT(1X,'DIFEVT: inconsitent kinematical treatment! ',
13840 & 2(/,8X,4E12.3))
13841 GOTO 9999
13842 ENDIF
13843
13844* kinematical treatment for low-mass diffraction
13845 CALL DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ1)
13846 IF (IREJ1.NE.0) GOTO 9999
13847
13848* dump diffractive chains into DTEVT1
13849 CALL DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13850 IF (IREJ1.NE.0) GOTO 9999
13851
13852 RETURN
13853
13854 9999 CONTINUE
13855 IRDIFF(1) = IRDIFF(1)+1
13856 IREJ = 1
13857 RETURN
13858 END
13859
13860*$ CREATE DT_XMHMD.FOR
13861*COPY DT_XMHMD
13862*
13863*===xmhmd==============================================================*
13864*
13865 DOUBLE PRECISION FUNCTION DT_XMHMD(ECM,IB,MODE)
13866
13867************************************************************************
13868* Diffractive mass in high mass single/double diffractive events. *
13869* This version dated 11.02.95 is written by S. Roesler *
13870************************************************************************
13871
13872 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13873 SAVE
13874 PARAMETER ( LINP = 10 ,
13875 & LOUT = 6 ,
13876 & LDAT = 9 )
13877 PARAMETER (OHALF=0.5D0,ONE=1.0D0,ZERO=0.0D0)
13878
13879* kinematics of diffractive interactions (DTUNUC 1.x)
13880 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13881 & PPF(4),PTF(4),
13882 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13883 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13884
13885C DATA XCOLOW /0.05D0/
13886 DATA XCOLOW /0.15D0/
13887
13888 DT_XMHMD = ZERO
13889 XH = XPH(2)
13890 IF (MODE.EQ.2) XH = XTH(2)
13891
13892* minimum Pomeron-x for high-mass diffraction
13893* (adjusted to get a smooth transition between HM and LM component)
13894 R = DT_RNDM(XH)
13895 XDIMIN = (3.0D0+400.0D0*R**2)/(XH*ECM**2)
13896 IF (ECM.LE.300.0D0) THEN
13897 RR = (1.0D0-EXP(-((ECM/140.0D0)**4)))
13898 XDIMIN = (3.0D0+400.0D0*(R**2)*RR)/(XH*ECM**2)
13899 ENDIF
13900* maximum Pomeron-x for high-mass diffraction
13901* (coherence condition, adjusted to fit to experimental data)
13902 IF (IB.NE.0) THEN
13903* baryon-diffraction
13904 XDIMAX = XCOLOW*(1.0D0+EXP(-((ECM/420.0D0)**2)))
13905 ELSE
13906* meson-diffraction
13907 XDIMAX = XCOLOW*(1.0D0+4.0D0*EXP(-((ECM/420.0D0)**2)))
13908 ENDIF
13909* check boundaries
13910 IF (XDIMIN.GE.XDIMAX) THEN
13911 XDIMIN = OHALF*XDIMAX
13912 ENDIF
13913
13914 KLOOP = 0
13915 1 CONTINUE
13916 KLOOP = KLOOP+1
13917 IF (KLOOP.GT.20) RETURN
13918* sample Pomeron-x from 1/x-distribution (critical Pomeron)
13919 XDIFF = DT_SAMPEX(XDIMIN,XDIMAX)
13920* corr. diffr. mass
13921 DT_XMHMD = ECM*SQRT(XDIFF)
13922 IF (DT_XMHMD.LT.2.5D0) GOTO 1
13923
13924 RETURN
13925 END
13926
13927*$ CREATE DT_XMLMD.FOR
13928*COPY DT_XMLMD
13929*
13930*===xmlmd==============================================================*
13931*
13932 DOUBLE PRECISION FUNCTION DT_XMLMD(ECM)
13933
13934************************************************************************
13935* Diffractive mass in high mass single/double diffractive events. *
13936* This version dated 11.02.95 is written by S. Roesler *
13937************************************************************************
13938
13939 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13940 SAVE
13941 PARAMETER ( LINP = 10 ,
13942 & LOUT = 6 ,
13943 & LDAT = 9 )
13944
13945* minimum Pomeron-x for low-mass diffraction
13946C AMO = 1.5D0
13947 AMO = 2.0D0
13948* maximum Pomeron-x for low-mass diffraction
13949* (adjusted to get a smooth transition between HM and LM component)
13950 R = DT_RNDM(AMO)
13951 SAM = 1.0D0
13952 IF (ECM.LE.300.0D0) SAM = 1.0D0-EXP(-((ECM/200.0D0)**4))
13953 R = DT_RNDM(AMO)*SAM
13954 AMAX= (1.0D0-SAM)*SQRT(0.1D0*ECM**2)+SAM*SQRT(400.0D0)
13955 AMU = R*SQRT(100.0D0)+(1.0D0-R)*AMAX
13956
13957* selection of diffractive mass
13958* (adjusted to get a smooth transition between HM and LM component)
13959 R = DT_RNDM(AMU)
13960 IF (ECM.LE.50.0D0) THEN
13961 DT_XMLMD = AMO*(AMU/AMO)**R
13962 ELSE
13963 A = 0.7D0
13964 IF (ECM.LE.300.0D0) A = 0.7D0*(1.0D0-EXP(-((ECM/100.0D0)**2)))
13965 DT_XMLMD = 1.0D0/((R/(AMU**A)+(1.0D0-R)/(AMO**A))**(1.0D0/A))
13966 ENDIF
13967
13968 RETURN
13969 END
13970
13971*$ CREATE DT_TDIFF.FOR
13972*COPY DT_TDIFF
13973*
13974*===tdiff==============================================================*
13975*
13976 DOUBLE PRECISION FUNCTION DT_TDIFF(ECM,TMIN,XM1I,K1,XM2I,K2,IREJ)
13977
13978************************************************************************
13979* t-selection for single/double diffractive interactions. *
13980* ECM cm. energy *
13981* TMIN minimum momentum transfer to produce diff. masses *
13982* XM1/XM2 diffractively produced masses *
13983* (for single diffraction XM2 is obsolete) *
13984* K1/K2= 0 not excited *
13985* = 1 low-mass excitation *
13986* = 2 high-mass excitation *
13987* This version dated 11.02.95 is written by S. Roesler *
13988************************************************************************
13989
13990 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13991 SAVE
13992 PARAMETER ( LINP = 10 ,
13993 & LOUT = 6 ,
13994 & LDAT = 9 )
13995 PARAMETER (ZERO=0.0D0)
13996
13997 PARAMETER ( BTP0 = 3.7D0,
13998 & ALPHAP = 0.24D0 )
13999
14000 IREJ = 0
14001 NCLOOP = 0
14002 DT_TDIFF = ZERO
14003
14004 IF (K1.GT.0) THEN
14005 XM1 = XM1I
14006 XM2 = XM2I
14007 ELSE
14008 XM1 = XM2I
14009 ENDIF
14010 XDI = (XM1/ECM)**2
14011 IF ((K1.EQ.0).OR.(K2.EQ.0)) THEN
14012* slope for single diffraction
14013 SLOPE = BTP0-2.0D0*ALPHAP*LOG(XDI)
14014 ELSE
14015* slope for double diffraction
14016 SLOPE = -2.0D0*ALPHAP*LOG(XDI*XM2**2)
14017 ENDIF
14018
14019 1 CONTINUE
14020 NCLOOP = NCLOOP+1
14021 IF (MOD(NCLOOP,1000).EQ.0) GOTO 9999
14022 Y = DT_RNDM(XDI)
14023 T = -LOG(1.0D0-Y)/SLOPE
14024 IF (ABS(T).LE.ABS(TMIN)) GOTO 1
14025 DT_TDIFF = -ABS(T)
14026
14027 RETURN
14028
14029 9999 CONTINUE
14030 WRITE(LOUT,1000) ECM,TMIN,XM1I,XM2I,K1,K2
14031 1000 FORMAT(1X,'DT_TDIFF: t-selection rejected!',/,
14032 & 1X,'ECM = ',E12.3,' TMIN = ',E12.2,/,1X,'XM1I = ',
14033 & E12.3,' XM2I = ',E12.3,' K1 = ',I2,' K2 = ',I2)
14034 IREJ = 1
14035 RETURN
14036 END
14037
14038*$ CREATE DT_XVALHM.FOR
14039*COPY DT_XVALHM
14040*
14041*===xvalhm=============================================================*
14042*
14043 SUBROUTINE DT_XVALHM(KP,KT)
14044
14045************************************************************************
14046* Sampling of parton x-values in high-mass diffractive interactions. *
14047* This version dated 12.02.95 is written by S. Roesler *
14048************************************************************************
14049
14050 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14051 SAVE
14052 PARAMETER ( LINP = 10 ,
14053 & LOUT = 6 ,
14054 & LDAT = 9 )
14055 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0,TINY2=1.0D-2)
14056
14057* kinematics of diffractive interactions (DTUNUC 1.x)
14058 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14059 & PPF(4),PTF(4),
14060 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14061 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14062* various options for treatment of partons (DTUNUC 1.x)
14063* (chain recombination, Cronin,..)
14064 LOGICAL LCO2CR,LINTPT
14065 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
14066 & LCO2CR,LINTPT
14067
14068 DATA UNON,XVQTHR /2.0D0,0.8D0/
14069
14070 IF (KP.EQ.2) THEN
14071* x-fractions of projectile valence partons
14072 1 CONTINUE
14073 XPH(1) = DT_DBETAR(OHALF,UNON)
14074 IF (XPH(1).GE.XVQTHR) GOTO 1
14075 XPH(2) = ONE-XPH(1)
14076* x-fractions of Pomeron q-aq-pair
14077 XPOLO = TINY2
14078 XPOHI = ONE-TINY2
14079 XPPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14080 XPPO(2) = ONE-XPPO(1)
14081* flavors of Pomeron q-aq-pair
14082 IFLAV = INT(ONE+DT_RNDM(UNON)*(2.0D0+SEASQ))
14083 IFPPO(1) = IFLAV
14084 IFPPO(2) = -IFLAV
14085 IF (DT_RNDM(UNON).GT.OHALF) THEN
14086 IFPPO(1) = -IFLAV
14087 IFPPO(2) = IFLAV
14088 ENDIF
14089 ENDIF
14090
14091 IF (KT.EQ.2) THEN
14092* x-fractions of projectile target partons
14093 2 CONTINUE
14094 XTH(1) = DT_DBETAR(OHALF,UNON)
14095 IF (XTH(1).GE.XVQTHR) GOTO 2
14096 XTH(2) = ONE-XTH(1)
14097* x-fractions of Pomeron q-aq-pair
14098 XPOLO = TINY2
14099 XPOHI = ONE-TINY2
14100 XTPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14101 XTPO(2) = ONE-XTPO(1)
14102* flavors of Pomeron q-aq-pair
14103 IFLAV = INT(ONE+DT_RNDM(XPOLO)*(2.0D0+SEASQ))
14104 IFTPO(1) = IFLAV
14105 IFTPO(2) = -IFLAV
14106 IF (DT_RNDM(XPOLO).GT.OHALF) THEN
14107 IFTPO(1) = -IFLAV
14108 IFTPO(2) = IFLAV
14109 ENDIF
14110 ENDIF
14111
14112 RETURN
14113 END
14114
14115*$ CREATE DT_LM2RES.FOR
14116*COPY DT_LM2RES
14117*
14118*===lm2res=============================================================*
14119*
14120 SUBROUTINE DT_LM2RES(IF1,IF2,XM,IDR,IDXR,IREJ)
14121
14122************************************************************************
14123* Check low-mass diffractive excitation for resonance mass. *
14124* (input) IF1/2 PDG-indizes of valence partons *
14125* (in/out) XM diffractive mass requested/corrected *
14126* (output) IDR/IDXR id./BAMJET-index of resonance *
14127* This version dated 12.02.95 is written by S. Roesler *
14128************************************************************************
14129
14130 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14131 SAVE
14132 PARAMETER ( LINP = 10 ,
14133 & LOUT = 6 ,
14134 & LDAT = 9 )
14135 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14136
14137* kinematics of diffractive interactions (DTUNUC 1.x)
14138 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14139 & PPF(4),PTF(4),
14140 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14141 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14142
14143 IREJ = 0
14144 IF1B = 0
14145 IF2B = 0
14146 XMI = XM
14147
14148* BAMJET indices of partons
14149 IF1A = IDT_IPDG2B(IF1,1,2)
14150 IF (ABS(IF1).GE.1000) IF1B = IDT_IPDG2B(IF1,2,2)
14151 IF2A = IDT_IPDG2B(IF2,1,2)
14152 IF (ABS(IF2).GE.1000) IF2B = IDT_IPDG2B(IF2,2,2)
14153
14154* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq)
14155 IDCH = 2
14156 IF ((IF1B.EQ.0).AND.(IF2B.EQ.0)) IDCH = 1
14157
14158* check for resonance mass
14159 CALL DT_CH2RES(IF1A,IF1B,IF2A,IF2B,IDR,IDXR,XMI,XMN,IDCH,IREJ1)
14160 IF (IREJ1.NE.0) GOTO 9999
14161
14162 XM = XMN
14163 RETURN
14164
14165 9999 CONTINUE
14166 IREJ = 1
14167 RETURN
14168 END
14169
14170*$ CREATE DT_LMKINE.FOR
14171*COPY DT_LMKINE
14172*
14173*===lmkine=============================================================*
14174*
14175 SUBROUTINE DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ)
14176
14177************************************************************************
14178* Kinematical treatment of low-mass excitations. *
14179* This version dated 12.02.95 is written by S. Roesler *
14180************************************************************************
14181
14182 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14183 SAVE
14184 PARAMETER ( LINP = 10 ,
14185 & LOUT = 6 ,
14186 & LDAT = 9 )
14187 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14188
14189* flags for input different options
14190 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14191 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14192 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14193* kinematics of diffractive interactions (DTUNUC 1.x)
14194 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14195 & PPF(4),PTF(4),
14196 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14197 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14198
14199 DIMENSION P1(4),P2(4)
14200
14201 IREJ = 0
14202
14203 IF (KP.EQ.1) THEN
14204 PABS = SQRT(PPF(1)**2+PPF(2)**2+PPF(3)**2)
14205 POE = PPF(4)/PABS
14206 FAC1 = OHALF*(POE+ONE)
14207 FAC2 = -OHALF*(POE-ONE)
14208 DO 1 K=1,3
14209 PPLM1(K) = FAC1*PPF(K)
14210 PPLM2(K) = FAC2*PPF(K)
14211 1 CONTINUE
14212 PPLM1(4) = FAC1*PABS
14213 PPLM2(4) = -FAC2*PABS
14214 IF (IMSHL.EQ.1) THEN
14215 XM1 = PYMASS(IFP1)
14216 XM2 = PYMASS(IFP2)
14217 CALL DT_MASHEL(PPLM1,PPLM2,XM1,XM2,P1,P2,IREJ1)
14218 IF (IREJ1.NE.0) GOTO 9999
14219 DO 2 K=1,4
14220 PPLM1(K) = P1(K)
14221 PPLM2(K) = P2(K)
14222 2 CONTINUE
14223 ENDIF
14224 ENDIF
14225
14226 IF (KT.EQ.1) THEN
14227 PABS = SQRT(PTF(1)**2+PTF(2)**2+PTF(3)**2)
14228 POE = PTF(4)/PABS
14229 FAC1 = OHALF*(POE+ONE)
14230 FAC2 = -OHALF*(POE-ONE)
14231 DO 3 K=1,3
14232 PTLM2(K) = FAC1*PTF(K)
14233 PTLM1(K) = FAC2*PTF(K)
14234 3 CONTINUE
14235 PTLM2(4) = FAC1*PABS
14236 PTLM1(4) = -FAC2*PABS
14237 IF (IMSHL.EQ.1) THEN
14238 XM1 = PYMASS(IFT1)
14239 XM2 = PYMASS(IFT2)
14240 CALL DT_MASHEL(PTLM1,PTLM2,XM1,XM2,P1,P2,IREJ1)
14241 IF (IREJ1.NE.0) GOTO 9999
14242 DO 4 K=1,4
14243 PTLM1(K) = P1(K)
14244 PTLM2(K) = P2(K)
14245 4 CONTINUE
14246 ENDIF
14247 ENDIF
14248
14249 RETURN
14250
14251 9999 CONTINUE
14252 WRITE(LOUT,'(A)') 'LMKINE: kinematical treatment rejected'
14253 IREJ = 1
14254 RETURN
14255 END
14256
14257*$ CREATE DT_DIFINI.FOR
14258*COPY DT_DIFINI
14259*
14260*===difini=============================================================*
14261*
14262 SUBROUTINE DT_DIFINI
14263
14264************************************************************************
14265* Initialization of common /DTDIKI/ *
14266* This version dated 12.02.95 is written by S. Roesler *
14267************************************************************************
14268
14269 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14270 SAVE
14271 PARAMETER ( LINP = 10 ,
14272 & LOUT = 6 ,
14273 & LDAT = 9 )
14274 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14275
14276* kinematics of diffractive interactions (DTUNUC 1.x)
14277 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14278 & PPF(4),PTF(4),
14279 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14280 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14281
14282 DO 1 K=1,4
14283 PPOM(K) = ZERO
14284 PSC(K) = ZERO
14285 PPF(K) = ZERO
14286 PTF(K) = ZERO
14287 PPLM1(K) = ZERO
14288 PPLM2(K) = ZERO
14289 PTLM1(K) = ZERO
14290 PTLM2(K) = ZERO
14291 1 CONTINUE
14292 DO 2 K=1,2
14293 XPH(K) = ZERO
14294 XPPO(K) = ZERO
14295 XTH(K) = ZERO
14296 XTPO(K) = ZERO
14297 IFPPO(K) = 0
14298 IFTPO(K) = 0
14299 2 CONTINUE
14300 IDPR = 0
14301 IDXPR = 0
14302 IDTR = 0
14303 IDXTR = 0
14304
14305 RETURN
14306 END
14307
14308*$ CREATE DT_DIFPUT.FOR
14309*COPY DT_DIFPUT
14310*
14311*===difput=============================================================*
14312*
14313 SUBROUTINE DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,
14314 & IREJ)
14315
14316************************************************************************
14317* Dump diffractive chains into DTEVT1 *
14318* This version dated 12.02.95 is written by S. Roesler *
14319************************************************************************
14320
14321 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14322 SAVE
14323 PARAMETER ( LINP = 10 ,
14324 & LOUT = 6 ,
14325 & LDAT = 9 )
14326 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14327
14328 LOGICAL LCHK
14329
14330* kinematics of diffractive interactions (DTUNUC 1.x)
14331 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14332 & PPF(4),PTF(4),
14333 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14334 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14335* event history
14336 PARAMETER (NMXHKK=200000)
14337 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14338 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14339 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14340* extended event history
14341 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14342 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14343 & IHIST(2,NMXHKK)
14344* rejection counter
14345 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
14346 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
14347 & IREXCI(3),IRDIFF(2),IRINC
14348
14349 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PCH(4),PP(4),PT(4),
14350 & P1(4),P2(4),P3(4),P4(4)
14351
14352 IREJ = 0
14353
14354 IF (KP.EQ.1) THEN
14355 DO 1 K=1,4
14356 PCH(K) = PPLM1(K)+PPLM2(K)
14357 1 CONTINUE
14358 ID1 = IFP1
14359 ID2 = IFP2
14360 IF (DT_RNDM(PT).GT.OHALF) THEN
14361 ID1 = IFP2
14362 ID2 = IFP1
14363 ENDIF
14364 CALL DT_EVTPUT(21,ID1,MOP,0,PPLM1(1),PPLM1(2),PPLM1(3),
14365 & PPLM1(4),0,0,0)
14366 CALL DT_EVTPUT(21,ID2,MOP,0,PPLM2(1),PPLM2(2),PPLM2(3),
14367 & PPLM2(4),0,0,0)
14368 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14369 & IDPR,IDXPR,8)
14370 ELSEIF (KP.EQ.2) THEN
14371 DO 2 K=1,4
14372 PP1(K) = XPH(1)*PP(K)
14373 PP2(K) = XPH(2)*PP(K)
14374 PT1(K) = -XPPO(1)*PPOM(K)
14375 PT2(K) = -XPPO(2)*PPOM(K)
14376 2 CONTINUE
14377 CALL DT_CHKCSY(IFP1,IFPPO(1),LCHK)
14378 XM1 = ZERO
14379 XM2 = ZERO
14380 IF (LCHK) THEN
14381 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14382 IF (IREJ1.NE.0) GOTO 9999
14383 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14384 IF (IREJ1.NE.0) GOTO 9999
14385 DO 3 K=1,4
14386 PP1(K) = P1(K)
14387 PT1(K) = P2(K)
14388 PP2(K) = P3(K)
14389 PT2(K) = P4(K)
14390 3 CONTINUE
14391 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14392 & 0,0,8)
14393 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14394 & PT1(4),0,0,8)
14395 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14396 & 0,0,8)
14397 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14398 & PT2(4),0,0,8)
14399 ELSE
14400 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14401 IF (IREJ1.NE.0) GOTO 9999
14402 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14403 IF (IREJ1.NE.0) GOTO 9999
14404 DO 4 K=1,4
14405 PP1(K) = P1(K)
14406 PT2(K) = P2(K)
14407 PP2(K) = P3(K)
14408 PT1(K) = P4(K)
14409 4 CONTINUE
14410 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14411 & 0,0,8)
14412 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14413 & PT2(4),0,0,8)
14414 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14415 & 0,0,8)
14416 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14417 & PT1(4),0,0,8)
14418 ENDIF
14419 NCSY = NCSY+1
14420 ELSE
14421 CALL DT_EVTPUT(1,IDHKK(MOP),MOP,0,PSC(1),PSC(2),PSC(3),PSC(4),
14422 & 0,0,0)
14423 ENDIF
14424
14425 IF (KT.EQ.1) THEN
14426 DO 5 K=1,4
14427 PCH(K) = PTLM1(K)+PTLM2(K)
14428 5 CONTINUE
14429 ID1 = IFT1
14430 ID2 = IFT2
14431 IF (DT_RNDM(PT).GT.OHALF) THEN
14432 ID1 = IFT2
14433 ID2 = IFT1
14434 ENDIF
14435 CALL DT_EVTPUT(22,ID1,MOT,0,PTLM1(1),PTLM1(2),PTLM1(3),
14436 & PTLM1(4),0,0,0)
14437 CALL DT_EVTPUT(22,ID2,MOT,0,PTLM2(1),PTLM2(2),PTLM2(3),
14438 & PTLM2(4),0,0,0)
14439 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14440 & IDTR,IDXTR,8)
14441 ELSEIF (KT.EQ.2) THEN
14442 DO 6 K=1,4
14443 PP1(K) = XTPO(1)*PPOM(K)
14444 PP2(K) = XTPO(2)*PPOM(K)
14445 PT1(K) = XTH(2)*PT(K)
14446 PT2(K) = XTH(1)*PT(K)
14447 6 CONTINUE
14448 CALL DT_CHKCSY(IFTPO(1),IFT1,LCHK)
14449 XM1 = ZERO
14450 XM2 = ZERO
14451 IF (LCHK) THEN
14452 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14453 IF (IREJ1.NE.0) GOTO 9999
14454 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14455 IF (IREJ1.NE.0) GOTO 9999
14456 DO 7 K=1,4
14457 PP1(K) = P1(K)
14458 PT1(K) = P2(K)
14459 PP2(K) = P3(K)
14460 PT2(K) = P4(K)
14461 7 CONTINUE
14462 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14463 & PP1(4),0,0,8)
14464 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14465 & 0,0,8)
14466 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14467 & PP2(4),0,0,8)
14468 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14469 & 0,0,8)
14470 ELSE
14471 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14472 IF (IREJ1.NE.0) GOTO 9999
14473 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14474 IF (IREJ1.NE.0) GOTO 9999
14475 DO 8 K=1,4
14476 PP1(K) = P1(K)
14477 PT2(K) = P2(K)
14478 PP2(K) = P3(K)
14479 PT1(K) = P4(K)
14480 8 CONTINUE
14481 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14482 & PP1(4),0,0,8)
14483 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14484 & 0,0,8)
14485 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14486 & PP2(4),0,0,8)
14487 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14488 & 0,0,8)
14489 ENDIF
14490 NCSY = NCSY+1
14491 ELSE
14492 CALL DT_EVTPUT(1,IDHKK(MOT),MOT,0,PSC(1),PSC(2),PSC(3),PSC(4),
14493 & 0,0,0)
14494 ENDIF
14495
14496 RETURN
14497
14498 9999 CONTINUE
14499 IRDIFF(2) = IRDIFF(2)+1
14500 IREJ = 1
14501 RETURN
14502 END
14503
14504*$ CREATE DT_EVTFRG.FOR
14505*COPY DT_EVTFRG
14506*
14507*===evtfrg=============================================================*
14508*
14509 SUBROUTINE DT_EVTFRG(KMODE,NFRG,NPYMEM,IREJ)
14510
14511************************************************************************
14512* Hadronization of chains in DTEVT1. *
14513* *
14514* Input: *
14515* KMODE = 1 hadronization of PHOJET-chains (id=77xxx) *
14516* = 2 hadronization of DTUNUC-chains (id=88xxx) *
14517* NFRG if KMODE = 1 : upper index of PHOJET-scatterings to be *
14518* hadronized with one PYEXEC call *
14519* if KMODE = 2 : max. number of DTUNUC-chains to be hadronized *
14520* with one PYEXEC call *
14521* Output: *
14522* NPYMEM number of entries in JETSET-common after hadronization *
14523* IREJ rejection flag *
14524* *
14525* This version dated 17.09.00 is written by S. Roesler *
14526************************************************************************
14527
14528 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14529 SAVE
14530 PARAMETER ( LINP = 10 ,
14531 & LOUT = 6 ,
14532 & LDAT = 9 )
14533 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1)
14534 PARAMETER (ONE=1.0D0,ZERO=0.0D0)
14535
14536 LOGICAL LACCEP
14537
14538 PARAMETER (MXJOIN=200)
14539
14540* event history
14541 PARAMETER (NMXHKK=200000)
14542 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14543 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14544 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14545* extended event history
14546 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14547 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14548 & IHIST(2,NMXHKK)
14549* flags for input different options
14550 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14551 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14552 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14553* statistics
14554 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
14555 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
14556 & ICEVTG(8,0:30)
14557* flags for diffractive interactions (DTUNUC 1.x)
14558 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
14559* nucleon-nucleon event-generator
14560 CHARACTER*8 CMODEL
14561 LOGICAL LPHOIN
14562 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
14563* phojet
14564C model switches and parameters
14565 CHARACTER*8 MDLNA
14566 INTEGER ISWMDL,IPAMDL
14567 DOUBLE PRECISION PARMDL
14568 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
14569* jetset
14570 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
1ddc441c 14571 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 14572 PARAMETER (MAXLND=4000)
14573 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
14574 INTEGER PYK
14575 DIMENSION IJOIN(MXJOIN),ISJOIN(MXJOIN),IHISMO(8000),IFLG(4000)
1ddc441c 14576 INTEGER PYCOMP
9aaba0d6 14577 MODE = KMODE
14578 ISTSTG = 7
14579 IF (MODE.NE.1) ISTSTG = 8
14580 IREJ = 0
14581
14582 IP = 0
14583 ISH = 0
14584 INIEMC = 1
14585 NEND = NHKK
14586 NACCEP = 0
14587 IFRG = 0
14588 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
14589 DO 10 I=NPOINT(3),NEND
14590* sr 14.02.00: seems to be not necessary anymore, commented
14591C LACCEP = ((NOBAM(I).EQ.0).AND.(MODE.EQ.1)).OR.
14592C & ((NOBAM(I).NE.0).AND.(MODE.EQ.2))
14593 LACCEP = .TRUE.
14594* pick up chains from dtevt1
14595 IDCHK = IDHKK(I)/10000
14596 IF ((IDCHK.EQ.ISTSTG).AND.LACCEP) THEN
14597 IF (IDCHK.EQ.7) THEN
14598 IPJE = IDHKK(I)-IDCHK*10000
14599 IF (IPJE.NE.IFRG) THEN
14600 IFRG = IPJE
14601 IF (IFRG.GT.NFRG) GOTO 16
14602 ENDIF
14603 ELSE
14604 IPJE = 1
14605 IFRG = IFRG+1
14606 IF (IFRG.GT.NFRG) THEN
14607 NFRG = -1
14608 GOTO 16
14609 ENDIF
14610 ENDIF
14611* statistics counter
14612c IF (IDCH(I).LE.8)
14613c & ICCHAI(2,IDCH(I)) = ICCHAI(2,IDCH(I))+1
14614c IF (IDRES(I).NE.0) ICRES(IDCH(I)) = ICRES(IDCH(I))+1
14615* special treatment for small chains already corrected to hadrons
14616 IF (IDRES(I).NE.0) THEN
14617 IF (IDRES(I).EQ.11) THEN
14618 ID = IDXRES(I)
14619 ELSE
14620 ID = IDT_IPDGHA(IDXRES(I))
14621 ENDIF
14622 IF (LEMCCK) THEN
14623 CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
14624 & PHKK(4,I),INIEMC,IDUM,IDUM)
14625 INIEMC = 2
14626 ENDIF
14627 IP = IP+1
14628 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 1: IP.GT.MSTU(4) !'
14629 P(IP,1) = PHKK(1,I)
14630 P(IP,2) = PHKK(2,I)
14631 P(IP,3) = PHKK(3,I)
14632 P(IP,4) = PHKK(4,I)
14633 P(IP,5) = PHKK(5,I)
14634 K(IP,1) = 1
14635 K(IP,2) = ID
14636 K(IP,3) = 0
14637 K(IP,4) = 0
14638 K(IP,5) = 0
14639 IHIST(2,I) = 10000*IPJE+IP
14640 IF (IHIST(1,I).LE.-100) THEN
14641 ISH = ISH+1
14642 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14643 ISJOIN(ISH) = I
14644 ENDIF
14645 N = IP
14646 IHISMO(IP) = I
14647 ELSE
14648 IJ = 0
14649 DO 11 KK=JMOHKK(1,I),JMOHKK(2,I)
14650 IF (LEMCCK) THEN
14651 CALL DT_EVTEMC(PHKK(1,KK),PHKK(2,KK),PHKK(3,KK),
14652 & PHKK(4,KK),INIEMC,IDUM,IDUM)
14653 CALL DT_EVTFLC(IDHKK(KK),1,INIEMC,IDUM,IDUM)
14654 INIEMC = 2
14655 ENDIF
14656 ID = IDHKK(KK)
14657 IF (ID.EQ.0) ID = 21
14658c PTOT = SQRT(PHKK(1,KK)**2+PHKK(2,KK)**2+PHKK(3,KK)**2)
14659c AM0 = SQRT(ABS((PHKK(4,KK)-PTOT)*(PHKK(4,KK)+PTOT)))
14660c AMRQ = PYMASS(ID)
14661c AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
14662c IF ((ABS(AMDIF2).GT.TINY3).AND.(PTOT.GT.ZERO).AND.
14663c & (ABS(IDIFF).EQ.0)) THEN
14664cC WRITE(LOUT,*)'here: ',NEVHKK,AM0,AMRQ
14665c DELTA = -AMDIF2/(2.0D0*(PHKK(4,KK)+PTOT))
14666c PHKK(4,KK) = PHKK(4,KK)+DELTA
14667c PTOT1 = PTOT-DELTA
14668c PHKK(1,KK) = PHKK(1,KK)*PTOT1/PTOT
14669c PHKK(2,KK) = PHKK(2,KK)*PTOT1/PTOT
14670c PHKK(3,KK) = PHKK(3,KK)*PTOT1/PTOT
14671c PHKK(5,KK) = AMRQ
14672c ENDIF
14673 IP = IP+1
14674 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 2: IP.GT.MSTU(4) !'
14675 P(IP,1) = PHKK(1,KK)
14676 P(IP,2) = PHKK(2,KK)
14677 P(IP,3) = PHKK(3,KK)
14678 P(IP,4) = PHKK(4,KK)
14679 P(IP,5) = PHKK(5,KK)
14680 K(IP,1) = 1
14681 K(IP,2) = ID
14682 K(IP,3) = 0
14683 K(IP,4) = 0
14684 K(IP,5) = 0
14685 IHIST(2,KK) = 10000*IPJE+IP
14686 IF (IHIST(1,KK).LE.-100) THEN
14687 ISH = ISH+1
14688 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14689 ISJOIN(ISH) = KK
14690 ENDIF
14691 IJ = IJ+1
14692 IF (IJ.GT.MXJOIN) STOP 'IJ > MXJOIN !'
14693 IJOIN(IJ) = IP
14694 IHISMO(IP) = I
14695 11 CONTINUE
14696 N = IP
14697* join the two-parton system
14698 CALL PYJOIN(IJ,IJOIN)
14699 ENDIF
14700 IDHKK(I) = 99999
14701 ENDIF
14702 10 CONTINUE
14703 16 CONTINUE
14704 N = IP
14705
14706 IF (IP.GT.0) THEN
14707
14708* final state parton shower
14709 DO 136 NPJE=1,IPJE
14710 IF ((MCGENE.EQ.2).AND.(ISH.GE.2)) THEN
14711 IF ((ISWMDL(8).EQ.1).OR.(ISWMDL(8).EQ.3)) THEN
14712 DO 130 K1=1,ISH
14713 IF (ISJOIN(K1).EQ.0) GOTO 130
14714 I = ISJOIN(K1)
14715 IF ((IPAMDL(102).EQ.1).AND.(IHIST(1,I).NE.-100))
14716 & GOTO 130
14717 IH1 = IHIST(2,I)/10000
14718 IF (IH1.NE.NPJE) GOTO 130
14719 IH1 = IHIST(2,I)-IH1*10000
14720 DO 135 K2=K1+1,ISH
14721 IF (ISJOIN(K2).EQ.0) GOTO 135
14722 II = ISJOIN(K2)
14723 IH2 = IHIST(2,II)/10000
14724 IF (IH2.NE.NPJE) GOTO 135
14725 IH2 = IHIST(2,II)-IH2*10000
14726 IF (IHIST(1,I).EQ.IHIST(1,II)) THEN
14727 PT1 = SQRT(PHKK(1,II)**2+PHKK(2,II)**2)
14728 PT2 = SQRT(PHKK(1, I)**2+PHKK(2, I)**2)
14729 RQLUN = MIN(PT1,PT2)
14730 CALL PYSHOW(IH1,IH2,RQLUN)
14731
14732 ISJOIN(K1) = 0
14733 ISJOIN(K2) = 0
14734 GOTO 130
14735 ENDIF
14736 135 CONTINUE
14737 130 CONTINUE
14738 ENDIF
14739 ENDIF
14740 136 CONTINUE
14741
14742 CALL DT_INITJS(MODE)
14743* hadronization
14744
14745 CALL PYEXEC
14746
14747 IF (MSTU(24).NE.0) THEN
14748 WRITE(LOUT,*) ' JETSET-reject at event',
14749 & NEVHKK,MSTU(24),KMODE
14750C CALL DT_EVTOUT(4)
14751
14752C CALL PYLIST(2)
14753
14754 GOTO 9999
14755 ENDIF
14756
14757* number of entries in LUJETS
14758
14759 NLINES = PYK(0,1)
14760
14761 NPYMEM = NLINES
14762
14763 DO 12 I=1,NLINES
14764 IFLG(I) = 0
14765 12 CONTINUE
14766
14767 DO 13 II=1,NLINES
14768
14769 IF ((PYK(II,7).EQ.1).AND.(IFLG(II).NE.1)) THEN
14770
14771* pick up mother resonance if possible and put it together with
14772* their decay-products into the common
14773 IDXMOR = K(II,3)
14774 IF ((IDXMOR.GE.1).AND.(IDXMOR.LE.MAXLND)) THEN
14775 KFMOR = K(IDXMOR,2)
14776 ISMOR = K(IDXMOR,1)
14777 ELSE
14778 KFMOR = 91
14779 ISMOR = 1
14780 ENDIF
14781 IF ((KFMOR.NE.91).AND.(KFMOR.NE.92).AND.
14782 & (KFMOR.NE.94).AND.(ISMOR.EQ.11)) THEN
14783 ID = K(IDXMOR,2)
14784 MO = IHISMO(PYK(IDXMOR,15))
14785 PX = PYP(IDXMOR,1)
14786 PY = PYP(IDXMOR,2)
14787 PZ = PYP(IDXMOR,3)
14788 PE = PYP(IDXMOR,4)
14789 CALL DT_EVTPUT(2,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14790 IFLG(IDXMOR) = 1
14791 MO = NHKK
14792 DO 15 JDAUG=K(IDXMOR,4),K(IDXMOR,5)
14793 IF (PYK(JDAUG,7).EQ.1) THEN
14794 ID = PYK(JDAUG,8)
14795 PX = PYP(JDAUG,1)
14796 PY = PYP(JDAUG,2)
14797 PZ = PYP(JDAUG,3)
14798 PE = PYP(JDAUG,4)
14799 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14800 IF (LEMCCK) THEN
14801 PX = -PYP(JDAUG,1)
14802 PY = -PYP(JDAUG,2)
14803 PZ = -PYP(JDAUG,3)
14804 PE = -PYP(JDAUG,4)
14805 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14806 ENDIF
14807 IFLG(JDAUG) = 1
14808 ENDIF
14809 15 CONTINUE
14810 ELSE
14811* there was no mother resonance
14812 MO = IHISMO(PYK(II,15))
14813 ID = PYK(II,8)
14814 PX = PYP(II,1)
14815 PY = PYP(II,2)
14816 PZ = PYP(II,3)
14817 PE = PYP(II,4)
14818 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14819 IF (LEMCCK) THEN
14820 PX = -PYP(II,1)
14821 PY = -PYP(II,2)
14822 PZ = -PYP(II,3)
14823 PE = -PYP(II,4)
14824 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14825 ENDIF
14826 ENDIF
14827 ENDIF
14828 13 CONTINUE
14829 IF (LEMCCK) THEN
14830 CHKLEV = TINY1
14831 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,6,IREJ1)
14832C IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
14833 ENDIF
14834
14835* global energy-momentum & flavor conservation check
14836**sr 16.5. this check is skipped in case of phojet-treatment
14837 IF (MCGENE.EQ.1)
14838 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,12,IREJ3)
14839
14840* update statistics-counter for diffraction
14841c IF (IFLAGD.NE.0) THEN
14842c ICDIFF(1) = ICDIFF(1)+1
14843c IF (IFLAGD.EQ. 1) ICDIFF(2) = ICDIFF(2)+1
14844c IF (IFLAGD.EQ. 2) ICDIFF(3) = ICDIFF(3)+1
14845c IF (IFLAGD.EQ.-1) ICDIFF(4) = ICDIFF(4)+1
14846c IF (IFLAGD.EQ.-2) ICDIFF(5) = ICDIFF(5)+1
14847c ENDIF
14848
14849 ENDIF
14850
14851 RETURN
14852
14853 9999 CONTINUE
14854 IREJ = 1
14855 RETURN
14856 END
14857
14858*$ CREATE DT_DECAYS.FOR
14859*COPY DT_DECAYS
14860*
14861*===decay==============================================================*
14862*
14863 SUBROUTINE DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
14864
14865************************************************************************
14866* Resonance-decay. *
14867* This subroutine replaces DDECAY/DECHKK. *
14868* PIN(4) 4-momentum of resonance (input) *
14869* IDXIN BAMJET-index of resonance (input) *
14870* POUT(20,4) 4-momenta of decay-products (output) *
14871* IDXOUT(20) BAMJET-indices of decay-products (output) *
14872* NSEC number of secondaries (output) *
14873* Adopted from the original version DECHKK. *
14874* This version dated 09.01.95 is written by S. Roesler *
14875************************************************************************
14876
14877 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14878 SAVE
14879 PARAMETER ( LINP = 10 ,
14880 & LOUT = 6 ,
14881 & LDAT = 9 )
14882 PARAMETER (TINY17=1.0D-17)
14883
14884* HADRIN: decay channel information
14885 PARAMETER (IDMAX9=602)
14886 CHARACTER*8 ZKNAME
14887 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
14888* particle properties (BAMJET index convention)
14889 CHARACTER*8 ANAME
14890 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
14891 & IICH(210),IIBAR(210),K1(210),K2(210)
14892* flags for input different options
14893 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14894 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14895 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14896
14897 DIMENSION PIN(4),PI(20,4),POUT(20,4),IDXOUT(20),
14898 & EF(3),PF(3),PFF(3),IDXSTK(20),IDX(3),
14899 & CODF(3),COFF(3),SIFF(3),DCOS(3),DCOSF(3)
14900
14901* ISTAB = 1 strong and weak decays
14902* = 2 strong decays only
14903* = 3 strong decays, weak decays for charmed particles and tau
14904* leptons only
14905 DATA ISTAB /2/
14906
14907 IREJ = 0
14908 NSEC = 0
14909* put initial resonance to stack
14910 NSTK = 1
14911 IDXSTK(NSTK) = IDXIN
14912 DO 5 I=1,4
14913 PI(NSTK,I) = PIN(I)
14914 5 CONTINUE
14915
14916* store initial configuration for energy-momentum cons. check
14917 IF (LEMCCK) CALL DT_EVTEMC(PI(NSTK,1),PI(NSTK,2),PI(NSTK,3),
14918 & PI(NSTK,4),1,IDUM,IDUM)
14919
14920 100 CONTINUE
14921* get particle from stack
14922 IDXI = IDXSTK(NSTK)
14923* skip stable particles
14924 IF (ISTAB.EQ.1) THEN
14925 IF ((IDXI.EQ.135).OR. (IDXI.EQ.136)) GOTO 10
14926 IF ((IDXI.GE. 1).AND.(IDXI.LE. 7)) GOTO 10
14927 ELSEIF (ISTAB.EQ.2) THEN
14928 IF ((IDXI.GE. 1).AND.(IDXI.LE. 30)) GOTO 10
14929 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14930 IF ((IDXI.GE.115).AND.(IDXI.LE.122)) GOTO 10
14931 IF ((IDXI.GE.131).AND.(IDXI.LE.136)) GOTO 10
14932 IF ( IDXI.EQ.109) GOTO 10
14933 IF ((IDXI.GE.137).AND.(IDXI.LE.160)) GOTO 10
14934 ELSEIF (ISTAB.EQ.3) THEN
14935 IF ((IDXI.GE. 1).AND.(IDXI.LE. 23)) GOTO 10
14936 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14937 IF ((IDXI.GE.109).AND.(IDXI.LE.115)) GOTO 10
14938 IF ((IDXI.GE.133).AND.(IDXI.LE.136)) GOTO 10
14939 ENDIF
14940
14941* calculate direction cosines and Lorentz-parameter of decaying part.
14942 PTOT = SQRT(PI(NSTK,1)**2+PI(NSTK,2)**2+PI(NSTK,3)**2)
14943 PTOT = MAX(PTOT,TINY17)
14944 DO 1 I=1,3
14945 DCOS(I) = PI(NSTK,I)/PTOT
14946 1 CONTINUE
14947 GAM = PI(NSTK,4)/AAM(IDXI)
14948 BGAM = PTOT/AAM(IDXI)
14949
14950* get decay-channel
14951 KCHAN = K1(IDXI)-1
14952 2 CONTINUE
14953 KCHAN = KCHAN+1
14954 IF ((DT_RNDM(GAM)-TINY17).GT.WT(KCHAN)) GOTO 2
14955
14956* identities of secondaries
14957 IDX(1) = NZK(KCHAN,1)
14958 IDX(2) = NZK(KCHAN,2)
14959 IF (IDX(2).LT.1) GOTO 9999
14960 IDX(3) = NZK(KCHAN,3)
14961
14962* handle decay in rest system of decaying particle
14963 IF (IDX(3).EQ.0) THEN
14964* two-particle decay
14965 NDEC = 2
14966 CALL DT_DTWOPD(AAM(IDXI),EF(1),EF(2),PF(1),PF(2),
14967 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14968 & AAM(IDX(1)),AAM(IDX(2)))
14969 ELSE
14970* three-particle decay
14971 NDEC = 3
14972 CALL DT_DTHREP(AAM(IDXI),EF(1),EF(2),EF(3),PF(1),PF(2),PF(3),
14973 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14974 & CODF(3),COFF(3),SIFF(3),
14975 & AAM(IDX(1)),AAM(IDX(2)),AAM(IDX(3)))
14976 ENDIF
14977 NSTK = NSTK-1
14978
14979* transform decay products back
14980 DO 3 I=1,NDEC
14981 NSTK = NSTK+1
14982 CALL DT_DTRAFO(GAM,BGAM,DCOS(1),DCOS(2),DCOS(3),
14983 & CODF(I),COFF(I),SIFF(I),PF(I),EF(I),
14984 & PFF(I),DCOSF(1),DCOSF(2),DCOSF(3),PI(NSTK,4))
14985* add particle to stack
14986 IDXSTK(NSTK) = IDX(I)
14987 DO 4 J=1,3
14988 PI(NSTK,J) = DCOSF(J)*PFF(I)
14989 4 CONTINUE
14990 3 CONTINUE
14991 GOTO 100
14992
14993 10 CONTINUE
14994* stable particle, put to output-arrays
14995 NSEC = NSEC+1
14996 DO 6 I=1,4
14997 POUT(NSEC,I) = PI(NSTK,I)
14998 6 CONTINUE
14999 IDXOUT(NSEC) = IDXSTK(NSTK)
15000* store secondaries for energy-momentum conservation check
15001 IF (LEMCCK)
15002 &CALL DT_EVTEMC(-POUT(NSEC,1),-POUT(NSEC,2),-POUT(NSEC,3),
15003 & -POUT(NSEC,4),2,IDUM,IDUM)
15004 NSTK = NSTK-1
15005 IF (NSTK.GT.0) GOTO 100
15006
15007* check energy-momentum conservation
15008 IF (LEMCCK) THEN
15009 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,5,IREJ1)
15010 IF (IREJ1.NE.0) GOTO 9999
15011 ENDIF
15012
15013 RETURN
15014
15015 9999 CONTINUE
15016 IREJ = 1
15017 RETURN
15018 END
15019
15020*$ CREATE DT_DECAY1.FOR
15021*COPY DT_DECAY1
15022*
15023*===decay1=============================================================*
15024*
15025 SUBROUTINE DT_DECAY1
15026
15027************************************************************************
15028* Decay of resonances stored in DTEVT1. *
15029* This version dated 20.01.95 is written by S. Roesler *
15030************************************************************************
15031
15032 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15033 SAVE
15034 PARAMETER ( LINP = 10 ,
15035 & LOUT = 6 ,
15036 & LDAT = 9 )
15037
15038* event history
15039 PARAMETER (NMXHKK=200000)
15040 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15041 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15042 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15043* extended event history
15044 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15045 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15046 & IHIST(2,NMXHKK)
15047
15048 DIMENSION PIN(4),POUT(20,4),IDXOUT(20)
15049
15050 NEND = NHKK
15051C DO 1 I=NPOINT(5),NEND
15052 DO 1 I=NPOINT(4),NEND
15053 IF (ABS(ISTHKK(I)).EQ.1) THEN
15054 DO 2 K=1,4
15055 PIN(K) = PHKK(K,I)
15056 2 CONTINUE
15057 IDXIN = IDBAM(I)
15058 CALL DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
15059 IF (NSEC.GT.1) THEN
15060 DO 3 N=1,NSEC
15061 IDHAD = IDT_IPDGHA(IDXOUT(N))
15062 CALL DT_EVTPUT(1,IDHAD,I,0,POUT(N,1),POUT(N,2),
15063 & POUT(N,3),POUT(N,4),0,0,0)
15064 3 CONTINUE
15065 ENDIF
15066 ENDIF
15067 1 CONTINUE
15068
15069 RETURN
15070 END
15071
15072*$ CREATE DT_DECPI0.FOR
15073*COPY DT_DECPI0
15074*
15075*===decpi0=============================================================*
15076*
15077 SUBROUTINE DT_DECPI0
15078
15079************************************************************************
15080* Decay of pi0 handled with JETSET. *
15081* This version dated 18.02.96 is written by S. Roesler *
15082************************************************************************
15083
15084 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15085 SAVE
15086 PARAMETER ( LINP = 10 ,
15087 & LOUT = 6 ,
15088 & LDAT = 9 )
15089 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0,ZERO=0.0D0)
15090
15091* event history
15092 PARAMETER (NMXHKK=200000)
15093 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15094 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15095 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15096* extended event history
15097 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15098 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15099 & IHIST(2,NMXHKK)
bd378884 15100 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15101 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15102 PARAMETER (MAXLND=4000)
15103 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
15104* flags for input different options
15105 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15106 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15107 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15108
15109 INTEGER PYCOMP,PYK
15110
15111 DIMENSION IHISMO(NMXHKK),P1(4)
15112
15113 TWOPI = 2.0D0*ATAN2(0.0D0,-1.0D0)
15114
15115 CALL DT_INITJS(2)
15116* allow pi0 decay
15117 KC = PYCOMP(111)
15118 MDCY(KC,1) = 1
15119
15120 NN = 0
15121 INI = 0
15122 DO 1 I=1,NHKK
15123 IF ((ISTHKK(I).EQ.1).AND.(IDHKK(I).EQ.111)) THEN
15124 IF (INI.EQ.0) THEN
15125 INI = 1
15126 ELSE
15127 INI = 2
15128 ENDIF
15129 IF (LEMCCK) CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
15130 & PHKK(4,I),INI,IDUM,IDUM)
15131 PT = SQRT(PHKK(1,I)**2+PHKK(2,I)**2)
15132 PTOT = SQRT(PT**2+PHKK(3,I)**2)
15133 COSTH = PHKK(3,I)/(PTOT+TINY10)
15134 IF (COSTH.GT.ONE) THEN
15135 THETA = ZERO
15136 ELSEIF (COSTH.LT.-ONE) THEN
15137 THETA = TWOPI/2.0D0
15138 ELSE
15139 THETA = ACOS(COSTH)
15140 ENDIF
15141 PHI = ASIN(PHKK(2,I)/(PT +TINY10))
15142 IF (PHKK(1,I).LT.0.0D0)
15143 & PHI = SIGN(TWOPI/2.0D0-ABS(PHI),PHI)
15144 ENER = PHKK(4,I)
15145 NN = NN+1
15146 KTEMP = MSTU(10)
15147 MSTU(10)= 1
15148 P(NN,5) = PHKK(5,I)
15149 CALL PY1ENT(NN,111,ENER,THETA,PHI)
15150 MSTU(10) = KTEMP
15151 IHISMO(NN)= I
15152 ENDIF
15153 1 CONTINUE
15154 IF (NN.GT.0) THEN
15155 CALL PYEXEC
15156 NLINES = PYK(0,1)
15157 DO 2 II=1,NLINES
15158 IF (PYK(II,7).EQ.1) THEN
15159 DO 3 KK=1,4
15160 P1(KK) = PYP(II,KK)
15161 3 CONTINUE
15162 ID = PYK(II,8)
15163 MO = IHISMO(PYK(II,15))
15164 CALL DT_EVTPUT(1,ID,MO,0,P1(1),P1(2),P1(3),P1(4),0,0,0)
15165 IF (LEMCCK)
15166 & CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,
15167 & IDUM,IDUM)
15168*sr: flag with neg. sign (for HELIOS p/A-W jobs)
15169 ISTHKK(MO) = -2
15170 ENDIF
15171 2 CONTINUE
15172 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,7000,IREJ1)
15173 ENDIF
15174 MDCY(KC,1) = 0
15175
15176 RETURN
15177 END
15178
15179*$ CREATE DT_DTWOPD.FOR
15180*COPY DT_DTWOPD
15181*
15182*===dtwopd=============================================================*
15183*
15184 SUBROUTINE DT_DTWOPD(UMO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,COD2,
15185 & COF2,SIF2,AM1,AM2)
15186
15187************************************************************************
15188* Two-particle decay. *
15189* UMO cm-energy of the decaying system (input) *
15190* AM1/AM2 masses of the decay products (input) *
15191* ECM1,ECM2/PCM1,PCM2 cm-energies/momenta of the decay prod. (output) *
15192* COD,COF,SIF direction cosines of the decay prod. (output) *
15193* Revised by S. Roesler, 20.11.95 *
15194************************************************************************
15195
15196 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15197 SAVE
15198 PARAMETER ( LINP = 10 ,
15199 & LOUT = 6 ,
15200 & LDAT = 9 )
15201 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,ZERO=0.0D0)
15202
15203 IF (UMO.LT.(AM1+AM2)) THEN
15204 WRITE(LOUT,1000) UMO,AM1,AM2
15205 1000 FORMAT(1X,'DTWOPD: inconsistent kinematics - UMO,AM1,AM2 ',
15206 & 3E12.3)
15207 STOP
15208 ENDIF
15209
15210 ECM1 = ((UMO-AM2)*(UMO+AM2)+AM1*AM1)/(TWO*UMO)
15211 ECM2 = UMO-ECM1
15212 PCM1 = SQRT((ECM1-AM1)*(ECM1+AM1))
15213 PCM2 = PCM1
15214 CALL DT_DSFECF(SIF1,COF1)
15215 COD1 = TWO*DT_RNDM(PCM2)-ONE
15216 COD2 = -COD1
15217 COF2 = -COF1
15218 SIF2 = -SIF1
15219
15220 RETURN
15221 END
15222
15223*$ CREATE DT_DTHREP.FOR
15224*COPY DT_DTHREP
15225*
15226*===dthrep=============================================================*
15227*
15228 SUBROUTINE DT_DTHREP(UMO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,
15229 & SIF1,COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
15230
15231************************************************************************
15232* Three-particle decay. *
15233* UMO cm-energy of the decaying system (input) *
15234* AM1/2/3 masses of the decay products (input) *
15235* ECM1/2/2,PCM1/2/3 cm-energies/momenta of the decay prod. (output) *
15236* COD,COF,SIF direction cosines of the decay prod. (output) *
15237* *
15238* Threpd89: slight revision by A. Ferrari *
15239* Last change on 11-oct-93 by Alfredo Ferrari, INFN - Milan *
15240* Revised by S. Roesler, 20.11.95 *
15241************************************************************************
15242
15243 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15244 SAVE
15245 PARAMETER ( LINP = 10 ,
15246 & LOUT = 6 ,
15247 & LDAT = 9 )
15248
15249 PARAMETER ( ANGLSQ = 2.5D-31 )
15250 PARAMETER ( AZRZRZ = 1.0D-30 )
15251 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
15252 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
15253 PARAMETER ( ONEONE = 1.D+00 )
15254 PARAMETER ( TWOTWO = 2.D+00 )
15255 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
15256
15257 COMMON /HNGAMR/ REDU,AMO,AMM(15)
15258* flags for input different options
15259 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15260 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15261 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15262
15263 DIMENSION F(5),XX(5)
15264 DATA EPS /AZRZRZ/
15265
15266 UMOO=UMO+UMO
15267C***S1, S2, S3 ARE THE INVARIANT MASSES OF THE PARTICLES 1, 2, 3
15268C***J. VON NEUMANN - RANDOM - SELECTION OF S2
15269C***CALCULATION OF THE MAXIMUM OF THE S2 - DISTRIBUTION
15270 UUMO=UMO
15271 AAM1=AM1
15272 AAM2=AM2
15273 AAM3=AM3
15274 GU=(AM2+AM3)**2
15275 GO=(UMO-AM1)**2
15276* UFAK=1.0000000000001D0
15277* IF (GU.GT.GO) UFAK=0.9999999999999D0
15278 IF (GU.GT.GO) THEN
15279 UFAK=ONEMNS
15280 ELSE
15281 UFAK=ONEPLS
15282 END IF
15283 OFAK=2.D0-UFAK
15284 GU=GU*UFAK
15285 GO=GO*OFAK
15286 DS2=(GO-GU)/99.D0
15287 AM11=AM1*AM1
15288 AM22=AM2*AM2
15289 AM33=AM3*AM3
15290 UMO2=UMO*UMO
15291 RHO2=0.D0
15292 S22=GU
15293 DO 124 I=1,100
15294 S21=S22
15295 S22=GU+(I-1.D0)*DS2
15296 RHO1=RHO2
15297 RHO2=DT_YLAMB(S22,UMO2,AM11)*DT_YLAMB(S22,AM22,AM33)/
15298 * (S22+EPS)
15299 IF(RHO2.LT.RHO1) GO TO 125
15300 124 CONTINUE
15301 125 S2SUP=(S22-S21)*.5D0+S21
15302 SUPRHO=DT_YLAMB(S2SUP,UMO2,AM11)*DT_YLAMB(S2SUP,AM22,AM33)/
15303 * (S2SUP+EPS)
15304 SUPRHO=SUPRHO*1.05D0
15305 XO=S21-DS2
15306 IF (GU.LT.GO.AND.XO.LT.GU) XO=GU
15307 IF (GU.GT.GO.AND.XO.GT.GU) XO=GU
15308 XX(1)=XO
15309 XX(3)=S22
15310 X1=(XO+S22)*0.5D0
15311 XX(2)=X1
15312 F(3)=RHO2
15313 F(1)=DT_YLAMB(XO,UMO2,AM11)*DT_YLAMB(XO,AM22,AM33)/(XO+EPS)
15314 F(2)=DT_YLAMB(X1,UMO2,AM11)*DT_YLAMB(X1,AM22,AM33)/(X1+EPS)
15315 DO 126 I=1,16
15316 X4=(XX(1)+XX(2))*0.5D0
15317 X5=(XX(2)+XX(3))*0.5D0
15318 F(4)=DT_YLAMB(X4,UMO2,AM11)*DT_YLAMB(X4,AM22,AM33)/
15319 * (X4+EPS)
15320 F(5)=DT_YLAMB(X5,UMO2,AM11)*DT_YLAMB(X5,AM22,AM33)/
15321 * (X5+EPS)
15322 XX(4)=X4
15323 XX(5)=X5
15324 DO 128 II=1,5
15325 IA=II
15326 DO 128 III=IA,5
15327 IF (F (II).GE.F (III)) GO TO 128
15328 FH=F(II)
15329 F(II)=F(III)
15330 F(III)=FH
15331 FH=XX(II)
15332 XX(II)=XX(III)
15333 XX(III)=FH
15334128 CONTINUE
15335 SUPRHO=F(1)
15336 S2SUP=XX(1)
15337 DO 129 II=1,3
15338 IA=II
15339 DO 129 III=IA,3
15340 IF (XX(II).GE.XX(III)) GO TO 129
15341 FH=F(II)
15342 F(II)=F(III)
15343 F(III)=FH
15344 FH=XX(II)
15345 XX(II)=XX(III)
15346 XX(III)=FH
15347129 CONTINUE
15348126 CONTINUE
15349 AM23=(AM2+AM3)**2
15350 ITH=0
15351 REDU=2.D0
15352 1 CONTINUE
15353 ITH=ITH+1
15354 IF (ITH.GT.200) REDU=-9.D0
15355 IF (ITH.GT.200) GO TO 400
15356 C=DT_RNDM(REDU)
15357* S2=AM23+C*((UMO-AM1)**2-AM23)
15358 S2=AM23+C*(UMO-AM1-AM2-AM3)*(UMO-AM1+AM2+AM3)
15359 Y=DT_RNDM(S2)
15360 Y=Y*SUPRHO
15361 RHO=DT_YLAMB(S2,UMO2,AM11)*DT_YLAMB(S2,AM22,AM33)/S2
15362 IF(Y.GT.RHO) GO TO 1
15363C***RANDOM SELECTION OF S3 AND CALCULATION OF S1
15364 S1=DT_RNDM(S2)
15365 S1=S1*RHO+AM11+AM22-(S2-UMO2+AM11)*(S2+AM22-AM33)/(2.D0*S2)-
15366 &RHO*.5D0
15367 S3=UMO2+AM11+AM22+AM33-S1-S2
15368 ECM1=(UMO2+AM11-S2)/UMOO
15369 ECM2=(UMO2+AM22-S3)/UMOO
15370 ECM3=(UMO2+AM33-S1)/UMOO
15371 PCM1=SQRT((ECM1+AM1)*(ECM1-AM1))
15372 PCM2=SQRT((ECM2+AM2)*(ECM2-AM2))
15373 PCM3=SQRT((ECM3+AM3)*(ECM3-AM3))
15374 CALL DT_DSFECF(SFE,CFE)
15375C***TH IS THE ANGLE BETWEEN PARTICLES 1 AND 2
15376C***TH1, TH2 ARE THE ANGLES BETWEEN PARTICLES 1, 2 AND THE DIRECTION OF
15377 PCM12 = PCM1 * PCM2
15378 IF ( PCM12 .LT. ANGLSQ ) GO TO 200
15379 COSTH=(ECM1*ECM2+0.5D+00*(AM11+AM22-S1))/PCM12
15380 GO TO 300
15381 200 CONTINUE
15382 UW=DT_RNDM(S1)
15383 COSTH=(UW-0.5D+00)*2.D+00
15384 300 CONTINUE
15385* IF(ABS(COSTH).GT.0.9999999999999999D0)
15386* &COSTH=SIGN(0.9999999999999999D0,COSTH)
15387 IF(ABS(COSTH).GT.ONEONE)
15388 &COSTH=SIGN(ONEONE,COSTH)
15389 IF (REDU.LT.1.D+00) RETURN
15390 COSTH2=(PCM3*PCM3+PCM2*PCM2-PCM1*PCM1)/(2.D+00*PCM2*PCM3)
15391* IF(ABS(COSTH2).GT.0.9999999999999999D0)
15392* &COSTH2=SIGN(0.9999999999999999D0,COSTH2)
15393 IF(ABS(COSTH2).GT.ONEONE)
15394 &COSTH2=SIGN(ONEONE,COSTH2)
15395 SINTH2=SQRT((ONEONE-COSTH2)*(ONEONE+COSTH2))
15396 SINTH =SQRT((ONEONE-COSTH)*(ONEONE+COSTH))
15397 SINTH1=COSTH2*SINTH-COSTH*SINTH2
15398 COSTH1=COSTH*COSTH2+SINTH2*SINTH
15399C***RANDOM SELECTION OF THE SPHERICAL COORDINATES OF THE DIRECTION OF PA
15400C***CFE, SFE ARE COS AND SIN OF THE ROTATION ANGLE OF THE SYSTEM 1, 2 AR
15401C***THE DIRECTION OF PARTICLE 3
15402C***CALCULATION OF THE SPHERICAL COORDINATES OF PARTICLES 1, 2
15403 CX11=-COSTH1
15404 CY11=SINTH1*CFE
15405 CZ11=SINTH1*SFE
15406 CX22=-COSTH2
15407 CY22=-SINTH2*CFE
15408 CZ22=-SINTH2*SFE
15409 CALL DT_DSFECF(SIF3,COF3)
15410 COD3=TWOTWO*DT_RNDM(CX11)-ONEONE
15411 SID3=SQRT((1.D+00-COD3)*(1.D+00+COD3))
15412 2 FORMAT(5F20.15)
15413 COD1=CX11*COD3+CZ11*SID3
15414 CHLP=(ONEONE-COD1)*(ONEONE+COD1)
15415 IF(CHLP.LT.1.D-14)WRITE(LOUT,2)COD1,COF3,SID3,
15416 &CX11,CZ11
15417 SID1=SQRT(CHLP)
15418 COF1=(CX11*SID3*COF3-CY11*SIF3-CZ11*COD3*COF3)/SID1
15419 SIF1=(CX11*SID3*SIF3+CY11*COF3-CZ11*COD3*SIF3)/SID1
15420 COD2=CX22*COD3+CZ22*SID3
15421 SID2=SQRT((ONEONE-COD2)*(ONEONE+COD2))
15422 COF2=(CX22*SID3*COF3-CY22*SIF3-CZ22*COD3*COF3)/SID2
15423 SIF2=(CX22*SID3*SIF3+CY22*COF3-CZ22*COD3*SIF3)/SID2
15424 400 CONTINUE
15425* === Energy conservation check: === *
15426 EOCHCK = UMO - ECM1 - ECM2 - ECM3
15427* SID1 = SQRT ( ( ONEONE - COD1 ) * ( ONEONE + COD1 ) )
15428* SID2 = SQRT ( ( ONEONE - COD2 ) * ( ONEONE + COD2 ) )
15429* SID3 = SQRT ( ( ONEONE - COD3 ) * ( ONEONE + COD3 ) )
15430 PZCHCK = PCM1 * COD1 + PCM2 * COD2 + PCM3 * COD3
15431 PXCHCK = PCM1 * COF1 * SID1 + PCM2 * COF2 * SID2
15432 & + PCM3 * COF3 * SID3
15433 PYCHCK = PCM1 * SIF1 * SID1 + PCM2 * SIF2 * SID2
15434 & + PCM3 * SIF3 * SID3
15435 EOCMPR = 1.D-12 * UMO
15436 IF ( ABS (EOCHCK) + ABS (PXCHCK) + ABS (PYCHCK) + ABS (PZCHCK)
15437 & .GT. EOCMPR ) THEN
15438**sr 5.5.95 output-unit changed
15439 IF (IOULEV(1).GT.0) THEN
15440 WRITE(LOUT,*)
15441 & ' *** Threpd: energy/momentum conservation failure! ***',
15442 & EOCHCK,PXCHCK,PYCHCK,PZCHCK
15443 WRITE(LOUT,*)' *** SID1,SID2,SID3',SID1,SID2,SID3
15444 ENDIF
15445**
15446 END IF
15447 RETURN
15448 END
15449
15450*$ CREATE DT_DBKLAS.FOR
15451*COPY DT_DBKLAS
15452*
15453*===dbklas=============================================================*
15454*
15455 SUBROUTINE DT_DBKLAS(I,J,K,I8,I10)
15456
15457 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15458 SAVE
15459 PARAMETER ( LINP = 10 ,
15460 & LOUT = 6 ,
15461 & LDAT = 9 )
15462
15463* quark-content to particle index conversion (DTUNUC 1.x)
15464 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15465 & IA08(6,21),IA10(6,21)
15466
15467 IF (I) 20,20,10
15468* baryons
15469 10 CONTINUE
15470 CALL DT_INDEXD(J,K,IND)
15471 I8 = IB08(I,IND)
15472 I10 = IB10(I,IND)
15473 IF (I8.LE.0) I8 = I10
15474 RETURN
15475* antibaryons
15476 20 CONTINUE
15477 II = IABS(I)
15478 JJ = IABS(J)
15479 KK = IABS(K)
15480 CALL DT_INDEXD(JJ,KK,IND)
15481 I8 = IA08(II,IND)
15482 I10 = IA10(II,IND)
15483 IF (I8.LE.0) I8 = I10
15484
15485 RETURN
15486 END
15487
15488*$ CREATE DT_INDEXD.FOR
15489*COPY DT_INDEXD
15490*
15491*===indexd=============================================================*
15492*
15493 SUBROUTINE DT_INDEXD(KA,KB,IND)
15494
15495 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15496 SAVE
15497 PARAMETER ( LINP = 10 ,
15498 & LOUT = 6 ,
15499 & LDAT = 9 )
15500
15501 KP = KA*KB
15502 KS = KA+KB
15503 IF (KP.EQ.1) IND=1
15504 IF (KP.EQ.2) IND=2
15505 IF (KP.EQ.3) IND=3
15506 IF ((KP.EQ.4).AND.(KS.EQ.5)) IND=4
15507 IF (KP.EQ.5) IND=5
15508 IF ((KP.EQ.6).AND.(KS.EQ.7)) IND=6
15509 IF ((KP.EQ.4).AND.(KS.EQ.4)) IND=7
15510 IF ((KP.EQ.6).AND.(KS.EQ.5)) IND=8
15511 IF (KP.EQ.8) IND=9
15512 IF (KP.EQ.10) IND=10
15513 IF ((KP.EQ.12).AND.(KS.EQ.8)) IND=11
15514 IF (KP.EQ.9) IND=12
15515 IF ((KP.EQ.12).AND.(KS.EQ.7)) IND=13
15516 IF (KP.EQ.15) IND=14
15517 IF (KP.EQ.18) IND=15
15518 IF (KP.EQ.16) IND=16
15519 IF (KP.EQ.20) IND=17
15520 IF (KP.EQ.24) IND=18
15521 IF (KP.EQ.25) IND=19
15522 IF (KP.EQ.30) IND=20
15523 IF (KP.EQ.36) IND=21
15524
15525 RETURN
15526 END
15527
15528*$ CREATE DT_DCHANT.FOR
15529*COPY DT_DCHANT
15530*
15531*===dchant=============================================================*
15532*
15533 SUBROUTINE DT_DCHANT
15534
15535 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15536 SAVE
15537 PARAMETER ( LINP = 10 ,
15538 & LOUT = 6 ,
15539 & LDAT = 9 )
15540 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15541
15542* HADRIN: decay channel information
15543 PARAMETER (IDMAX9=602)
15544 CHARACTER*8 ZKNAME
15545 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
15546* particle properties (BAMJET index convention)
15547 CHARACTER*8 ANAME
15548 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
15549 & IICH(210),IIBAR(210),K1(210),K2(210)
15550
15551 DIMENSION HWT(IDMAX9)
15552
15553* change of weights wt from absolut values into the sum of wt of a dec.
15554 DO 10 J=1,IDMAX9
15555 HWT(J) = ZERO
15556 10 CONTINUE
15557C DO 999 KKK=1,210
15558C WRITE(LOUT,'(A8,F5.2,2E10.3,2I4,2I10)')
15559C & ANAME(KKK),AAM(KKK),GA(KKK),TAU(KKK),IICH(KKK),IIBAR(KKK),
15560C & K1(KKK),K2(KKK)
15561C 999 CONTINUE
15562C STOP
15563 DO 30 I=1,210
15564 IK1 = K1(I)
15565 IK2 = K2(I)
15566 HV = ZERO
15567 DO 20 J=IK1,IK2
15568 HV = HV+WT(J)
15569 HWT(J) = HV
15570**sr 13.1.95
15571 IF (HWT(J).GT.1.0001) WRITE(LOUT,1000) HWT(J),J,I,IK1
15572 1000 FORMAT(2X,15H ERROR IN HWT =,1F10.5,8H J,I,K1=,3I5)
15573 20 CONTINUE
15574 30 CONTINUE
15575 DO 40 J=1,IDMAX9
15576 WT(J) = HWT(J)
15577 40 CONTINUE
15578
15579 RETURN
15580 END
15581
15582*$ CREATE DT_DDATAR.FOR
15583*COPY DT_DDATAR
15584*
15585*===ddatar=============================================================*
15586*
15587 SUBROUTINE DT_DDATAR
15588
15589 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15590 SAVE
15591 PARAMETER ( LINP = 10 ,
15592 & LOUT = 6 ,
15593 & LDAT = 9 )
15594 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15595
15596* quark-content to particle index conversion (DTUNUC 1.x)
15597 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15598 & IA08(6,21),IA10(6,21)
15599
15600 DIMENSION IV(36),IP(36),IB(126),IBB(126),IA(126),IAA(126)
15601
15602 DATA IV/ 33, 34, 38,123, 0, 0, 32, 33, 39,124,
15603 & 0, 0, 36, 37, 96,127, 0, 0,126,125,
15604 & 128,129,14*0/
15605 DATA IP/ 23, 14, 16,116, 0, 0, 13, 23, 25,117,
15606 & 0, 0, 15, 24, 31,120, 0, 0,119,118,
15607 & 121,122,14*0/
15608 DATA IB/ 0, 1, 21,140, 0, 0, 8, 22,137, 0,
15609 & 0, 97,138, 0, 0,146, 0, 0, 0, 0,
15610 & 0, 1, 8, 22,137, 0, 0, 0, 20,142,
15611 & 0, 0, 98,139, 0, 0,147, 0, 0, 0,
15612 & 0, 0, 21, 22, 97,138, 0, 0, 20, 98,
15613 & 139, 0, 0, 0,145, 0, 0,148, 0, 0,
15614 & 0, 0, 0,140,137,138,146, 0, 0,142,
15615 & 139,147, 0, 0,145,148, 50*0/
15616 DATA IBB/53, 54,104,161, 0, 0, 55,105,162, 0,
15617 & 0,107,164, 0, 0,167, 0, 0, 0, 0,
15618 & 0, 54, 55,105,162, 0, 0, 56,106,163,
15619 & 0, 0,108,165, 0, 0,168, 0, 0, 0,
15620 & 0, 0,104,105,107,164, 0, 0,106,108,
15621 & 165, 0, 0,109,166, 0, 0,169, 0, 0,
15622 & 0, 0, 0,161,162,164,167, 0, 0,163,
15623 & 165,168, 0, 0,166,169, 0, 0,170,47*0/
15624 DATA IA/ 0, 2, 99,152, 0, 0, 9,100,149, 0,
15625 & 0,102,150, 0, 0,158, 0, 0, 0, 0,
15626 & 0, 2, 9,100,149, 0, 0, 0,101,154,
15627 & 0, 0,103,151, 0, 0,159, 0, 0, 0,
15628 & 0, 0, 99,100,102,150, 0, 0,101,103,
15629 & 151, 0, 0, 0,157, 0, 0,160, 0, 0,
15630 & 0, 0, 0,152,149,150,158, 0, 0,154,
15631 & 151,159, 0, 0,157,160, 50*0/
15632 DATA IAA/67, 68,110,171, 0, 0, 69,111,172, 0,
15633 & 0,113,174, 0, 0,177, 0, 0, 0, 0,
15634 & 0, 68, 69,111,172, 0, 0, 70,112,173,
15635 & 0, 0,114,175, 0, 0,178, 0, 0, 0,
15636 & 0, 0,110,111,113,174, 0, 0,112,114,
15637 & 175, 0, 0,115,176, 0, 0,179, 0, 0,
15638 & 0, 0, 0,171,172,174,177, 0, 0,173,
15639 & 175,178, 0, 0,176,179, 0, 0,180,47*0/
15640
15641 L=0
15642 DO 2 I=1,6
15643 DO 1 J=1,6
15644 L = L+1
15645 IMPS(I,J) = IP(L)
15646 IMVE(I,J) = IV(L)
15647 1 CONTINUE
15648 2 CONTINUE
15649 L=0
15650 DO 4 I=1,6
15651 DO 3 J=1,21
15652 L = L+1
15653 IB08(I,J) = IB(L)
15654 IB10(I,J) = IBB(L)
15655 IA08(I,J) = IA(L)
15656 IA10(I,J) = IAA(L)
15657 3 CONTINUE
15658 4 CONTINUE
15659C A1 = 0.88D0
15660C B1 = 3.0D0
15661C B2 = 3.0D0
15662C B3 = 8.0D0
15663C LT = 0
15664C LB = 0
15665C BET = 12.0D0
15666C AS = 0.25D0
15667C B8 = 0.33D0
15668C AME = 0.95D0
15669C DIQ = 0.375D0
15670C ISU = 4
15671
15672 RETURN
15673 END
15674
15675*$ CREATE DT_INITJS.FOR
15676*COPY DT_INITJS
15677*
15678*===initjs=============================================================*
15679*
15680 SUBROUTINE DT_INITJS(MODE)
15681
15682************************************************************************
15683* Initialize JETSET paramters. *
15684* MODE = 0 default settings *
15685* = 1 PHOJET settings *
15686* = 2 DTUNUC settings *
15687* This version dated 16.02.96 is written by S. Roesler *
15688* *
15689* Last change 27.12.2006 by S. Roesler. *
15690************************************************************************
15691
15692 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15693 SAVE
15694 PARAMETER ( LINP = 10 ,
15695 & LOUT = 6 ,
15696 & LDAT = 9 )
15697 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15698
15699 LOGICAL LFIRST,LFIRDT,LFIRPH
15700
15701 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15702 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
bd378884 15703 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15704* flags for particle decays
15705 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
15706 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
15707 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
15708* flags for input different options
15709 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15710 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15711 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15712
15713 INTEGER PYCOMP
15714
15715 DIMENSION IDXSTA(40)
15716 DATA IDXSTA
15717* K0s pi0 lam alam sig+ asig+ sig- asig- tet0 atet0
15718 & / 310, 111, 3122,-3122, 3222,-3222, 3112,-3112, 3322,-3322,
15719* tet- atet- om- aom- D+ D- D0 aD0 Ds+ aDs+
15720 & 3312,-3312, 3334,-3334, 411, -411, 421, -421, 431, -431,
15721* etac lamc+alamc+sigc++ sigc+ sigc0asigc++asigc+asigc0 Ksic+
15722 & 441, 4122,-4122, 4222, 4212, 4112,-4222,-4212,-4112, 4232,
15723* Ksic0 aKsic+aKsic0 sig0 asig0
15724 & 4132,-4232,-4132, 3212,-3212, 5*0/
15725
15726 DATA LFIRST,LFIRDT,LFIRPH /.TRUE.,.TRUE.,.TRUE./
15727
15728 IF (LFIRST) THEN
15729* save default settings
15730 PDEF1 = PARJ(1)
15731 PDEF2 = PARJ(2)
15732 PDEF3 = PARJ(3)
15733 PDEF5 = PARJ(5)
15734 PDEF6 = PARJ(6)
15735 PDEF7 = PARJ(7)
15736 PDEF18 = PARJ(18)
15737 PDEF19 = PARJ(19)
15738 PDEF21 = PARJ(21)
15739 PDEF42 = PARJ(42)
15740 MDEF12 = MSTJ(12)
15741* LUJETS / PYJETS array-dimensions
15742 MSTU(4) = 4000
15743* increase maximum number of JETSET-error prints
15744 MSTU(22) = 50000
15745* prevent particles decaying
15746 DO 1 I=1,35
15747 IF (I.LT.34) THEN
15748 KC = PYCOMP(IDXSTA(I))
15749 IF (KC.GT.0) THEN
15750 IF (I.EQ.2) THEN
15751* pi0 decay
15752C MDCY(KC,1) = 1
15753 MDCY(KC,1) = 0
15754**cr mode
15755C ELSEIF ((I.EQ.4).OR.(I.EQ. 6).OR.
15756C & (I.EQ.8).OR.(I.EQ.10)) THEN
15757C ELSEIF (I.EQ.4) THEN
15758C MDCY(KC,1) = 1
15759**
15760 ELSE
1ddc441c 15761C AM MDCY(KC,1) = 0
9aaba0d6 15762 ENDIF
15763 ENDIF
15764 ELSEIF (((I.EQ.34).OR.(I.EQ.35)).AND.(ISIG0.EQ.0)) THEN
15765 KC = PYCOMP(IDXSTA(I))
15766 IF (KC.GT.0) THEN
1ddc441c 15767C AM MDCY(KC,1) = 0
9aaba0d6 15768 ENDIF
15769 ENDIF
15770 1 CONTINUE
15771*
15772*
15773* popcorn:
15774 IF (PDB.LE.ZERO) THEN
15775* no popcorn-mechanism
15776 MSTJ(12) = 1
15777 ELSE
15778 MSTJ(12) = 3
15779 PARJ(5) = PDB
15780 ENDIF
15781* set JETSET-parameter requested by input cards
15782 IF (NMSTU.GT.0) THEN
15783 DO 2 I=1,NMSTU
15784 MSTU(IMSTU(I)) = MSTUX(I)
15785 2 CONTINUE
15786 ENDIF
15787 IF (NMSTJ.GT.0) THEN
15788 DO 3 I=1,NMSTJ
15789 MSTJ(IMSTJ(I)) = MSTJX(I)
15790 3 CONTINUE
15791 ENDIF
15792 IF (NPARU.GT.0) THEN
15793 DO 4 I=1,NPARU
15794 PARU(IPARU(I)) = PARUX(I)
15795 4 CONTINUE
15796 ENDIF
15797 LFIRST = .FALSE.
15798 ENDIF
15799*
15800* PARJ(1) suppression of qq-aqaq pair prod. compared to
15801* q-aq pair prod. (default: 0.1)
15802* PARJ(2) strangeness suppression (default: 0.3)
15803* PARJ(3) extra suppression of strange diquarks (default: 0.4)
15804* PARJ(6) extra suppression of sas-pair shared by B and
15805* aB in BMaB (default: 0.5)
15806* PARJ(7) extra suppression of strange meson M in BMaB
15807* configuration (default: 0.5)
15808* PARJ(18) spin 3/2 baryon suppression (default: 1.0)
15809* PARJ(21) width sigma in Gaussian p_x, p_y transverse
15810* momentum distrib. for prim. hadrons (default: 0.35)
15811* PARJ(42) b-parameter for symmetric Lund-fragmentation
15812* function (default: 0.9 GeV^-2)
15813*
15814* PHOJET settings
15815 IF (MODE.EQ.1) THEN
15816* JETSET default
15817C PARJ(1) = PDEF1
15818C PARJ(2) = PDEF2
15819C PARJ(3) = PDEF3
15820C PARJ(6) = PDEF6
15821C PARJ(7) = PDEF7
15822C PARJ(18) = PDEF18
15823C PARJ(21) = PDEF21
15824C PARJ(42) = PDEF42
15825**sr 18.11.98 parameter tuning
15826C PARJ(1) = 0.092D0
15827C PARJ(2) = 0.25D0
15828C PARJ(3) = 0.45D0
15829C PARJ(19) = 0.3D0
15830C PARJ(21) = 0.45D0
15831C PARJ(42) = 1.0D0
15832**sr 28.04.99 parameter tuning (May 99 minor modifications)
15833 PARJ(1) = 0.085D0
15834 PARJ(2) = 0.26D0
15835 PARJ(3) = 0.8D0
15836 PARJ(11) = 0.38D0
15837 PARJ(18) = 0.3D0
15838 PARJ(19) = 0.4D0
15839 PARJ(21) = 0.36D0
15840 PARJ(41) = 0.3D0
15841 PARJ(42) = 0.86D0
15842 IF (NPARJ.GT.0) THEN
15843 DO 10 I=1,NPARJ
15844 IF (IPARJ(I).GT.0) PARJ(IPARJ(I)) = PARJX(I)
15845 10 CONTINUE
15846 ENDIF
15847 IF (LFIRPH) THEN
15848 WRITE(LOUT,'(1X,A)')
15849 & 'DT_INITJS: JETSET-parameter for PHOJET'
15850 CALL DT_JSPARA(0)
15851 LFIRPH = .FALSE.
15852 ENDIF
15853* DTUNUC settings
15854 ELSEIF (MODE.EQ.2) THEN
15855 IF (IFRAG(2).EQ.1) THEN
15856**sr parameters before 9.3.96
15857C PARJ(2) = 0.27D0
15858C PARJ(3) = 0.6D0
15859C PARJ(6) = 0.75D0
15860C PARJ(7) = 0.75D0
15861C PARJ(21) = 0.55D0
15862C PARJ(42) = 1.3D0
15863**sr 18.11.98 parameter tuning
15864C PARJ(1) = 0.05D0
15865C PARJ(2) = 0.27D0
15866C PARJ(3) = 0.4D0
15867C PARJ(19) = 0.2D0
15868C PARJ(21) = 0.45D0
15869C PARJ(42) = 1.0D0
15870**sr 28.04.99 parameter tuning
15871 PARJ(1) = 0.11D0
15872 PARJ(2) = 0.36D0
15873 PARJ(3) = 0.8D0
15874 PARJ(19) = 0.2D0
15875 PARJ(21) = 0.3D0
15876 PARJ(41) = 0.3D0
15877 PARJ(42) = 0.58D0
15878 IF (NPARJ.GT.0) THEN
15879 DO 20 I=1,NPARJ
15880 IF (IPARJ(I).LT.0) THEN
15881 IDX = ABS(IPARJ(I))
15882 PARJ(IDX) = PARJX(I)
15883 ENDIF
15884 20 CONTINUE
15885 ENDIF
15886 IF (LFIRDT) THEN
15887 WRITE(LOUT,'(1X,A)')
15888 & 'DT_INITJS: JETSET-parameter for DTUNUC'
15889 CALL DT_JSPARA(0)
15890 LFIRDT = .FALSE.
15891 ENDIF
15892 ELSEIF (IFRAG(2).EQ.2) THEN
15893 PARJ(1) = 0.11D0
15894 PARJ(2) = 0.27D0
15895 PARJ(3) = 0.3D0
15896 PARJ(6) = 0.35D0
15897 PARJ(7) = 0.45D0
15898 PARJ(18) = 0.66D0
15899C PARJ(21) = 0.55D0
15900C PARJ(42) = 1.0D0
15901 PARJ(21) = 0.60D0
15902 PARJ(42) = 1.3D0
15903 ELSE
15904 PARJ(1) = PDEF1
15905 PARJ(2) = PDEF2
15906 PARJ(3) = PDEF3
15907 PARJ(6) = PDEF6
15908 PARJ(7) = PDEF7
15909 PARJ(18) = PDEF18
15910 PARJ(21) = PDEF21
15911 PARJ(42) = PDEF42
15912 ENDIF
15913 ELSE
15914 PARJ(1) = PDEF1
15915 PARJ(2) = PDEF2
15916 PARJ(3) = PDEF3
15917 PARJ(5) = PDEF5
15918 PARJ(6) = PDEF6
15919 PARJ(7) = PDEF7
15920 PARJ(18) = PDEF18
15921 PARJ(19) = PDEF19
15922 PARJ(21) = PDEF21
15923 PARJ(42) = PDEF42
15924 MSTJ(12) = MDEF12
15925 ENDIF
15926
15927 RETURN
15928 END
15929
15930*$ CREATE DT_JSPARA.FOR
15931*COPY DT_JSPARA
15932*
15933*===jspara=============================================================*
15934*
15935 SUBROUTINE DT_JSPARA(MODE)
15936
15937 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15938 SAVE
15939 PARAMETER ( LINP = 10 ,
15940 & LOUT = 6 ,
15941 & LDAT = 9 )
15942 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1,
15943 & ONE=1.0D0,ZERO=0.0D0)
15944
15945 LOGICAL LFIRST
15946
15947 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15948
15949 DIMENSION ISTU(200),QARU(200),ISTJ(200),QARJ(200)
15950
15951 DATA LFIRST /.TRUE./
15952
15953* save the default JETSET-parameter on the first call
15954 IF (LFIRST) THEN
15955 DO 1 I=1,200
15956 ISTU(I) = MSTU(I)
15957 QARU(I) = PARU(I)
15958 ISTJ(I) = MSTJ(I)
15959 QARJ(I) = PARJ(I)
15960 1 CONTINUE
15961 LFIRST = .FALSE.
15962 ENDIF
15963
15964 WRITE(LOUT,1000)
15965 1000 FORMAT(1X,'DT_JSPARA: new value (default value)')
15966
15967* compare the default JETSET-parameter with the present values
15968 DO 2 I=1,200
15969 IF ((MSTU(I).NE.ISTU(I)).AND.(I.NE.31)) THEN
15970 WRITE(LOUT,1002) 'MSTU(',I,MSTU(I),ISTU(I)
15971C ISTU(I) = MSTU(I)
15972 ENDIF
15973 DIFF = ABS(PARU(I)-QARU(I))
15974 IF ((DIFF.GE.1.0D-5).AND.(I.NE.21)) THEN
15975 WRITE(LOUT,1001) 'PARU(',I,PARU(I),QARU(I)
15976C QARU(I) = PARU(I)
15977 ENDIF
15978 IF (MSTJ(I).NE.ISTJ(I)) THEN
15979 WRITE(LOUT,1002) 'MSTJ(',I,MSTJ(I),ISTJ(I)
15980C ISTJ(I) = MSTJ(I)
15981 ENDIF
15982 DIFF = ABS(PARJ(I)-QARJ(I))
15983 IF (DIFF.GE.1.0D-5) THEN
15984 WRITE(LOUT,1001) 'PARJ(',I,PARJ(I),QARJ(I)
15985C QARJ(I) = PARJ(I)
15986 ENDIF
15987 2 CONTINUE
15988 1001 FORMAT(12X,A5,I3,'): ',F6.3,' (',F6.3,')')
15989 1002 FORMAT(12X,A5,I3,'): ',I6,' (',I6,')')
15990
15991 RETURN
15992 END
15993
15994*$ CREATE DT_FOZOCA.FOR
15995*COPY DT_FOZOCA
15996*
15997*===fozoca=============================================================*
15998*
15999 SUBROUTINE DT_FOZOCA(LFZC,IREJ)
16000
16001************************************************************************
16002* This subroutine treats the complete FOrmation ZOne supressed intra- *
16003* nuclear CAscade. *
16004* LFZC = .true. cascade has been treated *
16005* = .false. cascade skipped *
16006* This is a completely revised version of the original FOZOKL. *
16007* This version dated 18.11.95 is written by S. Roesler *
16008************************************************************************
16009
16010 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16011 SAVE
16012 PARAMETER ( LINP = 10 ,
16013 & LOUT = 6 ,
16014 & LDAT = 9 )
16015 PARAMETER (DLARGE=1.0D10,OHALF=0.5D0,ZERO=0.0D0)
16016 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16017
16018 LOGICAL LSTART,LCAS,LFZC
16019
16020* event history
16021 PARAMETER (NMXHKK=200000)
16022 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16023 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16024 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16025* extended event history
16026 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16027 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16028 & IHIST(2,NMXHKK)
16029* rejection counter
16030 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
16031 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
16032 & IREXCI(3),IRDIFF(2),IRINC
16033* properties of interacting particles
16034 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
16035* Glauber formalism: collision properties
16036 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16037 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16038* flags for input different options
16039 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16040 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16041 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16042* final state after intranuclear cascade step
16043 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16044* parameter for intranuclear cascade
16045 LOGICAL LPAULI
16046 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16047
16048 DIMENSION NCWOUN(2)
16049
16050 DATA LSTART /.TRUE./
16051
16052 LFZC = .TRUE.
16053 IREJ = 0
16054
16055* skip cascade if hadron-hadron interaction or if supressed by user
16056 IF (((IP.EQ.1).AND.(IT.EQ.1)).OR.(KTAUGE.LT.1)) GOTO 9999
16057* skip cascade if not all possible chains systems are hadronized
16058 DO 1 I=1,8
16059 IF (.NOT.LHADRO(I)) GOTO 9999
16060 1 CONTINUE
16061
16062 IF (LSTART) THEN
16063 WRITE(LOUT,1000) KTAUGE,TAUFOR,INCMOD
16064 1000 FORMAT(/,1X,'FOZOCA: intranuclear cascade treated for a ',
16065 & 'maximum of',I4,' generations',/,10X,'formation time ',
16066 & 'parameter:',F5.1,' fm/c',9X,'modus:',I2)
16067 IF (ITAUVE.EQ.1) WRITE(LOUT,1001)
16068 IF (ITAUVE.EQ.2) WRITE(LOUT,1002)
16069 1001 FORMAT(10X,'p_t dependent formation zone',/)
16070 1002 FORMAT(10X,'constant formation zone',/)
16071 LSTART = .FALSE.
16072 ENDIF
16073
16074* in order to avoid wasting of cpu-time the DTEVT1-indices of nucleons
16075* which may interact with final state particles are stored in a seperate
16076* array - here all proj./target nucleon-indices (just for simplicity)
16077 NOINC = 0
16078 DO 9 I=1,NPOINT(1)-1
16079 NOINC = NOINC+1
16080 IDXINC(NOINC) = I
16081 9 CONTINUE
16082
16083* initialize Pauli-principle treatment (find wounded nucleons)
16084 NWOUND(1) = 0
16085 NWOUND(2) = 0
16086 NCWOUN(1) = 0
16087 NCWOUN(2) = 0
16088 DO 2 J=1,NPOINT(1)
16089 DO 3 I=1,2
16090 IF (ISTHKK(J).EQ.10+I) THEN
16091 NWOUND(I) = NWOUND(I)+1
16092 EWOUND(I,NWOUND(I)) = PHKK(4,J)
16093 IF (IDHKK(J).EQ.2212) NCWOUN(I) = NCWOUN(I)+1
16094 ENDIF
16095 3 CONTINUE
16096 2 CONTINUE
16097
16098* modify nuclear potential for wounded nucleons
16099 IPRCL = IP -NWOUND(1)
16100 IPZRCL = IPZ-NCWOUN(1)
16101 ITRCL = IT -NWOUND(2)
16102 ITZRCL = ITZ-NCWOUN(2)
16103 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
16104
16105 NSTART = NPOINT(4)
16106 NEND = NHKK
16107
16108 7 CONTINUE
16109 DO 8 I=NSTART,NEND
16110
16111 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDCH(I).LT.KTAUGE)) THEN
16112* select nucleus the cascade starts first (proj. - 1, target - -1)
16113 NCAS = 1
16114* projectile/target with probab. 1/2
16115 IF ((INCMOD.EQ.1).OR.(IDCH(I).GT.0)) THEN
16116 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16117* in the nucleus with highest mass
16118 ELSEIF (INCMOD.EQ.2) THEN
16119 IF (IP.GT.IT) THEN
16120 NCAS = -NCAS
16121 ELSEIF (IP.EQ.IT) THEN
16122 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16123 ENDIF
16124* the nucleus the cascade starts first is requested to be the one
16125* moving in the direction of the secondary
16126 ELSEIF (INCMOD.EQ.3) THEN
16127 NCAS = INT(SIGN(1.0D0,PHKK(3,I)))
16128 ENDIF
16129* check that the selected "nucleus" is not a hadron
16130 IF (((NCAS.EQ. 1).AND.(IP.LE.1)).OR.
16131 & ((NCAS.EQ.-1).AND.(IT.LE.1))) NCAS = -NCAS
16132
16133* treat intranuclear cascade in the nucleus selected first
16134 LCAS = .FALSE.
16135 CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16136 IF (IREJ1.NE.0) GOTO 9998
16137* treat intranuclear cascade in the other nucleus if this isn't a had.
16138 NCAS = -NCAS
16139 IF (((NCAS.EQ. 1).AND.(IP.GT.1)).OR.
16140 & ((NCAS.EQ.-1).AND.(IT.GT.1))) THEN
16141 IF (LCAS) CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16142 IF (IREJ1.NE.0) GOTO 9998
16143 ENDIF
16144
16145 ENDIF
16146
16147 8 CONTINUE
16148 NSTART = NEND+1
16149 NEND = NHKK
16150 IF (NSTART.LE.NEND) GOTO 7
16151
16152 RETURN
16153
16154 9998 CONTINUE
16155* reject this event
16156 IRINC = IRINC+1
16157 IREJ = 1
16158
16159 9999 CONTINUE
16160* intranucl. cascade not treated because of interaction properties or
16161* it is supressed by user or it was rejected or...
16162 LFZC = .FALSE.
16163* reset flag characterizing direction of motion in n-n-cms
16164**sr14-11-95
16165C DO 9990 I=NPOINT(5),NHKK
16166C IF (ISTHKK(I).EQ.-1) ISTHKK(I)=1
16167C9990 CONTINUE
16168
16169 RETURN
16170 END
16171
16172*$ CREATE DT_INUCAS.FOR
16173*COPY DT_INUCAS
16174*
16175*===inucas=============================================================*
16176*
16177 SUBROUTINE DT_INUCAS(IT,IP,IDXCAS,LCAS,NCAS,IREJ)
16178
16179************************************************************************
16180* Formation zone supressed IntraNUclear CAScade for one final state *
16181* particle. *
16182* IT, IP mass numbers of target, projectile nuclei *
16183* IDXCAS index of final state particle in DTEVT1 *
16184* NCAS = 1 intranuclear cascade in projectile *
16185* = -1 intranuclear cascade in target *
16186* This version dated 18.11.95 is written by S. Roesler *
16187************************************************************************
16188
16189 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16190 SAVE
16191 PARAMETER ( LINP = 10 ,
16192 & LOUT = 6 ,
16193 & LDAT = 9 )
16194
16195 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
16196 & OHALF=0.5D0,ONE=1.0D0)
16197 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16198 PARAMETER (TWOPI=6.283185307179586454D+00)
16199 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0)
16200
16201 LOGICAL LABSOR,LCAS
16202
16203* event history
16204 PARAMETER (NMXHKK=200000)
16205 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16206 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16207 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16208* extended event history
16209 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16210 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16211 & IHIST(2,NMXHKK)
16212* final state after inc step
16213 PARAMETER (MAXFSP=10)
16214 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
16215* flags for input different options
16216 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16217 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16218 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16219* particle properties (BAMJET index convention)
16220 CHARACTER*8 ANAME
16221 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
16222 & IICH(210),IIBAR(210),K1(210),K2(210)
16223* Glauber formalism: collision properties
16224 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16225 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16226* nuclear potential
16227 LOGICAL LFERMI
16228 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
16229 & EBINDP(2),EBINDN(2),EPOT(2,210),
16230 & ETACOU(2),ICOUL,LFERMI
16231* parameter for intranuclear cascade
16232 LOGICAL LPAULI
16233 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16234* final state after intranuclear cascade step
16235 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16236* nucleon-nucleon event-generator
16237 CHARACTER*8 CMODEL
16238 LOGICAL LPHOIN
16239 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
16240* statistics: residual nuclei
16241 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
16242 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
16243 & NINCST(2,4),NINCEV(2),
16244 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
16245 & NRESPB(2),NRESCH(2),NRESEV(4),
16246 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
16247 & NEVAFI(2,2)
16248
16249 DIMENSION PCAS(2,5),PTOCAS(2),COSCAS(2,3),VTXCAS(2,4),VTXCA1(2,4),
16250 & PCAS1(5),PNUC(5),BGTA(4),
16251 & BGCAS(2),GACAS(2),BECAS(2),
16252 & RNUC(2),BIMPC(2),VTXDST(3),IDXSPE(2),IDSPE(2),NWTMP(2)
16253
16254 DATA PDIF /0.545D0/
16255
16256 IREJ = 0
16257
16258* update counter
16259 IF (NINCEV(1).NE.NEVHKK) THEN
16260 NINCEV(1) = NEVHKK
16261 NINCEV(2) = NINCEV(2)+1
16262 ENDIF
16263
16264* "BAMJET-index" of this hadron
16265 IDCAS = IDBAM(IDXCAS)
16266 IF (IDT_MCHAD(IDCAS).EQ.-1) RETURN
16267
16268* skip gammas, electrons, etc..
16269 IF (AAM(IDCAS).LT.TINY2) RETURN
16270
16271* Lorentz-trsf. into projectile rest system
16272 IF (IP.GT.1) THEN
16273 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16274 & PHKK(4,IDXCAS),PCAS(1,1),PCAS(1,2),PCAS(1,3),
16275 & PCAS(1,4),IDCAS,-2)
16276 PTOCAS(1) = SQRT(PCAS(1,1)**2+PCAS(1,2)**2+PCAS(1,3)**2)
16277 PCAS(1,5) = (PCAS(1,4)-PTOCAS(1))*(PCAS(1,4)+PTOCAS(1))
16278 IF (PCAS(1,5).GT.ZERO) THEN
16279 PCAS(1,5) = SQRT(PCAS(1,5))
16280 ELSE
16281 PCAS(1,5) = AAM(IDCAS)
16282 ENDIF
16283 DO 20 K=1,3
16284 COSCAS(1,K) = PCAS(1,K)/MAX(PTOCAS(1),TINY10)
16285 20 CONTINUE
16286* Lorentz-parameters
16287* particle rest system --> projectile rest system
16288 BGCAS(1) = PTOCAS(1)/MAX(PCAS(1,5),TINY10)
16289 GACAS(1) = PCAS(1,4)/MAX(PCAS(1,5),TINY10)
16290 BECAS(1) = BGCAS(1)/GACAS(1)
16291 ELSE
16292 DO 21 K=1,5
16293 PCAS(1,K) = ZERO
16294 IF (K.LE.3) COSCAS(1,K) = ZERO
16295 21 CONTINUE
16296 PTOCAS(1) = ZERO
16297 BGCAS(1) = ZERO
16298 GACAS(1) = ZERO
16299 BECAS(1) = ZERO
16300 ENDIF
16301* Lorentz-trsf. into target rest system
16302 IF (IT.GT.1) THEN
16303* LEPTO: final state particles are already in target rest frame
16304C IF (MCGENE.EQ.3) THEN
16305C PCAS(2,1) = PHKK(1,IDXCAS)
16306C PCAS(2,2) = PHKK(2,IDXCAS)
16307C PCAS(2,3) = PHKK(3,IDXCAS)
16308C PCAS(2,4) = PHKK(4,IDXCAS)
16309C ELSE
16310 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16311 & PHKK(4,IDXCAS),PCAS(2,1),PCAS(2,2),PCAS(2,3),
16312 & PCAS(2,4),IDCAS,-3)
16313C ENDIF
16314 PTOCAS(2) = SQRT(PCAS(2,1)**2+PCAS(2,2)**2+PCAS(2,3)**2)
16315 PCAS(2,5) = (PCAS(2,4)-PTOCAS(2))*(PCAS(2,4)+PTOCAS(2))
16316 IF (PCAS(2,5).GT.ZERO) THEN
16317 PCAS(2,5) = SQRT(PCAS(2,5))
16318 ELSE
16319 PCAS(2,5) = AAM(IDCAS)
16320 ENDIF
16321 DO 22 K=1,3
16322 COSCAS(2,K) = PCAS(2,K)/MAX(PTOCAS(2),TINY10)
16323 22 CONTINUE
16324* Lorentz-parameters
16325* particle rest system --> target rest system
16326 BGCAS(2) = PTOCAS(2)/MAX(PCAS(2,5),TINY10)
16327 GACAS(2) = PCAS(2,4)/MAX(PCAS(2,5),TINY10)
16328 BECAS(2) = BGCAS(2)/GACAS(2)
16329 ELSE
16330 DO 23 K=1,5
16331 PCAS(2,K) = ZERO
16332 IF (K.LE.3) COSCAS(2,K) = ZERO
16333 23 CONTINUE
16334 PTOCAS(2) = ZERO
16335 BGCAS(2) = ZERO
16336 GACAS(2) = ZERO
16337 BECAS(2) = ZERO
16338 ENDIF
16339
16340* radii of nuclei (mm) modified by the wall-depth of the Woods-Saxon-
16341* potential (see CONUCL)
16342 RNUC(1) = (RPROJ+4.605D0*PDIF)*FM2MM
16343 RNUC(2) = (RTARG+4.605D0*PDIF)*FM2MM
16344* impact parameter (the projectile moving along z)
16345 BIMPC(1) = ZERO
16346 BIMPC(2) = BIMPAC*FM2MM
16347
16348* get position of initial hadron in projectile/target rest-syst.
16349 DO 3 K=1,4
16350 VTXCAS(1,K) = WHKK(K,IDXCAS)
16351 VTXCAS(2,K) = VHKK(K,IDXCAS)
16352 3 CONTINUE
16353
16354 ICAS = 1
16355 I2 = 2
16356 IF (NCAS.EQ.-1) THEN
16357 ICAS = 2
16358 I2 = 1
16359 ENDIF
16360
16361 IF (PTOCAS(ICAS).LT.TINY10) THEN
16362 WRITE(LOUT,1000) PTOCAS
16363 1000 FORMAT(1X,'INUCAS: warning! zero momentum of initial',
16364 & ' hadron ',/,20X,2E12.4)
16365 GOTO 9999
16366 ENDIF
16367
16368* reset spectator flags
16369 NSPE = 0
16370 IDXSPE(1) = 0
16371 IDXSPE(2) = 0
16372 IDSPE(1) = 0
16373 IDSPE(2) = 0
16374
16375* formation length (in fm)
16376C IF (LCAS) THEN
16377C DEL0 = ZERO
16378C ELSE
16379 DEL0 = TAUFOR*BGCAS(ICAS)
16380 IF (ITAUVE.EQ.1) THEN
16381 AMT = PCAS(ICAS,1)**2+PCAS(ICAS,2)**2+PCAS(ICAS,5)**2
16382 DEL0 = DEL0*PCAS(ICAS,5)**2/AMT
16383 ENDIF
16384C ENDIF
16385* sample from exp(-del/del0)
16386 DEL1 = -DEL0*LOG(MAX(DT_RNDM(DEL0),TINY10))
16387* save formation time
16388 TAUSA1 = DEL1/BGCAS(ICAS)
16389 REL1 = TAUSA1*BGCAS(I2)
16390
16391 DEL = DEL1
16392 TAUSAM = DEL/BGCAS(ICAS)
16393 REL = TAUSAM*BGCAS(I2)
16394
16395* special treatment for negative particles unable to escape
16396* nuclear potential (implemented for ap, pi-, K- only)
16397 LABSOR = .FALSE.
16398 IF ((IICH(IDCAS).EQ.-1).AND.(IDCAS.LT.20)) THEN
16399* threshold energy = nuclear potential + Coulomb potential
16400* (nuclear potential for hadron-nucleus interactions only)
16401 ETHR = AAM(IDCAS)+EPOT(ICAS,IDCAS)+ETACOU(ICAS)
16402 IF (PCAS(ICAS,4).LT.ETHR) THEN
16403 DO 4 K=1,5
16404 PCAS1(K) = PCAS(ICAS,K)
16405 4 CONTINUE
16406* "absorb" negative particle in nucleus
16407 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,0,IREJ1)
16408 IF (IREJ1.NE.0) GOTO 9999
16409 IF (NSPE.GE.1) LABSOR = .TRUE.
16410 ENDIF
16411 ENDIF
16412
16413* if the initial particle has not been absorbed proceed with
16414* "normal" cascade
16415 IF (.NOT.LABSOR) THEN
16416
16417* calculate coordinates of hadron at the end of the formation zone
16418* transport-time and -step in the rest system where this step is
16419* treated
16420 DSTEP = DEL*FM2MM
16421 DTIME = DSTEP/BECAS(ICAS)
16422 RSTEP = REL*FM2MM
16423 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16424 RTIME = RSTEP/BECAS(I2)
16425 ELSE
16426 RTIME = ZERO
16427 ENDIF
16428* save step whithout considering the overlapping region
16429 DSTEP1 = DEL1*FM2MM
16430 DTIME1 = DSTEP1/BECAS(ICAS)
16431 RSTEP1 = REL1*FM2MM
16432 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16433 RTIME1 = RSTEP1/BECAS(I2)
16434 ELSE
16435 RTIME1 = ZERO
16436 ENDIF
16437* transport to the end of the formation zone in this system
16438 DO 5 K=1,3
16439 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+DSTEP1*COSCAS(ICAS,K)
16440 VTXCA1(I2,K) = VTXCAS(I2,K) +RSTEP1*COSCAS(I2,K)
16441 VTXCAS(ICAS,K) = VTXCAS(ICAS,K)+DSTEP*COSCAS(ICAS,K)
16442 VTXCAS(I2,K) = VTXCAS(I2,K) +RSTEP*COSCAS(I2,K)
16443 5 CONTINUE
16444 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME1
16445 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME1
16446 VTXCAS(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16447 VTXCAS(I2,4) = VTXCAS(I2,4) +RTIME
16448
16449 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16450 XCAS = VTXCAS(ICAS,1)
16451 YCAS = VTXCAS(ICAS,2)
16452 XNCLTA = BIMPAC*FM2MM
16453 RNCLPR = (RPROJ+RNUCLE)*FM2MM
16454 RNCLTA = (RTARG+RNUCLE)*FM2MM
16455C RNCLPR = (RPROJ+1.605D0*PDIF)*FM2MM
16456C RNCLTA = (RTARG+1.605D0*PDIF)*FM2MM
16457C RNCLPR = (RPROJ)*FM2MM
16458C RNCLTA = (RTARG)*FM2MM
16459 RCASPR = SQRT( XCAS**2 +YCAS**2)
16460 RCASTA = SQRT((XCAS-XNCLTA)**2+YCAS**2)
16461 IF ((RCASPR.LT.RNCLPR).AND.(RCASTA.LT.RNCLTA)) THEN
16462 IF (IDCH(IDXCAS).EQ.0) NOBAM(IDXCAS) = 3
16463 ENDIF
16464 ENDIF
16465
16466* check if particle is already outside of the corresp. nucleus
16467 RDIST = SQRT((VTXCAS(ICAS,1)-BIMPC(ICAS))**2+
16468 & VTXCAS(ICAS,2)**2+VTXCAS(ICAS,3)**2)
16469 IF (RDIST.GE.RNUC(ICAS)) THEN
16470* here: IDCH is the generation of the final state part. starting
16471* with zero for hadronization products
16472* flag particles of generation 0 being outside the nuclei after
16473* formation time (to be used for excitation energy calculation)
16474 IF ((IDCH(IDXCAS).EQ.0).AND.(NOBAM(IDXCAS).LT.3))
16475 & NOBAM(IDXCAS) = NOBAM(IDXCAS)+ICAS
16476 GOTO 9997
16477 ENDIF
16478 DIST = DLARGE
16479 DISTP = DLARGE
16480 DISTN = DLARGE
16481 IDXP = 0
16482 IDXN = 0
16483
16484* already here: skip particles being outside HADRIN "energy-window"
16485* to avoid wasting of time
16486 NINCHR(ICAS,1) = NINCHR(ICAS,1)+1
16487 IF ((PTOCAS(ICAS).LE.PLOWH).OR.(PTOCAS(ICAS).GE.PHIH)) THEN
16488 NINCHR(ICAS,2) = NINCHR(ICAS,2)+1
16489C WRITE(LOUT,1002) IDXCAS,IDCAS,ICAS,PTOCAS(ICAS),NEVHKK
16490C1002 FORMAT(1X,'INUCAS: warning! momentum of particle with ',
16491C & 'index ',I5,' (id: ',I3,') ',I3,/,11X,'p_tot = ',
16492C & E12.4,', above or below HADRIN-thresholds',I6)
16493 NSPE = 0
16494 GOTO 9997
16495 ENDIF
16496
16497 DO 7 IDXHKK=1,NOINC
16498 I = IDXINC(IDXHKK)
16499* scan DTEVT1 for unwounded or excited nucleons
16500 IF ((ISTHKK(I).EQ.12+ICAS).OR.(ISTHKK(I).EQ.14+ICAS)) THEN
16501 DO 8 K=1,3
16502 IF (ICAS.EQ.1) THEN
16503 VTXDST(K) = WHKK(K,I)-VTXCAS(1,K)
16504 ELSEIF (ICAS.EQ.2) THEN
16505 VTXDST(K) = VHKK(K,I)-VTXCAS(2,K)
16506 ENDIF
16507 8 CONTINUE
16508 POSNUC = VTXDST(1)*COSCAS(ICAS,1)+
16509 & VTXDST(2)*COSCAS(ICAS,2)+
16510 & VTXDST(3)*COSCAS(ICAS,3)
16511* check if nucleon is situated in forward direction
16512 IF (POSNUC.GT.ZERO) THEN
16513* distance between hadron and this nucleon
16514 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16515 & VTXDST(3)**2)
16516* impact parameter
16517 BIMNU2 = DISTNU**2-POSNUC**2
16518 IF (BIMNU2.LT.ZERO) THEN
16519 WRITE(LOUT,1001) DISTNU,POSNUC,BIMNU2
16520 1001 FORMAT(1X,'INUCAS: warning! inconsistent impact',
16521 & ' parameter ',/,20X,3E12.4)
16522 GOTO 7
16523 ENDIF
16524 BIMNU = SQRT(BIMNU2)
16525* maximum impact parameter to have interaction
16526 IDNUC = IDT_ICIHAD(IDHKK(I))
16527 IDNUC1 = IDT_MCHAD(IDNUC)
16528 IDCAS1 = IDT_MCHAD(IDCAS)
16529 DO 19 K=1,5
16530 PCAS1(K) = PCAS(ICAS,K)
16531 PNUC(K) = PHKK(K,I)
16532 19 CONTINUE
16533* Lorentz-parameter for trafo into rest-system of target
16534 DO 18 K=1,4
16535 BGTA(K) = PNUC(K)/MAX(PNUC(5),TINY10)
16536 18 CONTINUE
16537* transformation of projectile into rest-system of target
16538 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
16539 & PCAS1(1),PCAS1(2),PCAS1(3),PCAS1(4),
16540 & PPTOT,PX,PY,PZ,PE)
16541**
16542C CALL DT_SIHNIN(IDCAS1,IDNUC1,PPTOT,SIGIN)
16543C CALL DT_SIHNEL(IDCAS1,IDNUC1,PPTOT,SIGEL)
16544 DUMZER = ZERO
16545 CALL DT_XSHN(IDCAS1,IDNUC1,PPTOT,DUMZER,SIGTOT,SIGEL)
16546 CALL DT_SIHNAB(IDCAS1,IDNUC1,PPTOT,SIGAB)
16547 IF (((IDCAS1.EQ.13).OR.(IDCAS1.EQ.14)).AND.
16548 & (PPTOT.LT.0.15D0)) SIGEL = SIGEL/2.0D0
16549 SIGIN = SIGTOT-SIGEL-SIGAB
16550C SIGTOT = SIGIN+SIGEL+SIGAB
16551**
16552 BIMMAX = SQRT(SIGTOT/(5.0D0*TWOPI))*FM2MM
16553* check if interaction is possible
16554 IF (BIMNU.LE.BIMMAX) THEN
16555* get nucleon with smallest distance and kind of interaction
16556* (elastic/inelastic)
16557 IF (DISTNU.LT.DIST) THEN
16558 DIST = DISTNU
16559 BINT = BIMNU
16560 IF (IDNUC.NE.IDSPE(1)) THEN
16561 IDSPE(2) = IDSPE(1)
16562 IDXSPE(2) = IDXSPE(1)
16563 IDSPE(1) = IDNUC
16564 ENDIF
16565 IDXSPE(1) = I
16566 NSPE = 1
16567**sr
16568 SELA = SIGEL
16569 SABS = SIGAB
16570 STOT = SIGTOT
16571C IF ((IDCAS.EQ.2).OR.(IDCAS.EQ.9)) THEN
16572C SELA = SIGEL
16573C STOT = SIGIN+SIGEL
16574C ELSE
16575C SELA = SIGEL+0.75D0*SIGIN
16576C STOT = 0.25D0*SIGIN+SELA
16577C ENDIF
16578**
16579 ENDIF
16580 ENDIf
16581 ENDIF
16582 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16583 & VTXDST(3)**2)
16584 IDNUC = IDT_ICIHAD(IDHKK(I))
16585 IF (IDNUC.EQ.1) THEN
16586 IF (DISTNU.LT.DISTP) THEN
16587 DISTP = DISTNU
16588 IDXP = I
16589 POSP = POSNUC
16590 ENDIF
16591 ELSEIF (IDNUC.EQ.8) THEN
16592 IF (DISTNU.LT.DISTN) THEN
16593 DISTN = DISTNU
16594 IDXN = I
16595 POSN = POSNUC
16596 ENDIF
16597 ENDIF
16598 ENDIF
16599 7 CONTINUE
16600
16601* there is no nucleon for a secondary interaction
16602 IF (NSPE.EQ.0) GOTO 9997
16603
16604C IF ((IDCAS.EQ.13).AND.((PCAS(ICAS,4)-PCAS(ICAS,5)).LT.0.1D0))
16605C & WRITE(LOUT,*) STOT,SELA,SABS,IDXSPE
16606 IF (IDXSPE(2).EQ.0) THEN
16607 IF ((IDSPE(1).EQ.1).AND.(IDXN.GT.0)) THEN
16608C DO 80 K=1,3
16609C IF (ICAS.EQ.1) THEN
16610C VTXDST(K) = WHKK(K,IDXN)-WHKK(K,IDXSPE(1))
16611C ELSEIF (ICAS.EQ.2) THEN
16612C VTXDST(K) = VHKK(K,IDXN)-VHKK(K,IDXSPE(1))
16613C ENDIF
16614C 80 CONTINUE
16615C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16616C & VTXDST(3)**2)
16617C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSN.GT.ZERO)) THEN
16618 IDXSPE(2) = IDXN
16619 IDSPE(2) = 8
16620C ELSE
16621C STOT = STOT-SABS
16622C SABS = ZERO
16623C ENDIF
16624 ELSEIF ((IDSPE(1).EQ.8).AND.(IDXP.GT.0)) THEN
16625C DO 81 K=1,3
16626C IF (ICAS.EQ.1) THEN
16627C VTXDST(K) = WHKK(K,IDXP)-WHKK(K,IDXSPE(1))
16628C ELSEIF (ICAS.EQ.2) THEN
16629C VTXDST(K) = VHKK(K,IDXP)-VHKK(K,IDXSPE(1))
16630C ENDIF
16631C 81 CONTINUE
16632C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16633C & VTXDST(3)**2)
16634C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSP.GT.ZERO)) THEN
16635 IDXSPE(2) = IDXP
16636 IDSPE(2) = 1
16637C ELSE
16638C STOT = STOT-SABS
16639C SABS = ZERO
16640C ENDIF
16641 ELSE
16642 STOT = STOT-SABS
16643 SABS = ZERO
16644 ENDIF
16645 ENDIF
16646 RR = DT_RNDM(DIST)
16647 IF (RR.LT.SELA/STOT) THEN
16648 IPROC = 2
16649 ELSEIF ((RR.GE.SELA/STOT).AND.(RR.LT.(SELA+SABS)/STOT)) THEN
16650 IPROC = 3
16651 ELSE
16652 IPROC = 1
16653 ENDIF
16654
16655 DO 9 K=1,5
16656 PCAS1(K) = PCAS(ICAS,K)
16657 PNUC(K) = PHKK(K,IDXSPE(1))
16658 9 CONTINUE
16659 IF (IPROC.EQ.3) THEN
16660* 2-nucleon absorption of pion
16661 NSPE = 2
16662 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,1,IREJ1)
16663 IF (IREJ1.NE.0) GOTO 9999
16664 IF (NSPE.GE.1) LABSOR = .TRUE.
16665 ELSE
16666* sample secondary interaction
16667 IDNUC = IDBAM(IDXSPE(1))
16668 CALL DT_HADRIN(IDCAS,PCAS1,IDNUC,PNUC,IPROC,IREJ1)
16669 IF (IREJ1.EQ.1) GOTO 9999
16670 IF (IREJ1.GT.1) GOTO 9998
16671 ENDIF
16672 ENDIF
16673
16674* update arrays to include Pauli-principle
16675 DO 10 I=1,NSPE
16676 IF (NWOUND(ICAS).LE.299) THEN
16677 NWOUND(ICAS) = NWOUND(ICAS)+1
16678 EWOUND(ICAS,NWOUND(ICAS)) = PHKK(4,IDXSPE(I))
16679 ENDIF
16680 10 CONTINUE
16681
16682* dump initial hadron for energy-momentum conservation check
16683 IF (LEMCCK)
16684 & CALL DT_EVTEMC(PCAS(ICAS,1),PCAS(ICAS,2),PCAS(ICAS,3),
16685 & PCAS(ICAS,4),1,IDUM,IDUM)
16686
16687* dump final state particles into DTEVT1
16688
16689* check if Pauli-principle is fulfilled
16690 NPAULI = 0
16691 NWTMP(1) = NWOUND(1)
16692 NWTMP(2) = NWOUND(2)
16693 DO 111 I=1,NFSP
16694 NPAULI = 0
16695 J1 = 2
16696 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16697 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16698 DO 117 J=1,J1
16699 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 117
16700 IF (J.EQ.1) THEN
16701 IDX = ICAS
16702 PE = PFSP(4,I)
16703 ELSE
16704 IDX = I2
16705 MODE = 1
16706 IF (IDX.EQ.1) MODE = -1
16707 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,MODE)
16708 ENDIF
16709* first check if cascade step is forbidden due to Pauli-principle
16710* (in case of absorpion this step is forced)
16711 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16712 & (IDFSP(I).EQ.8))) THEN
16713* get nuclear potential barrier
16714 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16715 IF (IDFSP(I).EQ.1) THEN
16716 POTLOW = POT-EBINDP(IDX)
16717 ELSE
16718 POTLOW = POT-EBINDN(IDX)
16719 ENDIF
16720* final state particle not able to escape nucleus
16721 IF (PE.LE.POTLOW) THEN
16722* check if there are wounded nucleons
16723 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16724 & EWOUND(IDX,NWOUND(IDX)))) THEN
16725 NPAULI = NPAULI+1
16726 NWOUND(IDX) = NWOUND(IDX)-1
16727 ELSE
16728* interaction prohibited by Pauli-principle
16729 NWOUND(1) = NWTMP(1)
16730 NWOUND(2) = NWTMP(2)
16731 GOTO 9997
16732 ENDIF
16733 ENDIF
16734 ENDIF
16735 117 CONTINUE
16736 111 CONTINUE
16737
16738 NPAULI = 0
16739 NWOUND(1) = NWTMP(1)
16740 NWOUND(2) = NWTMP(2)
16741
16742 DO 11 I=1,NFSP
16743
16744 IST = ISTHKK(IDXCAS)
16745
16746 NPAULI = 0
16747 J1 = 2
16748 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16749 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16750 DO 17 J=1,J1
16751 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 17
16752 IDX = ICAS
16753 PE = PFSP(4,I)
16754 IF (J.EQ.2) THEN
16755 IDX = I2
16756 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,NCAS)
16757 ENDIF
16758* first check if cascade step is forbidden due to Pauli-principle
16759* (in case of absorpion this step is forced)
16760 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16761 & (IDFSP(I).EQ.8))) THEN
16762* get nuclear potential barrier
16763 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16764 IF (IDFSP(I).EQ.1) THEN
16765 POTLOW = POT-EBINDP(IDX)
16766 ELSE
16767 POTLOW = POT-EBINDN(IDX)
16768 ENDIF
16769* final state particle not able to escape nucleus
16770 IF (PE.LE.POTLOW) THEN
16771* check if there are wounded nucleons
16772 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16773 & EWOUND(IDX,NWOUND(IDX)))) THEN
16774 NWOUND(IDX) = NWOUND(IDX)-1
16775 NPAULI = NPAULI+1
16776 IST = 14+IDX
16777 ELSE
16778* interaction prohibited by Pauli-principle
16779 NWOUND(1) = NWTMP(1)
16780 NWOUND(2) = NWTMP(2)
16781 GOTO 9997
16782 ENDIF
16783**sr
16784c ELSEIF (PE.LE.POT) THEN
16785cC ELSEIF ((PE.LE.POT).AND.(NWOUND(IDX).GE.1)) THEN
16786cC NWOUND(IDX) = NWOUND(IDX)-1
16787c**
16788c NPAULI = NPAULI+1
16789c IST = 14+IDX
16790 ENDIF
16791 ENDIF
16792 17 CONTINUE
16793
16794* dump final state particles for energy-momentum conservation check
16795 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),-PFSP(3,I),
16796 & -PFSP(4,I),2,IDUM,IDUM)
16797
16798 PX = PFSP(1,I)
16799 PY = PFSP(2,I)
16800 PZ = PFSP(3,I)
16801 PE = PFSP(4,I)
16802 IF (ABS(IST).EQ.1) THEN
16803* transform particles back into n-n cms
16804* LEPTO: leave final state particles in target rest frame
16805C IF (MCGENE.EQ.3) THEN
16806C PFSP(1,I) = PX
16807C PFSP(2,I) = PY
16808C PFSP(3,I) = PZ
16809C PFSP(4,I) = PE
16810C ELSE
16811 IMODE = ICAS+1
16812 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16813 & PFSP(4,I),IDFSP(I),IMODE)
16814C ENDIF
16815 ELSEIF ((ICAS.EQ.2).AND.(IST.EQ.15)) THEN
16816* target cascade but fsp got stuck in proj. --> transform it into
16817* proj. rest system
16818 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16819 & PFSP(4,I),IDFSP(I),-1)
16820 ELSEIF ((ICAS.EQ.1).AND.(IST.EQ.16)) THEN
16821* proj. cascade but fsp got stuck in target --> transform it into
16822* target rest system
16823 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16824 & PFSP(4,I),IDFSP(I),1)
16825 ENDIF
16826
16827* dump final state particles into DTEVT1
16828 IGEN = IDCH(IDXCAS)+1
16829 ID = IDT_IPDGHA(IDFSP(I))
16830 IXR = 0
16831 IF (LABSOR) IXR = 99
16832 CALL DT_EVTPUT(IST,ID,IDXCAS,IDXSPE(1),PFSP(1,I),
16833 & PFSP(2,I),PFSP(3,I),PFSP(4,I),0,IXR,IGEN)
16834
16835* update the counter for particles which got stuck inside the nucleus
16836 IF ((IST.EQ.15).OR.(IST.EQ.16)) THEN
16837 NOINC = NOINC+1
16838 IDXINC(NOINC) = NHKK
16839 ENDIF
16840 IF (LABSOR) THEN
16841* in case of absorption the spatial treatment is an approximate
16842* solution anyway (the positions of the nucleons which "absorb" the
16843* cascade particle are not taken into consideration) therefore the
16844* particles are produced at the position of the cascade particle
16845 DO 12 K=1,4
16846 WHKK(K,NHKK) = WHKK(K,IDXCAS)
16847 VHKK(K,NHKK) = VHKK(K,IDXCAS)
16848 12 CONTINUE
16849 ELSE
16850* DDISTL - distance the cascade particle moves to the intera. point
16851* (the position where impact-parameter = distance to the interacting
16852* nucleon), DIST - distance to the interacting nucleon at the time of
16853* formation of the cascade particle, BINT - impact-parameter of this
16854* cascade-interaction
16855 DDISTL = SQRT(DIST**2-BINT**2)
16856 DTIME = DDISTL/BECAS(ICAS)
16857 DTIMEL = DDISTL/BGCAS(ICAS)
16858 RDISTL = DTIMEL*BGCAS(I2)
16859 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16860 RTIME = RDISTL/BECAS(I2)
16861 ELSE
16862 RTIME = ZERO
16863 ENDIF
16864* RDISTL, RTIME are this step and time in the rest system of the other
16865* nucleus
16866 DO 13 K=1,3
16867 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+COSCAS(ICAS,K)*DDISTL
16868 VTXCA1(I2,K) = VTXCAS(I2,K) +COSCAS(I2,K) *RDISTL
16869 13 CONTINUE
16870 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16871 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME
16872* position of particle production is half the impact-parameter to
16873* the interacting nucleon
16874 DO 14 K=1,3
16875 WHKK(K,NHKK) = OHALF*(VTXCA1(1,K)+WHKK(K,IDXSPE(1)))
16876 VHKK(K,NHKK) = OHALF*(VTXCA1(2,K)+VHKK(K,IDXSPE(1)))
16877 14 CONTINUE
16878* time of production of secondary = time of interaction
16879 WHKK(4,NHKK) = VTXCA1(1,4)
16880 VHKK(4,NHKK) = VTXCA1(2,4)
16881 ENDIF
16882
16883 11 CONTINUE
16884
16885* modify status and position of cascade particle (the latter for
16886* statistics reasons only)
16887 ISTHKK(IDXCAS) = 2
16888 IF (LABSOR) ISTHKK(IDXCAS) = 19
16889 IF (.NOT.LABSOR) THEN
16890 DO 15 K=1,4
16891 WHKK(K,IDXCAS) = VTXCA1(1,K)
16892 VHKK(K,IDXCAS) = VTXCA1(2,K)
16893 15 CONTINUE
16894 ENDIF
16895
16896 DO 16 I=1,NSPE
16897 IS = IDXSPE(I)
16898* dump interacting nucleons for energy-momentum conservation check
16899 IF (LEMCCK)
16900 & CALL DT_EVTEMC(PHKK(1,IS),PHKK(2,IS),PHKK(3,IS),PHKK(4,IS),
16901 & 2,IDUM,IDUM)
16902* modify entry for interacting nucleons
16903 IF (ISTHKK(IS).EQ.12+ICAS) ISTHKK(IS)=16+ICAS
16904 IF (ISTHKK(IS).EQ.14+ICAS) ISTHKK(IS)=2
16905 IF (I.GE.2) THEN
16906 JDAHKK(1,IS) = JDAHKK(1,IDXSPE(1))
16907 JDAHKK(2,IS) = JDAHKK(2,IDXSPE(1))
16908 ENDIF
16909 16 CONTINUE
16910
16911* check energy-momentum conservation
16912 IF (LEMCCK) THEN
16913 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,500,IREJ1)
16914 IF (IREJ1.NE.0) GOTO 9999
16915 ENDIF
16916
16917* update counter
16918 IF (LABSOR) THEN
16919 NINCCO(ICAS,1) = NINCCO(ICAS,1)+1
16920 ELSE
16921 IF (IPROC.EQ.1) NINCCO(ICAS,2) = NINCCO(ICAS,2)+1
16922 IF (IPROC.EQ.2) NINCCO(ICAS,3) = NINCCO(ICAS,3)+1
16923 ENDIF
16924
16925 RETURN
16926
16927 9997 CONTINUE
16928 9998 CONTINUE
16929* transport-step but no cascade step due to configuration (i.e. there
16930* is no nucleon for interaction etc.)
16931 IF (LCAS) THEN
16932 DO 100 K=1,4
16933C WHKK(K,IDXCAS) = VTXCAS(1,K)
16934C VHKK(K,IDXCAS) = VTXCAS(2,K)
16935 WHKK(K,IDXCAS) = VTXCA1(1,K)
16936 VHKK(K,IDXCAS) = VTXCA1(2,K)
16937 100 CONTINUE
16938 ENDIF
16939
16940C9998 CONTINUE
16941* no cascade-step because of configuration
16942* (i.e. hadron outside nucleus etc.)
16943 LCAS = .TRUE.
16944 RETURN
16945
16946 9999 CONTINUE
16947* rejection
16948 IREJ = 1
16949 RETURN
16950 END
16951
16952*$ CREATE DT_ABSORP.FOR
16953*COPY DT_ABSORP
16954*
16955*===absorp=============================================================*
16956*
16957 SUBROUTINE DT_ABSORP(IDCAS,PCAS,NCAS,NSPE,IDSPE,IDXSPE,MODE,IREJ)
16958
16959************************************************************************
16960* Two-nucleon absorption of antiprotons, pi-, and K-. *
16961* Antiproton absorption is handled by HADRIN. *
16962* The following channels for meson-absorption are considered: *
16963* pi- + p + p ---> n + p *
16964* pi- + p + n ---> n + n *
16965* K- + p + p ---> sigma+ + n / Lam + p / sigma0 + p *
16966* K- + p + n ---> sigma- + n / Lam + n / sigma0 + n *
16967* K- + p + p ---> sigma- + n *
16968* IDCAS, PCAS identity, momentum of particle to be absorbed *
16969* NCAS = 1 intranuclear cascade in projectile *
16970* = -1 intranuclear cascade in target *
16971* NSPE number of spectator nucleons involved *
16972* IDXSPE(2) DTEVT1-indices of spectator nucleons involved *
16973* Revised version of the original STOPIK written by HJM and J. Ranft. *
16974* This version dated 24.02.95 is written by S. Roesler *
16975************************************************************************
16976
16977 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16978 SAVE
16979 PARAMETER ( LINP = 10 ,
16980 & LOUT = 6 ,
16981 & LDAT = 9 )
16982 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,ONE=1.0D0,
16983 & ONETHI=0.3333D0,TWOTHI=0.6666D0)
16984
16985* event history
16986 PARAMETER (NMXHKK=200000)
16987 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16988 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16989 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16990* extended event history
16991 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16992 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16993 & IHIST(2,NMXHKK)
16994* flags for input different options
16995 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16996 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16997 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16998* final state after inc step
16999 PARAMETER (MAXFSP=10)
17000 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17001* particle properties (BAMJET index convention)
17002 CHARACTER*8 ANAME
17003 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17004 & IICH(210),IIBAR(210),K1(210),K2(210)
17005
17006 DIMENSION PCAS(5),IDXSPE(2),IDSPE(2),PSPE(2,5),PSPE1(5),
17007 & PTOT3P(4),BG3P(4),
17008 & ECMF(2),PCMF(2),CODF(2),COFF(2),SIFF(2)
17009
17010 IREJ = 0
17011 NFSP = 0
17012
17013* skip particles others than ap, pi-, K- for mode=0
17014 IF ((MODE.EQ.0).AND.
17015 & (IDCAS.NE.2).AND.(IDCAS.NE.14).AND.(IDCAS.NE.16)) RETURN
17016* skip particles others than pions for mode=1
17017* (2-nucleon absorption in intranuclear cascade)
17018 IF ((MODE.EQ.1).AND.
17019 & (IDCAS.NE.13).AND.(IDCAS.NE.14).AND.(IDCAS.NE.23)) RETURN
17020
17021 NUCAS = NCAS
17022 IF (NUCAS.EQ.-1) NUCAS = 2
17023
17024 IF (MODE.EQ.0) THEN
17025* scan spectator nucleons for nucleons being able to "absorb"
17026 NSPE = 0
17027 IDXSPE(1) = 0
17028 IDXSPE(2) = 0
17029 DO 1 I=1,NHKK
17030 IF ((ISTHKK(I).EQ.12+NUCAS).OR.(ISTHKK(I).EQ.14+NUCAS)) THEN
17031 NSPE = NSPE+1
17032 IDXSPE(NSPE) = I
17033 IDSPE(NSPE) = IDBAM(I)
17034 IF ((NSPE.EQ.1).AND.(IDCAS.EQ.2)) GOTO 2
17035 IF (NSPE.EQ.2) THEN
17036 IF ((IDCAS.EQ.14).AND.(IDSPE(1).EQ.8).AND.
17037 & (IDSPE(2).EQ.8)) THEN
17038* there is no pi-+n+n channel
17039 NSPE = 1
17040 GOTO 1
17041 ELSE
17042 GOTO 2
17043 ENDIF
17044 ENDIF
17045 ENDIF
17046 1 CONTINUE
17047
17048 2 CONTINUE
17049 ENDIF
17050* transform excited projectile nucleons (status=15) into proj. rest s.
17051 DO 3 I=1,NSPE
17052 DO 4 K=1,5
17053 PSPE(I,K) = PHKK(K,IDXSPE(I))
17054 4 CONTINUE
17055 3 CONTINUE
17056
17057* antiproton absorption
17058 IF ((IDCAS.EQ.2).AND.(NSPE.GE.1)) THEN
17059 DO 5 K=1,5
17060 PSPE1(K) = PSPE(1,K)
17061 5 CONTINUE
17062 CALL DT_HADRIN(IDCAS,PCAS,IDSPE(1),PSPE1,1,IREJ1)
17063 IF (IREJ1.NE.0) GOTO 9999
17064
17065* meson absorption
17066 ELSEIF (((IDCAS.EQ.13).OR.(IDCAS.EQ.14).OR.(IDCAS.EQ.23)
17067 & .OR.(IDCAS.EQ.16)).AND.(NSPE.GE.2)) THEN
17068 IF (IDCAS.EQ.14) THEN
17069* pi- absorption
17070 IDFSP(1) = 8
17071 IDFSP(2) = 8
17072 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) IDFSP(2) = 1
17073 ELSEIF (IDCAS.EQ.13) THEN
17074* pi+ absorption
17075 IDFSP(1) = 1
17076 IDFSP(2) = 1
17077 IF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) IDFSP(2) = 8
17078 ELSEIF (IDCAS.EQ.23) THEN
17079* pi0 absorption
17080 IDFSP(1) = IDSPE(1)
17081 IDFSP(2) = IDSPE(2)
17082 ELSEIF (IDCAS.EQ.16) THEN
17083* K- absorption
17084 R = DT_RNDM(PCAS)
17085 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) THEN
17086 IF (R.LT.ONETHI) THEN
17087 IDFSP(1) = 21
17088 IDFSP(2) = 8
17089 ELSEIF (R.LT.TWOTHI) THEN
17090 IDFSP(1) = 17
17091 IDFSP(2) = 1
17092 ELSE
17093 IDFSP(1) = 22
17094 IDFSP(2) = 1
17095 ENDIF
17096 ELSEIF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) THEN
17097 IDFSP(1) = 20
17098 IDFSP(2) = 8
17099 ELSE
17100 IF (R.LT.ONETHI) THEN
17101 IDFSP(1) = 20
17102 IDFSP(2) = 1
17103 ELSEIF (R.LT.TWOTHI) THEN
17104 IDFSP(1) = 17
17105 IDFSP(2) = 8
17106 ELSE
17107 IDFSP(1) = 22
17108 IDFSP(2) = 8
17109 ENDIF
17110 ENDIF
17111 ENDIF
17112* dump initial particles for energy-momentum cons. check
17113 IF (LEMCCK) THEN
17114 CALL DT_EVTEMC(PCAS(1),PCAS(2),PCAS(3),PCAS(4),1,IDUM,IDUM)
17115 CALL DT_EVTEMC(PSPE(1,1),PSPE(1,2),PSPE(1,3),PSPE(1,4),2,
17116 & IDUM,IDUM)
17117 CALL DT_EVTEMC(PSPE(2,1),PSPE(2,2),PSPE(2,3),PSPE(2,4),2,
17118 & IDUM,IDUM)
17119 ENDIF
17120* get Lorentz-parameter of 3 particle initial state
17121 DO 6 K=1,4
17122 PTOT3P(K) = PCAS(K)+PSPE(1,K)+PSPE(2,K)
17123 6 CONTINUE
17124 P3P = SQRT(PTOT3P(1)**2+PTOT3P(2)**2+PTOT3P(3)**2)
17125 AM3P = SQRT( (PTOT3P(4)-P3P)*(PTOT3P(4)+P3P) )
17126 DO 7 K=1,4
17127 BG3P(K) = PTOT3P(K)/MAX(AM3P,TINY10)
17128 7 CONTINUE
17129* 2-particle decay of the 3-particle compound system
17130 CALL DT_DTWOPD(AM3P,ECMF(1),ECMF(2),PCMF(1),PCMF(2),
17131 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
17132 & AAM(IDFSP(1)),AAM(IDFSP(2)))
17133 DO 8 I=1,2
17134 SDF = SQRT((ONE-CODF(I))*(ONE+CODF(I)))
17135 PX = PCMF(I)*COFF(I)*SDF
17136 PY = PCMF(I)*SIFF(I)*SDF
17137 PZ = PCMF(I)*CODF(I)
17138 CALL DT_DALTRA(BG3P(4),BG3P(1),BG3P(2),BG3P(3),PX,PY,PZ,
17139 & ECMF(I),PTOFSP,PFSP(1,I),PFSP(2,I),PFSP(3,I),
17140 & PFSP(4,I))
17141 PFSP(5,I) = SQRT( (PFSP(4,I)-PTOFSP)*(PFSP(4,I)+PTOFSP) )
17142* check consistency of kinematics
17143 IF (ABS(AAM(IDFSP(I))-PFSP(5,I)).GT.TINY5) THEN
17144 WRITE(LOUT,1001) IDFSP(I),AAM(IDFSP(I)),PFSP(5,I)
17145 1001 FORMAT(1X,'ABSORP: warning! inconsistent',
17146 & ' tree-particle kinematics',/,20X,'id: ',I3,
17147 & ' AAM = ',E10.4,' MFSP = ',E10.4)
17148 ENDIF
17149* dump final state particles for energy-momentum cons. check
17150 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17151 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17152 8 CONTINUE
17153 NFSP = 2
17154 IF (LEMCCK) THEN
17155 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,100,IREJ1)
17156 IF (IREJ1.NE.0) THEN
17157 WRITE(LOUT,*)'ABSORB: EMC ',AAM(IDFSP(1)),AAM(IDFSP(2)),
17158 & AM3P
17159 GOTO 9999
17160 ENDIF
17161 ENDIF
17162 ELSE
17163 IF (IOULEV(3).GT.0) WRITE(LOUT,1000) IDCAS,NSPE
17164 1000 FORMAT(1X,'ABSORP: warning! absorption for particle ',I3,
17165 & ' impossible',/,20X,'too few spectators (',I2,')')
17166 NSPE = 0
17167 ENDIF
17168
17169 RETURN
17170
17171 9999 CONTINUE
17172 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in ABSORP'
17173 IREJ = 1
17174 RETURN
17175 END
17176
17177*$ CREATE DT_HADRIN.FOR
17178*COPY DT_HADRIN
17179*
17180*===hadrin=============================================================*
17181*
17182 SUBROUTINE DT_HADRIN(IDPR,PPR,IDTA,PTA,MODE,IREJ)
17183
17184************************************************************************
17185* Interface to the HADRIN-routines for inelastic and elastic *
17186* scattering. *
17187* IDPR,PPR(5) identity, momentum of projectile *
17188* IDTA,PTA(5) identity, momentum of target *
17189* MODE = 1 inelastic interaction *
17190* = 2 elastic interaction *
17191* Revised version of the original FHAD. *
17192* This version dated 27.10.95 is written by S. Roesler *
17193************************************************************************
17194
17195 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17196 SAVE
17197 PARAMETER ( LINP = 10 ,
17198 & LOUT = 6 ,
17199 & LDAT = 9 )
17200 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,
17201 & TINY2=1.0D-2,TINY1=1.0D-1,ONE=1.0D0)
17202
17203 LOGICAL LCORR,LMSSG
17204
17205* flags for input different options
17206 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17207 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17208 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17209* final state after inc step
17210 PARAMETER (MAXFSP=10)
17211 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17212* particle properties (BAMJET index convention)
17213 CHARACTER*8 ANAME
17214 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17215 & IICH(210),IIBAR(210),K1(210),K2(210)
17216* output-common for DHADRI/ELHAIN
17217* final state from HADRIN interaction
17218 PARAMETER (MAXFIN=10)
17219 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
17220 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
17221
17222 DIMENSION PPR(5),PPR1(5),PTA(5),BGTA(4),
17223 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4),IMCORR(2)
17224
17225 DATA LMSSG /.TRUE./
17226
17227 IREJ = 0
17228 NFSP = 0
17229 KCORR = 0
17230 IMCORR(1) = 0
17231 IMCORR(2) = 0
17232 LCORR = .FALSE.
17233
17234* dump initial particles for energy-momentum cons. check
17235 IF (LEMCCK) THEN
17236 CALL DT_EVTEMC(PPR(1),PPR(2),PPR(3),PPR(4),1,IDUM,IDUM)
17237 CALL DT_EVTEMC(PTA(1),PTA(2),PTA(3),PTA(4),2,IDUM,IDUM)
17238 ENDIF
17239
17240 AMP2 = PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2
17241 AMT2 = PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2
17242 IF ((AMP2.LT.ZERO).OR.(AMT2.LT.ZERO).OR.
17243 & (ABS(AMP2-AAM(IDPR)**2).GT.TINY5).OR.
17244 & (ABS(AMT2-AAM(IDTA)**2).GT.TINY5)) THEN
17245 IF (LMSSG.AND.(IOULEV(3).GT.0))
17246 & WRITE(LOUT,1000) AMP2,AAM(IDPR)**2,AMT2,AAM(IDTA)**2
17247 1000 FORMAT(1X,'HADRIN: warning! inconsistent projectile/target',
17248 & ' mass',/,20X,'AMP2 = ',E12.4,', AAM(IDPR)**2 = ',
17249 & E12.4,/,20X,'AMT2 = ',E12.4,', AAM(IDTA)**2 = ',E12.4)
17250 LMSSG = .FALSE.
17251 LCORR = .TRUE.
17252 ENDIF
17253
17254* convert initial state particles into particles which can be
17255* handled by HADRIN
17256 IDHPR = IDPR
17257 IDHTA = IDTA
17258 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111).OR.LCORR) THEN
17259 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111)) IDHPR = 1
17260 DO 1 K=1,4
17261 P1IN(K) = PPR(K)
17262 P2IN(K) = PTA(K)
17263 1 CONTINUE
17264 XM1 = AAM(IDHPR)
17265 XM2 = AAM(IDHTA)
17266 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17267 IF (IREJ1.GT.0) THEN
17268 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17269 GOTO 9999
17270 ENDIF
17271 DO 2 K=1,4
17272 PPR(K) = P1OUT(K)
17273 PTA(K) = P2OUT(K)
17274 2 CONTINUE
17275 PPR(5) = SQRT(PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2)
17276 PTA(5) = SQRT(PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2)
17277 ENDIF
17278
17279* Lorentz-parameter for trafo into rest-system of target
17280 DO 3 K=1,4
17281 BGTA(K) = PTA(K)/PTA(5)
17282 3 CONTINUE
17283* transformation of projectile into rest-system of target
17284 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),PPR(1),PPR(2),
17285 & PPR(3),PPR(4),PPRTO1,PPR1(1),PPR1(2),PPR1(3),
17286 & PPR1(4))
17287
17288* direction cosines of projectile in target rest system
17289 CX = PPR1(1)/PPRTO1
17290 CY = PPR1(2)/PPRTO1
17291 CZ = PPR1(3)/PPRTO1
17292
17293* sample inelastic interaction
17294 IF (MODE.EQ.1) THEN
17295 CALL DT_DHADRI(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA)
17296 IF (IRH.EQ.1) GOTO 9998
17297* sample elastic interaction
17298 ELSEIF (MODE.EQ.2) THEN
17299 CALL DT_ELHAIN(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA,IREJ1)
17300 IF (IREJ1.NE.0) THEN
17301 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in HADRIN'
17302 GOTO 9999
17303 ENDIF
17304 IF (IRH.EQ.1) GOTO 9998
17305 ELSE
17306 WRITE(LOUT,1001) MODE,INTHAD
17307 1001 FORMAT(1X,'HADRIN: warning! inconsistent interaction mode',
17308 & I4,' (INTHAD =',I4,')')
17309 GOTO 9999
17310 ENDIF
17311
17312* transform final state particles back into Lab.
17313 DO 4 I=1,IRH
17314 NFSP = NFSP+1
17315 PX = CXRH(I)*PLRH(I)
17316 PY = CYRH(I)*PLRH(I)
17317 PZ = CZRH(I)*PLRH(I)
17318 CALL DT_DALTRA(BGTA(4),BGTA(1),BGTA(2),BGTA(3),
17319 & PX,PY,PZ,ELRH(I),PTOFSP,PFSP(1,NFSP),
17320 & PFSP(2,NFSP),PFSP(3,NFSP),PFSP(4,NFSP))
17321 IDFSP(NFSP) = ITRH(I)
17322 AMFSP2 = PFSP(4,NFSP)**2-PFSP(1,NFSP)**2-PFSP(2,NFSP)**2-
17323 & PFSP(3,NFSP)**2
17324 IF (AMFSP2.LT.-TINY3) THEN
17325 WRITE(LOUT,1002) IDFSP(NFSP),PFSP(1,NFSP),PFSP(2,NFSP),
17326 & PFSP(3,NFSP),PFSP(4,NFSP),AMFSP2
17327 1002 FORMAT(1X,'HADRIN: warning! final state particle (id = ',
17328 & I2,') with negative mass^2',/,1X,5E12.4)
17329 GOTO 9999
17330 ELSE
17331 PFSP(5,NFSP) = SQRT(ABS(AMFSP2))
17332 IF (ABS(PFSP(5,NFSP)-AAM(IDFSP(NFSP))).GT.TINY1) THEN
17333 WRITE(LOUT,1003) IDFSP(NFSP),AAM(IDFSP(NFSP)),
17334 & PFSP(5,NFSP)
17335 1003 FORMAT(1X,'HADRIN: warning! final state particle',
17336 & ' (id = ',I2,') with inconsistent mass',/,1X,
17337 & 2E12.4)
17338 KCORR = KCORR+1
17339 IF (KCORR.GT.2) GOTO 9999
17340 IMCORR(KCORR) = NFSP
17341 ENDIF
17342 ENDIF
17343* dump final state particles for energy-momentum cons. check
17344 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17345 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17346 4 CONTINUE
17347
17348* transform momenta on mass shell in case of inconsistencies in
17349* HADRIN
17350 IF (KCORR.GT.0) THEN
17351 IF (KCORR.EQ.2) THEN
17352 I1 = IMCORR(1)
17353 I2 = IMCORR(2)
17354 ELSE
17355 IF (IMCORR(1).EQ.1) THEN
17356 I1 = 1
17357 I2 = 2
17358 ELSE
17359 I1 = 1
17360 I2 = IMCORR(1)
17361 ENDIF
17362 ENDIF
17363 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I1),PFSP(2,I1),
17364 & PFSP(3,I1),PFSP(4,I1),2,IDUM,IDUM)
17365 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I2),PFSP(2,I2),
17366 & PFSP(3,I2),PFSP(4,I2),2,IDUM,IDUM)
17367 DO 5 K=1,4
17368 P1IN(K) = PFSP(K,I1)
17369 P2IN(K) = PFSP(K,I2)
17370 5 CONTINUE
17371 XM1 = AAM(IDFSP(I1))
17372 XM2 = AAM(IDFSP(I2))
17373 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17374 IF (IREJ1.GT.0) THEN
17375 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17376C GOTO 9999
17377 ENDIF
17378 DO 6 K=1,4
17379 PFSP(K,I1) = P1OUT(K)
17380 PFSP(K,I2) = P2OUT(K)
17381 6 CONTINUE
17382 PFSP(5,I1) = SQRT(PFSP(4,I1)**2-PFSP(1,I1)**2
17383 & -PFSP(2,I1)**2-PFSP(3,I1)**2)
17384 PFSP(5,I2) = SQRT(PFSP(4,I2)**2-PFSP(1,I2)**2
17385 & -PFSP(2,I2)**2-PFSP(3,I2)**2)
17386* dump final state particles for energy-momentum cons. check
17387 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I1),-PFSP(2,I1),
17388 & -PFSP(3,I1),-PFSP(4,I1),2,IDUM,IDUM)
17389 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I2),-PFSP(2,I2),
17390 & -PFSP(3,I2),-PFSP(4,I2),2,IDUM,IDUM)
17391 ENDIF
17392
17393* check energy-momentum conservation
17394 IF (LEMCCK) THEN
17395 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,102,IREJ1)
17396 IF (IREJ1.NE.0) GOTO 9999
17397 ENDIF
17398
17399 RETURN
17400
17401 9998 CONTINUE
17402 IREJ = 2
17403 RETURN
17404
17405 9999 CONTINUE
17406 IREJ = 1
17407 RETURN
17408 END
17409
17410*$ CREATE DT_HADCOL.FOR
17411*COPY DT_HADCOL
17412*
17413*===hadcol=============================================================*
17414*
17415 SUBROUTINE DT_HADCOL(IDPROJ,PPN,IDXTAR,IREJ)
17416
17417************************************************************************
17418* Interface to the HADRIN-routines for inelastic and elastic *
17419* scattering. This subroutine samples hadron-nucleus interactions *
17420* below DPM-threshold. *
17421* IDPROJ BAMJET-index of projectile hadron *
17422* PPN projectile momentum in target rest frame *
17423* IDXTAR DTEVT1-index of target nucleon undergoing *
17424* interaction with projectile hadron *
17425* This subroutine replaces HADHAD. *
17426* This version dated 5.5.95 is written by S. Roesler *
17427************************************************************************
17428
17429 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17430 SAVE
17431 PARAMETER ( LINP = 10 ,
17432 & LOUT = 6 ,
17433 & LDAT = 9 )
17434 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0)
17435
17436 LOGICAL LSTART
17437
17438* event history
17439 PARAMETER (NMXHKK=200000)
17440 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17441 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17442 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17443* extended event history
17444 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17445 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17446 & IHIST(2,NMXHKK)
17447* nuclear potential
17448 LOGICAL LFERMI
17449 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17450 & EBINDP(2),EBINDN(2),EPOT(2,210),
17451 & ETACOU(2),ICOUL,LFERMI
17452* interface HADRIN-DPM
17453 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
17454* parameter for intranuclear cascade
17455 LOGICAL LPAULI
17456 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
17457* final state after inc step
17458 PARAMETER (MAXFSP=10)
17459 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17460* particle properties (BAMJET index convention)
17461 CHARACTER*8 ANAME
17462 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17463 & IICH(210),IIBAR(210),K1(210),K2(210)
17464
17465 DIMENSION PPROJ(5),PNUC(5)
17466
17467 DATA LSTART /.TRUE./
17468
17469 IREJ = 0
17470
17471 NPOINT(1) = NHKK+1
17472
17473 TAUSAV = TAUFOR
17474**sr 6/9/01 commented
17475C TAUFOR = TAUFOR/2.0D0
17476**
17477 IF (LSTART) THEN
17478 WRITE(LOUT,1000)
17479 1000 FORMAT(/,1X,'HADCOL: Scattering handled by HADRIN')
17480 WRITE(LOUT,1001) TAUFOR
17481 1001 FORMAT(/,1X,'HADCOL: Formation zone parameter set to ',
17482 & F5.1,' fm/c')
17483 LSTART = .FALSE.
17484 ENDIF
17485
17486 IDNUC = IDBAM(IDXTAR)
17487 IDNUC1 = IDT_MCHAD(IDNUC)
17488 IDPRO1 = IDT_MCHAD(IDPROJ)
17489
17490 IF ((INTHAD.EQ.1).OR.(INTHAD.EQ.2)) THEN
17491 IPROC = INTHAD
17492 ELSE
17493**
17494C CALL DT_SIHNIN(IDPRO1,IDNUC1,PPN,SIGIN)
17495C CALL DT_SIHNEL(IDPRO1,IDNUC1,PPN,SIGEL)
17496 DUMZER = ZERO
17497 CALL DT_XSHN(IDPRO1,IDNUC1,PPN,DUMZER,SIGTOT,SIGEL)
17498 SIGIN = SIGTOT-SIGEL
17499C SIGTOT = SIGIN+SIGEL
17500**
17501 IPROC = 1
17502 IF (DT_RNDM(SIGIN).LT.SIGEL/SIGTOT) IPROC = 2
17503 ENDIF
17504
17505 PPROJ(1) = ZERO
17506 PPROJ(2) = ZERO
17507 PPROJ(3) = PPN
17508 PPROJ(5) = AAM(IDPROJ)
17509 PPROJ(4) = SQRT(PPROJ(5)**2+PPROJ(3)**2)
17510 DO 1 K=1,5
17511 PNUC(K) = PHKK(K,IDXTAR)
17512 1 CONTINUE
17513
17514 ILOOP = 0
17515 2 CONTINUE
17516 ILOOP = ILOOP+1
17517 IF (ILOOP.GT.100) GOTO 9999
17518
17519 CALL DT_HADRIN(IDPROJ,PPROJ,IDNUC,PNUC,IPROC,IREJ1)
17520 IF (IREJ1.EQ.1) GOTO 9999
17521
17522 IF (IREJ1.GT.1) THEN
17523* no interaction possible
17524* require Pauli blocking
17525 IF ((IDPROJ.EQ.1).AND.(PPROJ(4).LE.PFERMP(2)+PPROJ(5))) GOTO 2
17526 IF ((IDPROJ.EQ.8).AND.(PPROJ(4).LE.PFERMN(2)+PPROJ(5))) GOTO 2
17527 IF ((IIBAR(IDPROJ).NE.1).AND.
17528 & (PPROJ(4).LE.EPOT(2,IDPROJ)+PPROJ(5))) GOTO 2
17529* store incoming particle as final state particle
17530 CALL DT_LTNUC(PPROJ(3),PPROJ(4),PCMS,ECMS,3)
17531 CALL DT_EVTPUT(1,IDPROJ,1,0,PPROJ(1),PPROJ(2),PCMS,ECMS,0,0,0)
17532 NPOINT(4) = NHKK
17533 ELSE
17534* require Pauli blocking for final state nucleons
17535 DO 4 I=1,NFSP
17536 IF ((IDFSP(I).EQ.1).AND.
17537 & (PFSP(4,I).LE.PFERMP(2)+AAM(IDFSP(I)))) GOTO 2
17538 IF ((IDFSP(I).EQ.8).AND.
17539 & (PFSP(4,I).LE.PFERMN(2)+AAM(IDFSP(I)))) GOTO 2
17540 IF ((IIBAR(IDFSP(I)).NE.1).AND.
17541 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I))))GOTO 2
17542 4 CONTINUE
17543* store final state particles
17544 DO 5 I=1,NFSP
17545 IST = 1
17546 IF ((IIBAR(IDFSP(I)).EQ.1).AND.
17547 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I)))) IST = 16
17548 IDHAD = IDT_IPDGHA(IDFSP(I))
17549 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PCMS,ECMS,3)
17550 CALL DT_EVTPUT(IST,IDHAD,1,IDXTAR,PFSP(1,I),PFSP(2,I),
17551 & PCMS,ECMS,0,0,0)
17552 IF (I.EQ.1) NPOINT(4) = NHKK
17553 VHKK(1,NHKK) = 0.5D0*(VHKK(1,1)+VHKK(1,IDXTAR))
17554 VHKK(2,NHKK) = 0.5D0*(VHKK(2,1)+VHKK(2,IDXTAR))
17555 VHKK(3,NHKK) = VHKK(3,IDXTAR)
17556 VHKK(4,NHKK) = VHKK(4,IDXTAR)
17557 WHKK(1,NHKK) = 0.5D0*(WHKK(1,1)+WHKK(1,IDXTAR))
17558 WHKK(2,NHKK) = 0.5D0*(WHKK(2,1)+WHKK(2,IDXTAR))
17559 WHKK(3,NHKK) = WHKK(3,1)
17560 WHKK(4,NHKK) = WHKK(4,1)
17561 5 CONTINUE
17562 ENDIF
17563 TAUFOR = TAUSAV
17564 RETURN
17565
17566 9999 CONTINUE
17567 IREJ = 1
17568 TAUFOR = TAUSAV
17569 RETURN
17570 END
17571
17572*$ CREATE DT_GETEMU.FOR
17573*COPY DT_GETEMU
17574*
17575*===getemu=============================================================*
17576*
17577 SUBROUTINE DT_GETEMU(IT,ITZ,KKMAT,MODE)
17578
17579************************************************************************
17580* Sampling of emulsion component to be considered as target-nucleus. *
17581* This version dated 6.5.95 is written by S. Roesler. *
17582************************************************************************
17583
17584 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17585 SAVE
17586 PARAMETER ( LINP = 10 ,
17587 & LOUT = 6 ,
17588 & LDAT = 9 )
17589 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
17590
17591 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
17592* emulsion treatment
17593 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
17594 & NCOMPO,IEMUL
17595* Glauber formalism: flags and parameters for statistics
17596 LOGICAL LPROD
17597 CHARACTER*8 CGLB
17598 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
17599
17600 IF (MODE.EQ.0) THEN
17601 SUMFRA = ZERO
17602 RR = DT_RNDM(SUMFRA)
17603 IT = 0
17604 ITZ = 0
17605 DO 1 ICOMP=1,NCOMPO
17606 SUMFRA = SUMFRA+EMUFRA(ICOMP)
17607 IF (SUMFRA.GT.RR) THEN
17608 IT = IEMUMA(ICOMP)
17609 ITZ = IEMUCH(ICOMP)
17610 KKMAT = ICOMP
17611 GOTO 2
17612 ENDIF
17613 1 CONTINUE
17614 2 CONTINUE
17615 IF (IT.LE.0) THEN
17616 WRITE(LOUT,'(1X,A,E12.3)')
17617 & 'Warning! norm. failure within emulsion fractions',
17618 & SUMFRA
17619 STOP
17620 ENDIF
17621 ELSEIF (MODE.EQ.1) THEN
17622 NDIFF = 10000
17623 DO 3 I=1,NCOMPO
17624 IDIFF = ABS(IT-IEMUMA(I))
17625 IF (IDIFF.LT.NDIFF) THEN
17626 KKMAT = I
17627 NDIFF = IDIFF
17628 ENDIF
17629 3 CONTINUE
17630 ELSE
17631 STOP 'DT_GETEMU'
17632 ENDIF
17633
17634* bypass for variable projectile/target/energy runs: the correct
17635* Glauber data will be always loaded on kkmat=1
17636 IF (IOGLB.EQ.100) THEN
17637 KKMAT = 1
17638 ENDIF
17639
17640 RETURN
17641 END
17642
17643*$ CREATE DT_NCLPOT.FOR
17644*COPY DT_NCLPOT
17645*
17646*===nclpot=============================================================*
17647*
17648 SUBROUTINE DT_NCLPOT(IPZ,IP,ITZ,IT,AFERP,AFERT,MODE)
17649
17650************************************************************************
17651* Calculation of Coulomb and nuclear potential for a given configurat. *
17652* IPZ, IP charge/mass number of proj. *
17653* ITZ, IT charge/mass number of targ. *
17654* AFERP,AFERT factors modifying proj./target pot. *
17655* if =0, FERMOD is used *
17656* MODE = 0 calculation of binding energy *
17657* = 1 pre-calculated binding energy is used *
17658* This version dated 16.11.95 is written by S. Roesler. *
17659* *
17660* Last change 28.12.2006 by S. Roesler. *
17661************************************************************************
17662
17663 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17664 SAVE
17665 PARAMETER ( LINP = 10 ,
17666 & LOUT = 6 ,
17667 & LDAT = 9 )
17668 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
17669 & TINY10=1.0D-10)
17670
17671 LOGICAL LSTART
17672
17673* particle properties (BAMJET index convention)
17674 CHARACTER*8 ANAME
17675 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17676 & IICH(210),IIBAR(210),K1(210),K2(210)
17677* nuclear potential
17678 LOGICAL LFERMI
17679 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17680 & EBINDP(2),EBINDN(2),EPOT(2,210),
17681 & ETACOU(2),ICOUL,LFERMI
17682
17683 DIMENSION IDXPOT(14)
17684* ap an lam alam sig- sig+ sig0 tet0 tet- asig-
17685 DATA IDXPOT / 2, 9, 17, 18, 20, 21, 22, 97, 98, 99,
17686* asig0 asig+ atet0 atet+
17687 & 100, 101, 102, 103/
17688
17689 DATA AN /0.4D0/
17690 DATA LSTART /.TRUE./
17691
17692 IF (MODE.EQ.0) THEN
17693 EBINDP(1) = ZERO
17694 EBINDN(1) = ZERO
17695 EBINDP(2) = ZERO
17696 EBINDN(2) = ZERO
17697 ENDIF
17698 AIP = DBLE(IP)
17699 AIPZ = DBLE(IPZ)
17700 AIT = DBLE(IT)
17701 AITZ = DBLE(ITZ)
17702
17703 FERMIP = AFERP
17704 IF (AFERP.LE.ZERO) FERMIP = FERMOD
17705 FERMIT = AFERT
17706 IF (AFERT.LE.ZERO) FERMIT = FERMOD
17707
17708* Fermi momenta and binding energy for projectile
17709 IF ((IP.GT.1).AND.LFERMI) THEN
17710 IF (MODE.EQ.0) THEN
17711C EBINDP(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ-1)
17712C EBINDN(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ)
17713 BIP = AIP -ONE
17714 BIPZ = AIPZ-ONE
17715 EBINDP(1) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIP,BIPZ)
17716 & -DT_ENERGY(AIP,AIPZ))
17717 IF (AIP.LE.AIPZ) THEN
17718 EBINDN(1) = EBINDP(1)
17719 WRITE(LOUT,*) ' DT_NCLPOT: AIP.LE.AIPZ (',AIP,AIPZ,')'
17720 ELSE
17721 EBINDN(1) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17722 & +DT_ENERGY(BIP,AIPZ)-DT_ENERGY(AIP,AIPZ))
17723 ENDIF
17724 ENDIF
17725 PFERMP(1) = FERMIP*AN*(AIPZ/AIP)**0.333333D0
17726 PFERMN(1) = FERMIP*AN*((AIP-AIPZ)/AIP)**0.33333D0
17727 ELSE
17728 PFERMP(1) = ZERO
17729 PFERMN(1) = ZERO
17730 ENDIF
17731* effective nuclear potential for projectile
17732C EPOT(1,1) = PFERMP(1)**2/(2.0D0*AAM(1)) + EBINDP(1)
17733C EPOT(1,8) = PFERMN(1)**2/(2.0D0*AAM(8)) + EBINDN(1)
17734 EPOT(1,1) = SQRT(PFERMP(1)**2+AAM(1)**2) -AAM(1) + EBINDP(1)
17735 EPOT(1,8) = SQRT(PFERMN(1)**2+AAM(8)**2) -AAM(8) + EBINDN(1)
17736
17737* Fermi momenta and binding energy for target
17738 IF ((IT.GT.1).AND.LFERMI) THEN
17739 IF (MODE.EQ.0) THEN
17740C EBINDP(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ-1)
17741C EBINDN(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ)
17742 BIT = AIT -ONE
17743 BITZ = AITZ-ONE
17744
17745 EBINDP(2) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIT,BITZ)
17746 & -DT_ENERGY(AIT,AITZ))
17747
17748 IF (AIT.LE.AITZ) THEN
17749 EBINDN(2) = EBINDP(2)
17750 WRITE(LOUT,*) ' DT_NCLPOT: AIT.LE.AIPT (',AIT,AIPT,')'
17751 ELSE
17752
17753 EBINDN(2) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17754 & +DT_ENERGY(BIT,AITZ)-DT_ENERGY(AIT,AITZ))
17755
17756 ENDIF
17757 ENDIF
17758 PFERMP(2) = FERMIT*AN*(AITZ/AIT)**0.333333D0
17759 PFERMN(2) = FERMIT*AN*((AIT-AITZ)/AIT)**0.33333D0
17760 ELSE
17761 PFERMP(2) = ZERO
17762 PFERMN(2) = ZERO
17763 ENDIF
17764* effective nuclear potential for target
17765C EPOT(2,1) = PFERMP(2)**2/(2.0D0*AAM(1)) + EBINDP(2)
17766C EPOT(2,8) = PFERMN(2)**2/(2.0D0*AAM(8)) + EBINDN(2)
17767 EPOT(2,1) = SQRT(PFERMP(2)**2+AAM(1)**2) -AAM(1) + EBINDP(2)
17768 EPOT(2,8) = SQRT(PFERMN(2)**2+AAM(8)**2) -AAM(8) + EBINDN(2)
17769
17770 DO 2 I=1,14
17771 EPOT(1,IDXPOT(I)) = EPOT(1,8)
17772 EPOT(2,IDXPOT(I)) = EPOT(2,8)
17773 2 CONTINUE
17774
17775* Coulomb energy
17776 ETACOU(1) = ZERO
17777 ETACOU(2) = ZERO
17778 IF (ICOUL.EQ.1) THEN
17779 IF (IP.GT.1)
17780 & ETACOU(1) = 0.001116D0*AIPZ/(1.0D0+AIP**0.333D0)
17781 IF (IT.GT.1)
17782 & ETACOU(2) = 0.001116D0*AITZ/(1.0D0+AIT**0.333D0)
17783 ENDIF
17784
17785 IF (LSTART) THEN
17786 WRITE(LOUT,1000) IP,IPZ,IT,ITZ,EBINDP,EBINDN,
17787 & EPOT(1,1)-EBINDP(1),EPOT(2,1)-EBINDP(2),
17788 & EPOT(1,8)-EBINDN(1),EPOT(2,8)-EBINDN(2),
17789 & FERMOD,ETACOU
17790 1000 FORMAT(/,/,1X,'NCLPOT: quantities for inclusion of nuclear'
17791 & ,' effects',/,12X,'---------------------------',
17792 & '----------------',/,/,38X,'projectile',
17793 & ' target',/,/,1X,'Mass number / charge',
17794 & 17X,I3,' /',I3,6X,I3,' /',I3,/,1X,'Binding energy -',
17795 & ' proton (GeV) ',2E14.4,/,17X,'- neutron (GeV)'
17796 & ,1X,2E14.4,/,1X,'Fermi-potential - proton (GeV)',
17797 & 1X,2E14.4,/,17X,'- neutron (GeV) ',2E14.4,/,/,
17798 & 1X,'Scale factor for Fermi-momentum ',F4.2,/,
17799 & /,1X,'Coulomb-energy ',2(E14.4,' GeV '),/,/)
17800 LSTART = .FALSE.
17801 ENDIF
17802
17803 RETURN
17804 END
17805
17806*$ CREATE DT_RESNCL.FOR
17807*COPY DT_RESNCL
17808*
17809*===resncl=============================================================*
17810*
17811 SUBROUTINE DT_RESNCL(EPN,NLOOP,MODE)
17812
17813************************************************************************
17814* Treatment of residual nuclei and nuclear effects. *
17815* MODE = 1 initializations *
17816* = 2 treatment of final state *
17817* This version dated 16.11.95 is written by S. Roesler. *
17818* *
17819* Last change 05.01.2007 by S. Roesler. *
17820************************************************************************
17821
17822 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17823 SAVE
17824 PARAMETER ( LINP = 10 ,
17825 & LOUT = 6 ,
17826 & LDAT = 9 )
17827 PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,TINY3=1.0D-3,
17828 & TINY2=1.0D-2,TINY1=1.0D-1,TINY4=1.0D-4,TINY10=1.0D-10,
17829 & ONETHI=ONE/THREE)
17830 PARAMETER (AMUAMU = 0.93149432D0,
17831 & FM2MM = 1.0D-12,
17832 & RNUCLE = 1.12D0)
17833 PARAMETER ( EMVGEV = 1.0 D-03 )
17834 PARAMETER ( AMUGEV = 0.93149432 D+00 )
17835 PARAMETER ( AMPRTN = 0.93827231 D+00 )
17836 PARAMETER ( AMNTRN = 0.93956563 D+00 )
17837 PARAMETER ( AMELCT = 0.51099906 D-03 )
17838 PARAMETER ( HLFHLF = 0.5D+00 )
17839 PARAMETER ( FERTHO = 14.33 D-09 )
17840 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
17841 PARAMETER ( AMUNMU = HLFHLF * AMELCT - BEXC12 / 12.D+00 )
17842 PARAMETER ( AMUC12 = AMUGEV - AMUNMU )
17843
17844* event history
17845 PARAMETER (NMXHKK=200000)
17846 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17847 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17848 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17849* extended event history
17850 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17851 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17852 & IHIST(2,NMXHKK)
17853* particle properties (BAMJET index convention)
17854 CHARACTER*8 ANAME
17855 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17856 & IICH(210),IIBAR(210),K1(210),K2(210)
17857* flags for input different options
17858 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17859 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17860 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17861* nuclear potential
17862 LOGICAL LFERMI
17863 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17864 & EBINDP(2),EBINDN(2),EPOT(2,210),
17865 & ETACOU(2),ICOUL,LFERMI
17866* properties of interacting particles
17867 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
17868* properties of photon/lepton projectiles
17869 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
17870* Lorentz-parameters of the current interaction
17871 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
17872 & UMO,PPCM,EPROJ,PPROJ
17873* treatment of residual nuclei: wounded nucleons
17874 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
17875* treatment of residual nuclei: 4-momenta
17876 LOGICAL LRCLPR,LRCLTA
17877 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
17878 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
17879
17880 DIMENSION PFSP(4),PSEC(4),PSEC0(4)
17881 DIMENSION PMOMB(5000),IDXB(5000),PMOMM(10000),IDXM(10000),
17882 & IDXCOR(15000),IDXOTH(NMXHKK)
17883
17884 GOTO (1,2) MODE
17885
17886*------- initializations
17887 1 CONTINUE
17888
17889* initialize arrays for residual nuclei
17890 DO 10 K=1,5
17891 IF (K.LE.4) THEN
17892 PFSP(K) = ZERO
17893 ENDIF
17894 PINIPR(K) = ZERO
17895 PINITA(K) = ZERO
17896 PRCLPR(K) = ZERO
17897 PRCLTA(K) = ZERO
17898 TRCLPR(K) = ZERO
17899 TRCLTA(K) = ZERO
17900 10 CONTINUE
17901 SCPOT = ONE
17902 NLOOP = 0
17903
17904* correction of projectile 4-momentum for effective target pot.
17905* and Coulomb-energy (in case of hadron-nucleus interaction only)
17906 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
17907 EPNI = EPN
17908* Coulomb-energy:
17909* positively charged hadron - check energy for Coloumb pot.
17910 IF (IICH(IJPROJ).EQ.1) THEN
17911 THRESH = ETACOU(2)+AAM(IJPROJ)
17912 IF (EPNI.LE.THRESH) THEN
17913 WRITE(LOUT,1000)
17914 1000 FORMAT(/,1X,'KKINC: WARNING! projectile energy',
17915 & ' below Coulomb threshold - event rejected',/)
17916 ISTHKK(1) = 1
17917 RETURN
17918 ENDIF
17919* negatively charged hadron - increase energy by Coulomb energy
17920 ELSEIF (IICH(IJPROJ).EQ.-1) THEN
17921 EPNI = EPNI+ETACOU(2)
17922 ENDIF
17923 IF ((IJPROJ.EQ.1).OR.(IJPROJ.EQ.8)) THEN
17924* Effective target potential
17925*sr 6.6. binding energy only (to avoid negative exc. energies)
17926C EPNI = EPNI+EPOT(2,IJPROJ)
17927 EBIPOT = EBINDP(2)
17928 IF ((IJPROJ.NE.1).AND.(ABS(EPOT(2,IJPROJ)).GT.5.0D-3))
17929 & EBIPOT = EBINDN(2)
17930 EPNI = EPNI+ABS(EBIPOT)
17931* re-initialization of DTLTRA
17932 DUM1 = ZERO
17933 DUM2 = ZERO
17934 CALL DT_LTINI(IJPROJ,IJTARG,EPNI,DUM1,DUM2,0)
17935 ENDIF
17936 ENDIF
17937
17938* projectile in n-n cms
17939 IF ((IP.LE.1).AND.(IT.GT.1)) THEN
17940 PMASS1 = AAM(IJPROJ)
17941C* VDM assumption
17942C IF (IJPROJ.EQ.7) PMASS1 = AAM(33)
17943 IF (IJPROJ.EQ.7) PMASS1 = AAM(IJPROJ)-SQRT(VIRT)
17944 PMASS2 = AAM(1)
17945 PM1 = SIGN(PMASS1**2,PMASS1)
17946 PM2 = SIGN(PMASS2**2,PMASS2)
17947 PINIPR(4) = (UMO**2-PM2+PM1)/(TWO*UMO)
17948 PINIPR(5) = PMASS1
17949 IF (PMASS1.GT.ZERO) THEN
17950 PINIPR(3) = SQRT((PINIPR(4)-PINIPR(5))
17951 & *(PINIPR(4)+PINIPR(5)))
17952 ELSE
17953 PINIPR(3) = SQRT(PINIPR(4)**2-PM1)
17954 ENDIF
17955 AIT = DBLE(IT)
17956 AITZ = DBLE(ITZ)
17957 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
17958 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
17959 ELSEIF ((IP.GT.1).AND.(IT.LE.1)) THEN
17960 PMASS1 = AAM(1)
17961 PMASS2 = AAM(IJTARG)
17962 PM1 = SIGN(PMASS1**2,PMASS1)
17963 PM2 = SIGN(PMASS2**2,PMASS2)
17964 PINITA(4) = (UMO**2-PM1+PM2)/(TWO*UMO)
17965 PINITA(5) = PMASS2
17966 PINITA(3) = -SQRT((PINITA(4)-PINITA(5))
17967 & *(PINITA(4)+PINITA(5)))
17968 AIP = DBLE(IP)
17969 AIPZ = DBLE(IPZ)
17970 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
17971 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
17972 ELSEIF ((IP.GT.1).AND.(IT.GT.1)) THEN
17973 AIP = DBLE(IP)
17974 AIPZ = DBLE(IPZ)
17975 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
17976 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
17977 AIT = DBLE(IT)
17978 AITZ = DBLE(ITZ)
17979 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
17980 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
17981 ENDIF
17982
17983 RETURN
17984
17985*------- treatment of final state
17986 2 CONTINUE
17987
17988 NLOOP = NLOOP+1
17989 IF (NLOOP.GT.1) SCPOT = 0.10D0
17990C WRITE(LOUT,*) 'event ',NEVHKK,NLOOP,SCPOT
17991
17992 JPW = NPW
17993 JPCW = NPCW
17994 JTW = NTW
17995 JTCW = NTCW
17996 DO 40 K=1,4
17997 PFSP(K) = ZERO
17998 40 CONTINUE
17999
18000 NOB = 0
18001 NOM = 0
18002 DO 900 I=NPOINT(4),NHKK
18003 IDXOTH(I) = -1
18004 IF (ISTHKK(I).EQ.1) THEN
18005 IF (IDBAM(I).EQ.7) GOTO 900
18006 IPOT = 0
18007 IOTHER = 0
18008* particle moving into forward direction
18009 IF (PHKK(3,I).GE.ZERO) THEN
18010* most likely to be effected by projectile potential
18011 IPOT = 1
18012* there is no projectile nucleus, try target
18013 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) THEN
18014 IPOT = 2
18015 IF (IP.GT.1) IOTHER = 1
18016* there is no target nucleus --> skip
18017 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) GOTO 900
18018 ENDIF
18019* particle moving into backward direction
18020 ELSE
18021* most likely to be effected by target potential
18022 IPOT = 2
18023* there is no target nucleus, try projectile
18024 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) THEN
18025 IPOT = 1
18026 IF (IT.GT.1) IOTHER = 1
18027* there is no projectile nucleus --> skip
18028 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) GOTO 900
18029 ENDIF
18030 ENDIF
18031 IFLG = -IPOT
18032* nobam=3: particle is in overlap-region or neither inside proj. nor target
18033* =1: particle is not in overlap-region AND is inside target (2)
18034* =2: particle is not in overlap-region AND is inside projectile (1)
18035* flag particles which are inside the nucleus ipot but not in its
18036* overlap region
18037 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) IFLG = IPOT
18038 IF (IDBAM(I).NE.0) THEN
18039* baryons: keep all nucleons and all others where flag is set
18040 IF (IIBAR(IDBAM(I)).NE.0) THEN
18041 IF ((IDBAM(I).EQ.1).OR.(IDBAM(I).EQ.8).OR.(IFLG.GT.0))
18042 & THEN
18043 NOB = NOB+1
18044 PMOMB(NOB) = PHKK(3,I)
18045 IDXB(NOB) = SIGN(10000000*IABS(IFLG)
18046 & +1000000*IOTHER+I,IFLG)
18047 ENDIF
18048* mesons: keep only those mesons where flag is set
18049 ELSE
18050 IF (IFLG.GT.0) THEN
18051 NOM = NOM+1
18052 PMOMM(NOM) = PHKK(3,I)
18053 IDXM(NOM) = 10000000*IFLG+1000000*IOTHER+I
18054 ENDIF
18055 ENDIF
18056 ENDIF
18057 ENDIF
18058 900 CONTINUE
18059*
18060* sort particles in the arrays according to increasing long. momentum
18061 CALL DT_SORT1(PMOMB,IDXB,NOB,1,NOB,1)
18062 CALL DT_SORT1(PMOMM,IDXM,NOM,1,NOM,1)
18063*
18064* shuffle indices into one and the same array according to the later
18065* sequence of correction
18066 NCOR = 0
18067 IF (IT.GT.1) THEN
18068 DO 910 I=1,NOB
18069 IF (PMOMB(I).GT.ZERO) GOTO 911
18070 NCOR = NCOR+1
18071 IDXCOR(NCOR) = IDXB(I)
18072 910 CONTINUE
18073 911 CONTINUE
18074 IF (IP.GT.1) THEN
18075 DO 912 J=1,NOB
18076 I = NOB+1-J
18077 IF (PMOMB(I).LT.ZERO) GOTO 913
18078 NCOR = NCOR+1
18079 IDXCOR(NCOR) = IDXB(I)
18080 912 CONTINUE
18081 913 CONTINUE
18082 ELSE
18083 DO 914 I=1,NOB
18084 IF (PMOMB(I).GT.ZERO) THEN
18085 NCOR = NCOR+1
18086 IDXCOR(NCOR) = IDXB(I)
18087 ENDIF
18088 914 CONTINUE
18089 ENDIF
18090 ELSE
18091 DO 915 J=1,NOB
18092 I = NOB+1-J
18093 NCOR = NCOR+1
18094 IDXCOR(NCOR) = IDXB(I)
18095 915 CONTINUE
18096 ENDIF
18097 DO 925 I=1,NOM
18098 IF (PMOMM(I).GT.ZERO) GOTO 926
18099 NCOR = NCOR+1
18100 IDXCOR(NCOR) = IDXM(I)
18101 925 CONTINUE
18102 926 CONTINUE
18103 DO 927 J=1,NOM
18104 I = NOM+1-J
18105 IF (PMOMM(I).LT.ZERO) GOTO 928
18106 NCOR = NCOR+1
18107 IDXCOR(NCOR) = IDXM(I)
18108 927 CONTINUE
18109 928 CONTINUE
18110*
18111C IF (NEVHKK.EQ.484) THEN
18112C WRITE(LOUT,9000) JPCW,JPW-JPCW,JTCW,JTW-JTCW
18113C 9000 FORMAT(1X,'wounded nucleons (proj.-p,n targ.-p,n)',/,4I10)
18114C WRITE(LOUT,9001) NOB,NOM,NCOR
18115C 9001 FORMAT(1X,'produced particles (baryons,mesons,all)',3I10)
18116C WRITE(LOUT,'(/,A)') ' baryons '
18117C DO 950 I=1,NOB
18118CC J = IABS(IDXB(I))
18119CC INDEX = J-IABS(J/10000000)*10000000
18120C IPOT = IABS(IDXB(I))/10000000
18121C IOTHER = IABS(IDXB(I))/1000000-IPOT*10
18122C INDEX = IABS(IDXB(I))-IPOT*10000000-IOTHER*1000000
18123C WRITE(LOUT,9002) I,INDEX,IDXB(I),IDBAM(INDEX),PMOMB(I)
18124C 950 CONTINUE
18125C WRITE(LOUT,'(/,A)') ' mesons '
18126C DO 951 I=1,NOM
18127CC INDEX = IDXM(I)-IABS(IDXM(I)/10000000)*10000000
18128C IPOT = IABS(IDXM(I))/10000000
18129C IOTHER = IABS(IDXM(I))/1000000-IPOT*10
18130C INDEX = IABS(IDXM(I))-IPOT*10000000-IOTHER*1000000
18131C WRITE(LOUT,9002) I,INDEX,IDXM(I),IDBAM(INDEX),PMOMM(I)
18132C 951 CONTINUE
18133C 9002 FORMAT(1X,4I14,E14.5)
18134C WRITE(LOUT,'(/,A)') ' all '
18135C DO 952 I=1,NCOR
18136CC J = IABS(IDXCOR(I))
18137CC INDEX = J-IABS(J/10000000)*10000000
18138CC IPOT = IABS(IDXCOR(I))/10000000
18139C IOTHER = IABS(IDXCOR(I))/1000000-IPOT*10
18140C INDEX = IABS(IDXCOR(I))-IPOT*10000000-IOTHER*1000000
18141C WRITE(LOUT,9003) I,INDEX,IDXCOR(I),IDBAM(INDEX)
18142C 952 CONTINUE
18143C 9003 FORMAT(1X,4I14)
18144C ENDIF
18145*
18146 DO 20 ICOR=1,NCOR
18147 IPOT = IABS(IDXCOR(ICOR))/10000000
18148 IOTHER = IABS(IDXCOR(ICOR))/1000000-IPOT*10
18149 I = IABS(IDXCOR(ICOR))-IPOT*10000000-IOTHER*1000000
18150 IDXOTH(I) = 1
18151
18152 IDSEC = IDBAM(I)
18153
18154* reduction of particle momentum by corresponding nuclear potential
18155* (this applies only if Fermi-momenta are requested)
18156
18157 IF (LFERMI) THEN
18158
18159* Lorentz-transformation into the rest system of the selected nucleus
18160 IMODE = -IPOT-1
18161 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18162 & PSEC(1),PSEC(2),PSEC(3),PSEC(4),IDSEC,IMODE)
18163 PSECO = SQRT(PSEC(1)**2+PSEC(2)**2+PSEC(3)**2)
18164 AMSEC = SQRT(ABS((PSEC(4)-PSECO)*(PSEC(4)+PSECO)))
18165 JPMOD = 0
18166
18167 CHKLEV = TINY3
18168 IF ((EPROJ.GE.1.0D4).AND.(IDSEC.EQ.7)) CHKLEV = TINY1
18169 IF (EPROJ.GE.2.0D6) CHKLEV = 1.0D0
18170 IF (ABS(AMSEC-AAM(IDSEC)).GT.CHKLEV) THEN
18171 IF (IOULEV(3).GT.0)
18172 & WRITE(LOUT,2000) I,NEVHKK,IDSEC,AMSEC,AAM(IDSEC)
18173 2000 FORMAT(1X,'RESNCL: inconsistent mass of particle',
18174 & ' at entry ',I5,' (evt.',I8,')',/,' IDSEC: ',
18175 & I4,' AMSEC: ',E12.3,' AAM(IDSEC): ',E12.3,/)
18176 GOTO 23
18177 ENDIF
18178
18179 DO 21 K=1,4
18180 PSEC0(K) = PSEC(K)
18181 21 CONTINUE
18182
18183* the correction for nuclear potential effects is applied to as many
18184* p/n as many nucleons were wounded; the momenta of other final state
18185* particles are corrected only if they materialize inside the corresp.
18186* nucleus (here: NOBAM = 1 part. outside proj., = 2 part. outside targ
18187* = 3 part. outside proj. and targ., >=10 in overlapping region)
18188 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) THEN
18189 IF (IPOT.EQ.1) THEN
18190 IF ((JPW.GT.0).AND.(IOTHER.EQ.0)) THEN
18191* this is most likely a wounded nucleon
18192**test
18193C RDIST = SQRT((VHKK(1,IPW(JPW))/FM2MM)**2
18194C & +(VHKK(2,IPW(JPW))/FM2MM)**2
18195C & +(VHKK(3,IPW(JPW))/FM2MM)**2)
18196C RAD = RNUCLE*DBLE(IP)**ONETHI
18197C FDEN = 1.4D0*DT_DENSIT(IP,RDIST,RAD)
18198C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18199**
18200 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18201 JPW = JPW-1
18202 JPMOD = 1
18203 ELSE
18204* correct only if part. was materialized inside nucleus
18205* and if it is ouside the overlapping region
18206 IF ((NOBAM(I).NE.1).AND.(NOBAM(I).LT.3)) THEN
18207 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18208 JPMOD = 1
18209 ENDIF
18210 ENDIF
18211 ELSEIF (IPOT.EQ.2) THEN
18212 IF ((JTW.GT.0).AND.(IOTHER.EQ.0)) THEN
18213* this is most likely a wounded nucleon
18214**test
18215C RDIST = SQRT((VHKK(1,ITW(JTW))/FM2MM)**2
18216C & +(VHKK(2,ITW(JTW))/FM2MM)**2
18217C & +(VHKK(3,ITW(JTW))/FM2MM)**2)
18218C RAD = RNUCLE*DBLE(IT)**ONETHI
18219C FDEN = 1.4D0*DT_DENSIT(IT,RDIST,RAD)
18220C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18221**
18222 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18223 JTW = JTW-1
18224 JPMOD = 1
18225 ELSE
18226* correct only if part. was materialized inside nucleus
18227 IF ((NOBAM(I).NE.2).AND.(NOBAM(I).LT.3)) THEN
18228 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18229 JPMOD = 1
18230 ENDIF
18231 ENDIF
18232 ENDIF
18233 ELSE
18234 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) THEN
18235 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18236 JPMOD = 1
18237 ENDIF
18238 ENDIF
18239
18240 IF (NLOOP.EQ.1) THEN
18241* Coulomb energy correction:
18242* the treatment of Coulomb potential correction is similar to the
18243* one for nuclear potential
18244 IF (IDSEC.EQ.1) THEN
18245 IF ((IPOT.EQ.1).AND.(JPCW.GT.0)) THEN
18246 JPCW = JPCW-1
18247 ELSEIF ((IPOT.EQ.2).AND.(JTCW.GT.0)) THEN
18248 JTCW = JTCW-1
18249 ELSE
18250 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18251 ENDIF
18252 ELSE
18253 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18254 ENDIF
18255 IF (IICH(IDSEC).EQ.1) THEN
18256* pos. particles: check if they are able to escape Coulomb potential
18257 IF (PSEC(4).LT.AMSEC+ETACOU(IPOT)) THEN
18258 ISTHKK(I) = 14+IPOT
18259 IF (ISTHKK(I).EQ.15) THEN
18260 DO 26 K=1,4
18261 PHKK(K,I) = PSEC0(K)
18262 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18263 26 CONTINUE
18264 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18265 IF (IDSEC.EQ.1) NPCW = NPCW-1
18266 ELSEIF (ISTHKK(I).EQ.16) THEN
18267 DO 27 K=1,4
18268 PHKK(K,I) = PSEC0(K)
18269 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18270 27 CONTINUE
18271 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18272 IF (IDSEC.EQ.1) NTCW = NTCW-1
18273 ENDIF
18274 GOTO 20
18275 ENDIF
18276 ELSEIF (IICH(IDSEC).EQ.-1) THEN
18277* neg. particles: decrease energy by Coulomb-potential
18278 PSEC(4) = PSEC(4)-ETACOU(IPOT)
18279 JPMOD = 1
18280 ENDIF
18281 ENDIF
18282
18283 25 CONTINUE
18284
18285 IF (PSEC(4).LT.AMSEC) THEN
18286 IF (IOULEV(6).GT.0)
18287 & WRITE(LOUT,2001) I,IDSEC,PSEC(4),AMSEC
18288 2001 FORMAT(1X,'KKINC: particle at DTEVT1-pos. ',I5,
18289 & ' is not allowed to escape nucleus',/,
18290 & 8X,'id : ',I3,' reduced energy: ',E15.4,
18291 & ' mass: ',E12.3)
18292 ISTHKK(I) = 14+IPOT
18293 IF (ISTHKK(I).EQ.15) THEN
18294 DO 28 K=1,4
18295 PHKK(K,I) = PSEC0(K)
18296 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18297 28 CONTINUE
18298 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18299 IF (IDSEC.EQ.1) NPCW = NPCW-1
18300 ELSEIF (ISTHKK(I).EQ.16) THEN
18301 DO 29 K=1,4
18302 PHKK(K,I) = PSEC0(K)
18303 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18304 29 CONTINUE
18305 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18306 IF (IDSEC.EQ.1) NTCW = NTCW-1
18307 ENDIF
18308 GOTO 20
18309 ENDIF
18310
18311 IF (JPMOD.EQ.1) THEN
18312 PSECN = SQRT( (PSEC(4)-AMSEC)*(PSEC(4)+AMSEC) )
18313* 4-momentum after correction for nuclear potential
18314 DO 22 K=1,3
18315 PSEC(K) = PSEC(K)*PSECN/PSECO
18316 22 CONTINUE
18317
18318* store recoil momentum from particles escaping the nuclear potentials
18319 DO 30 K=1,4
18320 IF (IPOT.EQ.1) THEN
18321 TRCLPR(K) = TRCLPR(K)+PSEC0(K)-PSEC(K)
18322 ELSEIF (IPOT.EQ.2) THEN
18323 TRCLTA(K) = TRCLTA(K)+PSEC0(K)-PSEC(K)
18324 ENDIF
18325 30 CONTINUE
18326
18327* transform momentum back into n-n cms
18328 IMODE = IPOT+1
18329 CALL DT_LTRANS(PSEC(1),PSEC(2),PSEC(3),PSEC(4),
18330 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18331 & IDSEC,IMODE)
18332 ENDIF
18333
18334 ENDIF
18335
18336 23 CONTINUE
18337 DO 31 K=1,4
18338 PFSP(K) = PFSP(K)+PHKK(K,I)
18339 31 CONTINUE
18340
18341 20 CONTINUE
18342
18343 DO 33 I=NPOINT(4),NHKK
18344 IF ((ISTHKK(I).EQ.1).AND.(IDXOTH(I).LT.0)) THEN
18345 PFSP(1) = PFSP(1)+PHKK(1,I)
18346 PFSP(2) = PFSP(2)+PHKK(2,I)
18347 PFSP(3) = PFSP(3)+PHKK(3,I)
18348 PFSP(4) = PFSP(4)+PHKK(4,I)
18349 ENDIF
18350 33 CONTINUE
18351
18352 DO 34 K=1,5
18353 PRCLPR(K) = TRCLPR(K)
18354 PRCLTA(K) = TRCLTA(K)
18355 34 CONTINUE
18356
18357 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
18358* hadron-nucleus interactions: get residual momentum from energy-
18359* momentum conservation
18360 DO 32 K=1,4
18361 PRCLPR(K) = ZERO
18362 PRCLTA(K) = PINIPR(K)+PINITA(K)-PFSP(K)
18363 32 CONTINUE
18364 ELSE
18365* nucleus-hadron, nucleus-nucleus: get residual momentum from
18366* accumulated recoil momenta of particles leaving the spectators
18367* transform accumulated recoil momenta of residual nuclei into
18368* n-n cms
18369 PZI = PRCLPR(3)
18370 PEI = PRCLPR(4)
18371 CALL DT_LTNUC(PZI,PEI,PRCLPR(3),PRCLPR(4),2)
18372 PZI = PRCLTA(3)
18373 PEI = PRCLTA(4)
18374 CALL DT_LTNUC(PZI,PEI,PRCLTA(3),PRCLTA(4),3)
18375C IF (IP.GT.1) THEN
18376 PRCLPR(3) = PRCLPR(3)+PINIPR(3)
18377 PRCLPR(4) = PRCLPR(4)+PINIPR(4)
18378C ENDIF
18379 IF (IT.GT.1) THEN
18380 PRCLTA(3) = PRCLTA(3)+PINITA(3)
18381 PRCLTA(4) = PRCLTA(4)+PINITA(4)
18382 ENDIF
18383 ENDIF
18384
18385* check momenta of residual nuclei
18386 IF (LEMCCK) THEN
18387 CALL DT_EVTEMC(-PINIPR(1),-PINIPR(2),-PINIPR(3),-PINIPR(4),
18388 & 1,IDUM,IDUM)
18389 CALL DT_EVTEMC(-PINITA(1),-PINITA(2),-PINITA(3),-PINITA(4),
18390 & 2,IDUM,IDUM)
18391 CALL DT_EVTEMC(PRCLPR(1),PRCLPR(2),PRCLPR(3),PRCLPR(4),
18392 & 2,IDUM,IDUM)
18393 CALL DT_EVTEMC(PRCLTA(1),PRCLTA(2),PRCLTA(3),PRCLTA(4),
18394 & 2,IDUM,IDUM)
18395 CALL DT_EVTEMC(PFSP(1),PFSP(2),PFSP(3),PFSP(4),2,IDUM,IDUM)
18396**sr 19.12. changed to avoid output when used with phojet
18397C CHKLEV = TINY3
18398 CHKLEV = TINY1
18399 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,501,IREJ1)
18400C IF ((NEVHKK.EQ.409).OR.(NEVHKK.EQ.460).OR.(NEVHKK.EQ.765))
18401C & CALL DT_EVTOUT(4)
18402 IF (IREJ1.GT.0) RETURN
18403 ENDIF
18404
18405 RETURN
18406 END
18407
18408*$ CREATE DT_SCN4BA.FOR
18409*COPY DT_SCN4BA
18410*
18411*===scn4ba=============================================================*
18412*
18413 SUBROUTINE DT_SCN4BA
18414
18415************************************************************************
18416* SCan /DTEVT1/ 4 BAryons which are not able to escape nuclear pot. *
18417* This version dated 12.12.95 is written by S. Roesler. *
18418************************************************************************
18419
18420 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18421 SAVE
18422 PARAMETER ( LINP = 10 ,
18423 & LOUT = 6 ,
18424 & LDAT = 9 )
18425 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
18426 & TINY10=1.0D-10)
18427
18428* event history
18429 PARAMETER (NMXHKK=200000)
18430 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18431 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18432 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18433* extended event history
18434 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18435 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18436 & IHIST(2,NMXHKK)
18437* particle properties (BAMJET index convention)
18438 CHARACTER*8 ANAME
18439 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18440 & IICH(210),IIBAR(210),K1(210),K2(210)
18441* properties of interacting particles
18442 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
18443* nuclear potential
18444 LOGICAL LFERMI
18445 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
18446 & EBINDP(2),EBINDN(2),EPOT(2,210),
18447 & ETACOU(2),ICOUL,LFERMI
18448* treatment of residual nuclei: wounded nucleons
18449 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
18450* treatment of residual nuclei: 4-momenta
18451 LOGICAL LRCLPR,LRCLTA
18452 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18453 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18454
18455 DIMENSION PLAB(2,5),PCMS(4)
18456
18457 IREJ = 0
18458
18459* get number of wounded nucleons
18460 NPW = 0
18461 NPW0 = 0
18462 NPCW = 0
18463 NPSTCK = 0
18464 NTW = 0
18465 NTW0 = 0
18466 NTCW = 0
18467 NTSTCK = 0
18468
18469 ISGLPR = 0
18470 ISGLTA = 0
18471 LRCLPR = .FALSE.
18472 LRCLTA = .FALSE.
18473
18474C DO 2 I=1,NHKK
18475 DO 2 I=1,NPOINT(1)
18476* projectile nucleons wounded in primary interaction and in fzc
18477 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.17)) THEN
18478 NPW = NPW+1
18479 IPW(NPW) = I
18480 NPSTCK = NPSTCK+1
18481 IF (IDHKK(I).EQ.2212) NPCW = NPCW+1
18482 IF (ISTHKK(I).EQ.11) NPW0 = NPW0+1
18483C IF (IP.GT.1) THEN
18484 DO 5 K=1,4
18485 TRCLPR(K) = TRCLPR(K)-PHKK(K,I)
18486 5 CONTINUE
18487C ENDIF
18488* target nucleons wounded in primary interaction and in fzc
18489 ELSEIF ((ISTHKK(I).EQ.12).OR.(ISTHKK(I).EQ.18)) THEN
18490 NTW = NTW+1
18491 ITW(NTW) = I
18492 NTSTCK = NTSTCK+1
18493 IF (IDHKK(I).EQ.2212) NTCW = NTCW+1
18494 IF (ISTHKK(I).EQ.12) NTW0 = NTW0+1
18495 IF (IT.GT.1) THEN
18496 DO 6 K=1,4
18497 TRCLTA(K) = TRCLTA(K)-PHKK(K,I)
18498 6 CONTINUE
18499 ENDIF
18500 ELSEIF (ISTHKK(I).EQ.13) THEN
18501 ISGLPR = I
18502 ELSEIF (ISTHKK(I).EQ.14) THEN
18503 ISGLTA = I
18504 ENDIF
18505 2 CONTINUE
18506
18507 DO 11 I=NPOINT(4),NHKK
18508* baryons which are unable to escape the nuclear potential of proj.
18509 IF (ISTHKK(I).EQ.15) THEN
18510 ISGLPR = I
18511 NPSTCK = NPSTCK-1
18512 IF (IIBAR(IDBAM(I)).NE.0) THEN
18513 NPW = NPW-1
18514 IF (IICH(IDBAM(I)).GT.0) NPCW = NPCW-1
18515 ENDIF
18516 DO 7 K=1,4
18517 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18518 7 CONTINUE
18519* baryons which are unable to escape the nuclear potential of targ.
18520 ELSEIF (ISTHKK(I).EQ.16) THEN
18521 ISGLTA = I
18522 NTSTCK = NTSTCK-1
18523 IF (IIBAR(IDBAM(I)).NE.0) THEN
18524 NTW = NTW-1
18525 IF (IICH(IDBAM(I)).GT.0) NTCW = NTCW-1
18526 ENDIF
18527 DO 8 K=1,4
18528 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18529 8 CONTINUE
18530 ENDIF
18531 11 CONTINUE
18532
18533* residual nuclei so far
18534 IRESP = IP-NPSTCK
18535 IREST = IT-NTSTCK
18536
18537* ckeck for "residual nuclei" consisting of one nucleon only
18538* treat it as final state particle
18539 IF (IRESP.EQ.1) THEN
18540 ID = IDBAM(ISGLPR)
18541 IST = ISTHKK(ISGLPR)
18542 CALL DT_LTRANS(PHKK(1,ISGLPR),PHKK(2,ISGLPR),
18543 & PHKK(3,ISGLPR),PHKK(4,ISGLPR),
18544 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,2)
18545 IF (IST.EQ.13) THEN
18546 ISTHKK(ISGLPR) = 11
18547 ELSE
18548 ISTHKK(ISGLPR) = 2
18549 ENDIF
18550 CALL DT_EVTPUT(1,IDHKK(ISGLPR),ISGLPR,0,
18551 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18552 & IDRES(ISGLPR),IDXRES(ISGLPR),IDCH(ISGLPR))
18553 NOBAM(NHKK) = NOBAM(ISGLPR)
18554 JDAHKK(1,ISGLPR) = NHKK
18555 DO 21 K=1,4
18556 TRCLPR(K) = TRCLPR(K)-PHKK(K,ISGLPR)
18557 21 CONTINUE
18558 ENDIF
18559 IF (IREST.EQ.1) THEN
18560 ID = IDBAM(ISGLTA)
18561 IST = ISTHKK(ISGLTA)
18562 CALL DT_LTRANS(PHKK(1,ISGLTA),PHKK(2,ISGLTA),
18563 & PHKK(3,ISGLTA),PHKK(4,ISGLTA),
18564 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,3)
18565 IF (IST.EQ.14) THEN
18566 ISTHKK(ISGLTA) = 12
18567 ELSE
18568 ISTHKK(ISGLTA) = 2
18569 ENDIF
18570 CALL DT_EVTPUT(1,IDHKK(ISGLTA),ISGLTA,0,
18571 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18572 & IDRES(ISGLTA),IDXRES(ISGLTA),IDCH(ISGLTA))
18573 NOBAM(NHKK) = NOBAM(ISGLTA)
18574 JDAHKK(1,ISGLTA) = NHKK
18575 DO 22 K=1,4
18576 TRCLTA(K) = TRCLTA(K)-PHKK(K,ISGLTA)
18577 22 CONTINUE
18578 ENDIF
18579
18580* get nuclear potential corresp. to the residual nucleus
18581 IPRCL = IP -NPW
18582 IPZRCL = IPZ-NPCW
18583 ITRCL = IT -NTW
18584 ITZRCL = ITZ-NTCW
18585 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
18586
18587* baryons unable to escape the nuclear potential are treated as
18588* excited nucleons (ISTHKK=15,16)
18589 DO 3 I=NPOINT(4),NHKK
18590 IF (ISTHKK(I).EQ.1) THEN
18591 ID = IDBAM(I)
18592 IF ( ((ID.EQ.1).OR.(ID.EQ.8)).AND.(NOBAM(I).NE.3) ) THEN
18593* final state n and p not being outside of both nuclei are considered
18594 NPOTP = 1
18595 NPOTT = 1
18596 IF ( (IP.GT.1) .AND.(IRESP.GT.1).AND.
18597 & (NOBAM(I).NE.1).AND.(NPW.GT.0) ) THEN
18598* Lorentz-trsf. into proj. rest sys. for those being inside proj.
18599 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18600 & PHKK(4,I),PLAB(1,1),PLAB(1,2),PLAB(1,3),
18601 & PLAB(1,4),ID,-2)
18602 PLABT = SQRT(PLAB(1,1)**2+PLAB(1,2)**2+PLAB(1,3)**2)
18603 PLAB(1,5) = SQRT(ABS( (PLAB(1,4)-PLABT)*
18604 & (PLAB(1,4)+PLABT) ))
18605 EKIN = PLAB(1,4)-PLAB(1,5)
18606 IF (EKIN.LE.EPOT(1,ID)) NPOTP = 15
18607 IF ((ID.EQ.1).AND.(NPCW.LE.0)) NPOTP = 1
18608 ENDIF
18609 IF ( (IT.GT.1) .AND.(IREST.GT.1).AND.
18610 & (NOBAM(I).NE.2).AND.(NTW.GT.0) ) THEN
18611* Lorentz-trsf. into targ. rest sys. for those being inside targ.
18612 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18613 & PHKK(4,I),PLAB(2,1),PLAB(2,2),PLAB(2,3),
18614 & PLAB(2,4),ID,-3)
18615 PLABT = SQRT(PLAB(2,1)**2+PLAB(2,2)**2+PLAB(2,3)**2)
18616 PLAB(2,5) = SQRT(ABS( (PLAB(2,4)-PLABT)*
18617 & (PLAB(2,4)+PLABT) ))
18618 EKIN = PLAB(2,4)-PLAB(2,5)
18619 IF (EKIN.LE.EPOT(2,ID)) NPOTT = 16
18620 IF ((ID.EQ.1).AND.(NTCW.LE.0)) NPOTT = 1
18621 ENDIF
18622 IF (PHKK(3,I).GE.ZERO) THEN
18623 ISTHKK(I) = NPOTT
18624 IF (NPOTP.NE.1) ISTHKK(I) = NPOTP
18625 ELSE
18626 ISTHKK(I) = NPOTP
18627 IF (NPOTT.NE.1) ISTHKK(I) = NPOTT
18628 ENDIF
18629 IF (ISTHKK(I).NE.1) THEN
18630 J = ISTHKK(I)-14
18631 DO 4 K=1,5
18632 PHKK(K,I) = PLAB(J,K)
18633 4 CONTINUE
18634 IF (ISTHKK(I).EQ.15) THEN
18635 NPW = NPW-1
18636 IF (ID.EQ.1) NPCW = NPCW-1
18637 DO 9 K=1,4
18638 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18639 9 CONTINUE
18640 ELSEIF (ISTHKK(I).EQ.16) THEN
18641 NTW = NTW-1
18642 IF (ID.EQ.1) NTCW = NTCW-1
18643 DO 10 K=1,4
18644 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18645 10 CONTINUE
18646 ENDIF
18647 ENDIF
18648 ENDIF
18649 ENDIF
18650 3 CONTINUE
18651
18652* again: get nuclear potential corresp. to the residual nucleus
18653 IPRCL = IP -NPW
18654 IPZRCL = IPZ-NPCW
18655 ITRCL = IT -NTW
18656 ITZRCL = ITZ-NTCW
18657c AFERP = 1.2D0*FERMOD*(ONE+(DBLE(IP+10-NPW0)/DBLE(IP+10))**1.1D0)
18658cC AFERP = 1.21D0*FERMOD*(ONE+(DBLE(IP+40-NPW0)/DBLE(IP+40))**1.1D0)
18659c & *(0.94D0+0.3D0*EXP(-DBLE(NPW0)/5.0D0)) /2.0D0
18660C AFERP = 0.0D0
18661c AFERT = 1.2D0*FERMOD*(ONE+(DBLE(IT+10-NTW0)/DBLE(IT+10))**1.1D0)
18662cC AFERT = 1.21D0*FERMOD*(ONE+(DBLE(IT+40-NTW0)/DBLE(IT+40))**1.1D0)
18663c & *(0.94D0+0.3D0*EXP(-DBLE(NTW0)/5.0D0)) /2.0D0
18664C AFERT = 0.0D0
18665C IF (AFERP.LT.FERMOD) AFERP = FERMOD+0.1
18666C IF (AFERT.LT.FERMOD) AFERT = FERMOD+0.1
18667C IF (AFERP.GT.0.85D0) AFERP = 0.85D0
18668C IF (AFERT.GT.0.85D0) AFERT = 0.85D0
18669 AFERP = FERMOD+0.1D0
18670 AFERT = FERMOD+0.1D0
18671
18672 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,AFERP,AFERT,1)
18673
18674 RETURN
18675 END
18676
18677*$ CREATE DT_FICONF.FOR
18678*COPY DT_FICONF
18679*
18680*===ficonf=============================================================*
18681*
18682 SUBROUTINE DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ)
18683
18684************************************************************************
18685* Treatment of FInal CONFiguration including evaporation, fission and *
18686* Fermi-break-up (for light nuclei only). *
18687* Adopted from the original routine FINALE and extended to residual *
18688* projectile nuclei. *
18689* This version dated 12.12.95 is written by S. Roesler. *
18690* *
18691* Last change 27.12.2006 by S. Roesler. *
18692************************************************************************
18693
18694 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18695 SAVE
18696 PARAMETER ( LINP = 10 ,
18697 & LOUT = 6 ,
18698 & LDAT = 9 )
18699 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
18700 PARAMETER (ANGLGB=5.0D-16)
18701 PARAMETER (AMUAMU=0.93149432D0,AMELEC=0.51099906D-3)
18702
18703* event history
18704 PARAMETER (NMXHKK=200000)
18705 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18706 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18707 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18708* extended event history
18709 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18710 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18711 & IHIST(2,NMXHKK)
18712* rejection counter
18713 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
18714 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
18715 & IREXCI(3),IRDIFF(2),IRINC
18716* central particle production, impact parameter biasing
18717 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
18718* particle properties (BAMJET index convention)
18719 CHARACTER*8 ANAME
18720 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18721 & IICH(210),IIBAR(210),K1(210),K2(210)
18722* treatment of residual nuclei: 4-momenta
18723 LOGICAL LRCLPR,LRCLTA
18724 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18725 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18726* treatment of residual nuclei: properties of residual nuclei
18727 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
18728 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
18729 & NTOTFI(2),NPROFI(2)
18730* statistics: residual nuclei
18731 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
18732 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
18733 & NINCST(2,4),NINCEV(2),
18734 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
18735 & NRESPB(2),NRESCH(2),NRESEV(4),
18736 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
18737 & NEVAFI(2,2)
18738* flags for input different options
18739 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
18740 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
18741 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
18742* (original name: FINUC)
18743 PARAMETER (MXP=999)
18744 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
18745 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
18746 & TKI (MXP), PLR (MXP), WEI (MXP),
18747 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
18748 & KPART (MXP)
18749* (original name: RESNUC)
18750 LOGICAL LRNFSS, LFRAGM
18751 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
18752 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
18753 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
18754 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
18755 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
18756 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
18757 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
18758 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
18759 & LFRAGM
18760 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
18761 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
18762 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
18763 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
18764 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
18765 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
18766 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
18767 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
18768* (original name: PAREVT)
18769 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
18770 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
18771 PARAMETER ( NALLWP = 39 )
18772 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
18773 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
18774 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
18775 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
18776* event flag
18777 COMMON /DTEVNO/ NEVENT,ICASCA
18778
18779 DIMENSION INUC(2),IDXPAR(2),IDPAR(2),AIF(2),AIZF(2),AMRCL(2),
18780 & PRCL(2,4),MO1(2),MO2(2),VRCL(2,4),WRCL(2,4),
18781 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4)
18782
18783 DIMENSION EXPNUC(2),EXC(2,260),NEXC(2,260)
18784 LOGICAL LLCPOT
18785 DATA EXC,NEXC /520*ZERO,520*0/
18786 DATA EXPNUC /4.0D-3,4.0D-3/
18787
18788 IREJ = 0
18789 LRCLPR = .FALSE.
18790 LRCLTA = .FALSE.
18791
18792* skip residual nucleus treatment if not requested or in case
18793* of central collisions
18794 IF ((.NOT.LEVPRT).OR.(ICENTR.GT.0).OR.(ICENTR.EQ.-1)) RETURN
18795
18796 DO 1 K=1,2
18797 IDPAR(K) = 0
18798 IDXPAR(K)= 0
18799 NTOT(K) = 0
18800 NTOTFI(K)= 0
18801 NPRO(K) = 0
18802 NPROFI(K)= 0
18803 NN(K) = 0
18804 NH(K) = 0
18805 NHPOS(K) = 0
18806 NQ(K) = 0
18807 EEXC(K) = ZERO
18808 MO1(K) = 0
18809 MO2(K) = 0
18810 DO 2 I=1,4
18811 VRCL(K,I) = ZERO
18812 WRCL(K,I) = ZERO
18813 2 CONTINUE
18814 1 CONTINUE
18815 NFSP = 0
18816 INUC(1) = IP
18817 INUC(2) = IT
18818
18819 DO 3 I=1,NHKK
18820
18821* number of final state particles
18822 IF (ABS(ISTHKK(I)).EQ.1) THEN
18823 NFSP = NFSP+1
18824 IDFSP = IDBAM(I)
18825 ENDIF
18826
18827* properties of remaining nucleon configurations
18828 KF = 0
18829 IF ((ISTHKK(I).EQ.13).OR.(ISTHKK(I).EQ.15)) KF = 1
18830 IF ((ISTHKK(I).EQ.14).OR.(ISTHKK(I).EQ.16)) KF = 2
18831 IF (KF.GT.0) THEN
18832 IF (MO1(KF).EQ.0) MO1(KF) = I
18833 MO2(KF) = I
18834* position of residual nucleus = average position of nucleons
18835 DO 4 K=1,4
18836 VRCL(KF,K) = VRCL(KF,K)+VHKK(K,I)
18837 WRCL(KF,K) = WRCL(KF,K)+WHKK(K,I)
18838 4 CONTINUE
18839* total number of particles contributing to each residual nucleus
18840 NTOT(KF) = NTOT(KF)+1
18841 IDTMP = IDBAM(I)
18842 IDXTMP = I
18843* total charge of residual nuclei
18844 NQ(KF) = NQ(KF)+IICH(IDTMP)
18845* number of protons
18846 IF (IDHKK(I).EQ.2212) THEN
18847 NPRO(KF) = NPRO(KF)+1
18848* number of neutrons
18849 ELSEIF (IDHKK(I).EQ.2112) THEN
18850 NN(KF) = NN(KF)+1
18851 ELSE
18852* number of baryons other than n, p
18853 IF (IIBAR(IDTMP).EQ.1) THEN
18854 NH(KF) = NH(KF)+1
18855 IF (IICH(IDTMP).EQ.1) NHPOS(KF) = NHPOS(KF)+1
18856 ELSE
18857* any other mesons (status set to 1)
18858C WRITE(LOUT,1002) KF,IDTMP
18859C1002 FORMAT(1X,'FICONF: residual nucleus ',I2,
18860C & ' containing meson ',I4,', status set to 1')
18861 ISTHKK(I) = 1
18862 IDTMP = IDPAR(KF)
18863 IDXTMP = IDXPAR(KF)
18864 NTOT(KF) = NTOT(KF)-1
18865 ENDIF
18866 ENDIF
18867 IDPAR(KF) = IDTMP
18868 IDXPAR(KF) = IDXTMP
18869 ENDIF
18870 3 CONTINUE
18871
18872* reject elastic events (def: one final state particle = projectile)
18873 IF ((IP.EQ.1).AND.(NFSP.EQ.1).AND.(IDFSP.EQ.IJPROJ)) THEN
18874 IREXCI(3) = IREXCI(3)+1
18875 GOTO 9999
18876C RETURN
18877 ENDIF
18878
18879* check if one nucleus disappeared..
18880C IF ((IP.GT.1).AND.(NTOT(1).EQ.0).AND.(NTOT(2).NE.0)) THEN
18881C DO 5 K=1,4
18882C PRCLTA(K) = PRCLTA(K)+PRCLPR(K)
18883C PRCLPR(K) = ZERO
18884C 5 CONTINUE
18885C ELSEIF ((IT.GT.1).AND.(NTOT(2).EQ.0).AND.(NTOT(1).NE.0)) THEN
18886C DO 6 K=1,4
18887C PRCLPR(K) = PRCLPR(K)+PRCLTA(K)
18888C PRCLTA(K) = ZERO
18889C 6 CONTINUE
18890C ENDIF
18891
18892 ICOR = 0
18893 INORCL = 0
18894 DO 7 I=1,2
18895 DO 8 K=1,4
18896* get the average of the nucleon positions
18897 VRCL(I,K) = VRCL(I,K)/MAX(NTOT(I),1)
18898 WRCL(I,K) = WRCL(I,K)/MAX(NTOT(I),1)
18899 IF (I.EQ.1) PRCL(1,K) = PRCLPR(K)
18900 IF (I.EQ.2) PRCL(2,K) = PRCLTA(K)
18901 8 CONTINUE
18902* mass number and charge of residual nuclei
18903 AIF(I) = DBLE(NTOT(I))
18904 AIZF(I) = DBLE(NPRO(I)+NHPOS(I))
18905 IF (NTOT(I).GT.1) THEN
18906* masses of residual nuclei in ground state
18907 AMRCL0(I) = AIF(I)*AMUAMU+1.0D-3*DT_ENERGY(AIF(I),AIZF(I))
18908* masses of residual nuclei
18909 PTORCL = SQRT(PRCL(I,1)**2+PRCL(I,2)**2+PRCL(I,3)**2)
18910 AMRCL(I) = (PRCL(I,4)-PTORCL)*(PRCL(I,4)+PTORCL)
18911 IF (AMRCL(I).GT.ZERO) AMRCL(I) = SQRT(AMRCL(I))
18912*
18913* M_res^2 < 0 : configuration not allowed
18914*
18915* a) re-calculate E_exc with scaled nuclear potential
18916* (conditional jump to label 9998)
18917* b) or reject event if N_loop(max) is exceeded
18918* (conditional jump to label 9999)
18919*
18920 IF (AMRCL(I).LE.ZERO) THEN
18921 IF (IOULEV(3).GT.0)
18922 & WRITE(LOUT,1000) I,PRCL(I,1),PRCL(I,2),PRCL(I,3),
18923 & PRCL(I,4),NTOT
18924 1000 FORMAT(1X,'warning! negative excitation energy',/,
18925 & I4,4E15.4,2I4)
18926 AMRCL(I) = ZERO
18927 EEXC(I) = ZERO
18928 IF (NLOOP.LE.500) THEN
18929 GOTO 9998
18930 ELSE
18931 IREXCI(2) = IREXCI(2)+1
18932 GOTO 9999
18933 ENDIF
18934*
18935* 0 < M_res < M_res0 : mass below ground-state mass
18936*
18937* a) we had residual nuclei with mass N_tot and reasonable E_exc
18938* before- assign average E_exc of those configurations to this
18939* one ( Nexc(i,N_tot) > 0 )
18940* b) or (and this applies always if run in transport codes) go up
18941* one mass number and
18942* i) if mass now larger than proj/targ mass or if run in
18943* transport codes assign average E_exc per wounded nucleon
18944* x number of wounded nucleons (Inuc-Ntot)
18945* ii) or assign average E_exc of those configurations to this
18946* one ( Nexc(i,m) > 0 )
18947*
18948 ELSEIF ((AMRCL(I).GT.ZERO).AND.(AMRCL(I).LT.AMRCL0(I)))
18949 & THEN
18950 M = MIN(NTOT(I),260)
18951 IF (NEXC(I,M).GT.0) THEN
18952 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18953 ELSE
18954 70 CONTINUE
18955 M = M+1
18956**sr corrected 27.12.06
18957* IF (M.GE.INUC(I)) THEN
18958* AMRCL(I) = AMRCL0(I)+EXPNUC(I)*DBLE(NTOT(I))
18959 IF ((M.GE.INUC(I)).OR.(ICASCA.GT.0)) THEN
18960 IF ( INUC (I) .GT. NTOT (I) ) THEN
18961 AMRCL(I) = AMRCL0(I)
18962 & + EXPNUC(I)*DBLE(MAX(INUC(I)-NTOT(I),0))
18963 ELSE
18964 AMRCL(I) = AMRCL0(I) + 0.5D+00 * EXPNUC(I)
18965 END IF
18966**
18967 ELSE
18968 IF (NEXC(I,M).GT.0) THEN
18969 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18970 ELSE
18971 GOTO 70
18972 ENDIF
18973 ENDIF
18974 ENDIF
18975 EEXC(I) = AMRCL(I)-AMRCL0(I)
18976 ICOR = ICOR+I
18977*
18978* M_res > 2.5 x M_res0 : unreasonably(?) high E_exc
18979*
18980* a) re-calculate E_exc with scaled nuclear potential
18981* (conditional jump to label 9998)
18982* b) or reject event if N_loop(max) is exceeded
18983* (conditional jump to label 9999)
18984*
18985*
18986 ELSEIF (AMRCL(I).GE.2.5D0*AMRCL0(I)) THEN
18987 IF (IOULEV(3).GT.0)
18988 & WRITE(LOUT,1004) I,AMRCL(I),AMRCL0(I),NTOT,NEVHKK
18989 1004 FORMAT(1X,'warning! too high excitation energy',/,
18990 & I4,1P,2E15.4,3I5)
18991 AMRCL(I) = ZERO
18992 EEXC(I) = ZERO
18993 IF (NLOOP.LE.500) THEN
18994 GOTO 9998
18995 ELSE
18996 IREXCI(2) = IREXCI(2)+1
18997 GOTO 9999
18998 ENDIF
18999*
19000* Otherwise (reasonable E_exc) :
19001* E_exc = M_res - M_res0
19002* in addition: calculate and save E_exc per wounded nucleon as
19003* well as E_exc in <E_exc> counter
19004*
19005 ELSE
19006* excitation energies of residual nuclei
19007 EEXC(I) = AMRCL(I)-AMRCL0(I)
19008**sr 27.12.06 new excitation energy correction by A.F.
19009*
19010* all parts with Ilcopt<3 commented since not used
19011*
19012* still to be done/decided:
19013* Increase Icor and put back both residual nuclei on mass shell
19014* with the exciting correction further below.
19015* For the moment the modification in the excitation energy is simply
19016* corrected by scaling the energy of the residual nucleus.
19017*
19018 LLCPOT = .TRUE.
19019 ILCOPT = 3
19020 IF ( LLCPOT ) THEN
19021 NNCHIT = MAX ( INUC (I) - NTOT (I), 0 )
19022 IF ( ILCOPT .LE. 2 ) THEN
19023C* Patch for Fermi momentum reduction correlated with impact parameter:
19024C FRMRDC = MIN ( (PFRMAV(INUC(I))/APFRMX)**3, ONE )
19025C DLKPRH = 0.1D+00 + 0.5D+00 / SQRT(DBLE(INUC(I)))
19026C AKPRHO = ONE - DLKPRH
19027C* f x K rho_cen + (1-f) x 0.5 x K rho_cen = frmrdc x rho_cen
19028C FRCFLL = MAX ( 2.D+00 * FRMRDC / AKPRHO - ONE,
19029C & 0.05D+00 )
19030C* REDORI = 0.75D+00
19031C* REDORI = ONE
19032C REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19033 ELSE
19034 DLKPRH = ZERO
19035 RDCORE = 1.14D+00 * DBLE(INUC(I))**(ONE/3.D+00)
19036* Take out roughly one/half of the skin:
19037 RDCORE = RDCORE - 0.5D+00
19038 FRCFLL = RDCORE**3
19039 PRSKIN = (RDCORE+2.4D+00)**3 - FRCFLL
19040 PRSKIN = 0.5D+00 * PRSKIN / ( PRSKIN + FRCFLL )
19041 FRCFLL = ONE - PRSKIN
19042 FRMRDC = FRCFLL + 0.5D+00 * PRSKIN
19043 REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19044 END IF
19045 IF ( NNCHIT .GT. 0 ) THEN
19046C IF ( ILCOPT .EQ. 1 ) THEN
19047C SKINRH = ONE - FRCFLL / (DBLE(INUC(I))-ONE)
19048C DO 1220 NCH = 1, 10
19049C ETAETA = ( ONE - SKINRH**INUC(I)
19050C & - DBLE(INUC(I))* ( ONE - FRCFLL )
19051C & * ( ONE - SKINRH ) )
19052C & / ( SKINRH**INUC(I) - DBLE (INUC(I))
19053C & * ( ONE - FRCFLL) * SKINRH )
19054C SKINRH = SKINRH * ( ONE + ETAETA )
19055C 1220 CONTINUE
19056C PRSKIN = SKINRH**(NNCHIT-1)
19057C ELSE IF ( ILCOPT .EQ. 2 ) THEN
19058C PRSKIN = ONE - FRCFLL
19059C END IF
19060 REDCTN = ZERO
19061 DO 1230 NCH = 1, NNCHIT
19062 IF (DT_RNDM(PRFRMI) .LT. PRSKIN) THEN
19063 PRFRMI = (( ONE - 2.D+00 * DLKPRH )
19064 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19065 ELSE
19066 PRFRMI = ( ONE - 2.D+00 * DLKPRH
19067 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19068 END IF
19069 REDCTN = REDCTN + PRFRMI**2
19070 1230 CONTINUE
19071 REDCTN = REDCTN / DBLE (NNCHIT)
19072 ELSE
19073 REDCTN = 0.5D+00
19074 END IF
19075 EEXC (I) = EEXC (I) * REDCTN / REDORI
19076 AMRCL (I) = AMRCL0 (I) + EEXC (I)
19077 PRCL(I,4) = SQRT ( PTORCL**2 + AMRCL(I)**2 )
19078 END IF
19079**
19080 IF (ICASCA.EQ.0) THEN
19081 EXPNUC(I) = EEXC(I)/MAX(1,INUC(I)-NTOT(I))
19082 M = MIN(NTOT(I),260)
19083 EXC(I,M) = EXC(I,M)+EEXC(I)
19084 NEXC(I,M) = NEXC(I,M)+1
19085 ENDIF
19086 ENDIF
19087 ELSEIF (NTOT(I).EQ.1) THEN
19088 WRITE(LOUT,1003) I
19089 1003 FORMAT(1X,'FICONF: warning! NTOT(I)=1? (I=',I3,')')
19090 GOTO 9999
19091 ELSE
19092 AMRCL0(I) = ZERO
19093 AMRCL(I) = ZERO
19094 EEXC(I) = ZERO
19095 INORCL = INORCL+I
19096 ENDIF
19097 7 CONTINUE
19098
19099 PRCLPR(5) = AMRCL(1)
19100 PRCLTA(5) = AMRCL(2)
19101
19102 IF (ICOR.GT.0) THEN
19103 IF (INORCL.EQ.0) THEN
19104* one or both residual nuclei consist of one nucleon only, transform
19105* this nucleon on mass shell
19106 DO 9 K=1,4
19107 P1IN(K) = PRCL(1,K)
19108 P2IN(K) = PRCL(2,K)
19109 9 CONTINUE
19110 XM1 = AMRCL(1)
19111 XM2 = AMRCL(2)
19112 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
19113 IF (IREJ1.GT.0) THEN
19114 WRITE(LOUT,*) 'ficonf-mashel rejection'
19115 GOTO 9999
19116 ENDIF
19117 DO 10 K=1,4
19118 PRCL(1,K) = P1OUT(K)
19119 PRCL(2,K) = P2OUT(K)
19120 PRCLPR(K) = P1OUT(K)
19121 PRCLTA(K) = P2OUT(K)
19122 10 CONTINUE
19123 PRCLPR(5) = AMRCL(1)
19124 PRCLTA(5) = AMRCL(2)
19125 ELSE
19126 IF (IOULEV(3).GT.0)
19127 & WRITE(LOUT,1001) NEVHKK,INT(AIF(1)),INT(AIZF(1)),
19128 & INT(AIF(2)),INT(AIZF(2)),AMRCL0(1),
19129 & AMRCL(1),AMRCL(1)-AMRCL0(1),AMRCL0(2),
19130 & AMRCL(2),AMRCL(2)-AMRCL0(2)
19131 1001 FORMAT(1X,'FICONF: warning! no residual nucleus for',
19132 & ' correction',/,11X,'at event',I8,
19133 & ', nucleon config. 1:',2I4,' 2:',2I4,
19134 & 2(/,11X,3E12.3))
19135 IF (NLOOP.LE.500) THEN
19136 GOTO 9998
19137 ELSE
19138 IREXCI(1) = IREXCI(1)+1
19139 ENDIF
19140 ENDIF
19141 ENDIF
19142
19143* update counter
19144C IF (NRESEV(1).NE.NEVHKK) THEN
19145C NRESEV(1) = NEVHKK
19146C NRESEV(2) = NRESEV(2)+1
19147C ENDIF
19148 NRESEV(2) = NRESEV(2)+1
19149 DO 15 I=1,2
19150 EXCDPM(I) = EXCDPM(I)+EEXC(I)
19151 EXCDPM(I+2) = EXCDPM(I+2)+(EEXC(I)/MAX(NTOT(I),1))
19152 NRESTO(I) = NRESTO(I)+NTOT(I)
19153 NRESPR(I) = NRESPR(I)+NPRO(I)
19154 NRESNU(I) = NRESNU(I)+NN(I)
19155 NRESBA(I) = NRESBA(I)+NH(I)
19156 NRESPB(I) = NRESPB(I)+NHPOS(I)
19157 NRESCH(I) = NRESCH(I)+NQ(I)
19158 15 CONTINUE
19159
19160* evaporation
19161 IF (LEVPRT) THEN
19162 DO 13 I=1,2
19163* initialize evaporation counter
19164 EEXCFI(I) = ZERO
19165 IF ((INUC(I).GT.1).AND.(AIF(I).GT.ONE).AND.
19166 & (EEXC(I).GT.ZERO)) THEN
19167* put residual nuclei into DTEVT1
19168 IDRCL = 80000
19169 JMASS = INT( AIF(I))
19170 JCHAR = INT(AIZF(I))
19171* the following patch is required to transmit the correct excitation
19172* energy to Eventd
19173 IF (ITRSPT.EQ.1) THEN
19174 IF ((ABS(AMRCL(I)-AMRCL0(I)-EEXC(I)).GT.1.D-04).AND.
19175 & (IOULEV(3).GT.0))
19176 & WRITE(LOUT,*)
19177 & ' DT_FICONF:AMRCL(I),AMRCL0(I),EEXC(I)',
19178 & AMRCL(I),AMRCL0(I),EEXC(I)
19179 PRCL0 = PRCL(I,4)
19180 PRCL(I,4) =SQRT(AMRCL(I)**2+PRCL(I,1)**2+PRCL(I,2)**2
19181 & +PRCL(I,3)**2)
19182 IF (ABS(PRCL0-PRCL(I,4)).GT.0.1D0) THEN
19183 WRITE(LOUT,*)
19184 & ' PRCL(I,4) recalculated :',PRCL0,PRCL(I,4)
19185 ENDIF
19186 ENDIF
19187 CALL DT_EVTPUT(1000,IDRCL,MO1(I),MO2(I),PRCL(I,1),
19188 & PRCL(I,2),PRCL(I,3),PRCL(I,4),JMASS,JCHAR,0)
19189**sr 22.6.97
19190 NOBAM(NHKK) = I
19191**
19192 DO 14 J=1,4
19193 VHKK(J,NHKK) = VRCL(I,J)
19194 WHKK(J,NHKK) = WRCL(I,J)
19195 14 CONTINUE
19196* interface to evaporation module - fill final residual nucleus into
19197* common FKRESN
19198* fill resnuc only if code is not used as event generator in Fluka
19199 IF (ITRSPT.NE.1) THEN
19200 PXRES = PRCL(I,1)
19201 PYRES = PRCL(I,2)
19202 PZRES = PRCL(I,3)
19203 IBRES = NPRO(I)+NN(I)+NH(I)
19204 ICRES = NPRO(I)+NHPOS(I)
19205 ANOW = DBLE(IBRES)
19206 ZNOW = DBLE(ICRES)
19207 PTRES = SQRT(PXRES**2+PYRES**2+PZRES**2)
19208* ground state mass of the residual nucleus (should be equal to AM0T)
19209 AMMRES = AMRCL0(I)
19210 AMNRES = AMMRES-ZNOW*AMELEC+ELBNDE(ICRES)
19211* common FKFINU
19212 TV = ZERO
19213* kinetic energy of residual nucleus
19214 TVRECL = PRCL(I,4)-AMRCL(I)
19215* excitation energy of residual nucleus
19216 TVCMS = EEXC(I)
19217 PTOLD = PTRES
19218 PTRES = SQRT(ABS(TVRECL*(TVRECL+
19219 & 2.0D0*(AMMRES+TVCMS))))
19220 IF (PTOLD.LT.ANGLGB) THEN
19221 CALL DT_RACO(PXRES,PYRES,PZRES)
19222 PTOLD = ONE
19223 ENDIF
19224 PXRES = PXRES*PTRES/PTOLD
19225 PYRES = PYRES*PTRES/PTOLD
19226 PZRES = PZRES*PTRES/PTOLD
19227* zero counter of secondaries from evaporation
19228 NP = 0
19229* evaporation
19230 WE = ONE
19231 CALL DT_EVEVAP(WE)
19232* put evaporated particles and residual nuclei to DTEVT1
19233 MO = NHKK
19234 CALL DT_EVA2HE(MO,EXCITF,I,IREJ1)
19235 ENDIF
19236 EEXCFI(I) = EXCITF
19237 EXCEVA(I) = EXCEVA(I)+EXCITF
19238 ENDIF
19239 13 CONTINUE
19240 ENDIF
19241
19242 RETURN
19243
19244C9998 IREXCI(1) = IREXCI(1)+1
19245 9998 IREJ = IREJ+1
19246 9999 CONTINUE
19247 LRCLPR = .TRUE.
19248 LRCLTA = .TRUE.
19249 IREJ = IREJ+1
19250 RETURN
19251 END
19252
19253*$ CREATE DT_EVA2HE.FOR
19254*COPY DT_EVA2HE
19255* *
19256*====eva2he============================================================*
19257* *
19258 SUBROUTINE DT_EVA2HE(MO,EEXCF,IRCL,IREJ)
19259
19260************************************************************************
19261* Interface between common's of evaporation module (FKFINU,FKFHVY) *
19262* and DTEVT1. *
19263* MO DTEVT1-index of "mother" (residual) nucleus before evap. *
19264* EEXCF exitation energy of residual nucleus after evaporation *
19265* IRCL = 1 projectile residual nucleus *
19266* = 2 target residual nucleus *
19267* This version dated 19.04.95 is written by S. Roesler. *
19268* *
19269* Last change 27.12.2006 by S. Roesler. *
19270************************************************************************
19271
19272 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19273 SAVE
19274 PARAMETER ( LINP = 10 ,
19275 & LOUT = 6 ,
19276 & LDAT = 9 )
19277 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3)
19278
19279* event history
19280 PARAMETER (NMXHKK=200000)
19281 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
19282 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
19283 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
19284* Note: DTEVT2 - special use for heavy fragments !
19285* (IDRES(I) = mass number, IDXRES(I) = charge)
19286* extended event history
19287 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
19288 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
19289 & IHIST(2,NMXHKK)
19290* particle properties (BAMJET index convention)
19291 CHARACTER*8 ANAME
19292 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
19293 & IICH(210),IIBAR(210),K1(210),K2(210)
19294* flags for input different options
19295 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
19296 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
19297 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
19298* statistics: residual nuclei
19299 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
19300 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
19301 & NINCST(2,4),NINCEV(2),
19302 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
19303 & NRESPB(2),NRESCH(2),NRESEV(4),
19304 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
19305 & NEVAFI(2,2)
19306* treatment of residual nuclei: properties of residual nuclei
19307 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
19308 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
19309 & NTOTFI(2),NPROFI(2)
19310* (original name: FINUC)
19311 PARAMETER (MXP=999)
19312 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
19313 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
19314 & TKI (MXP), PLR (MXP), WEI (MXP),
19315 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
19316 & KPART (MXP)
19317* (original name: FHEAVY,FHEAVC)
19318 PARAMETER ( MXHEAV = 100 )
19319 CHARACTER*8 ANHEAV
19320 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
19321 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
19322 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
19323 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
19324 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
19325 & IBHEAV ( 12 ) , NPHEAV
19326 COMMON /FKFHVC/ ANHEAV ( 12 )
19327* (original name: RESNUC)
19328 LOGICAL LRNFSS, LFRAGM
19329 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
19330 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
19331 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
19332 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
19333 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
19334 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
19335 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
19336 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
19337 & LFRAGM
19338
19339 DIMENSION IPTOKP(39)
19340 DATA IPTOKP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
19341 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 99,
19342 & 100, 101, 97, 102, 98, 103, 109, 115 /
19343
19344 IREJ = 0
19345
19346* skip if evaporation package is not included
19347 IF (.NOT.LEVAPO) RETURN
19348
19349* update counter
19350 IF (NRESEV(3).NE.NEVHKK) THEN
19351 NRESEV(3) = NEVHKK
19352 NRESEV(4) = NRESEV(4)+1
19353 ENDIF
19354
19355 IF (LEMCCK)
19356 & CALL DT_EVTEMC(PHKK(1,MO),PHKK(2,MO),PHKK(3,MO),PHKK(4,MO),1,
19357 & IDUM,IDUM)
19358* mass number/charge of residual nucleus before evaporation
19359 IBTOT = IDRES(MO)
19360 IZTOT = IDXRES(MO)
19361
19362* protons/neutrons/gammas
19363 DO 1 I=1,NP
19364 PX = CXR(I)*PLR(I)
19365 PY = CYR(I)*PLR(I)
19366 PZ = CZR(I)*PLR(I)
19367 ID = IPTOKP(KPART(I))
19368 IDPDG = IDT_IPDGHA(ID)
19369 AM = ((PLR(I)+TKI(I))*(PLR(I)-TKI(I)))/
19370 & (2.0D0*MAX(TKI(I),TINY10))
19371 IF (ABS(AM-AAM(ID)).GT.TINY3) THEN
19372 WRITE(LOUT,1000) ID,AM,AAM(ID)
19373 1000 FORMAT(1X,'EVA2HE: inconsistent mass of evap. ',
19374 & 'particle',I3,2E10.3)
19375 ENDIF
19376 PE = TKI(I)+AM
19377 CALL DT_EVTPUT(-1,IDPDG,MO,0,PX,PY,PZ,PE,0,0,0)
19378 NOBAM(NHKK) = IRCL
19379 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19380 IBTOT = IBTOT-IIBAR(ID)
19381 IZTOT = IZTOT-IICH(ID)
19382 1 CONTINUE
19383
19384* heavy fragments
19385 DO 2 I=1,NPHEAV
19386 PX = CXHEAV(I)*PHEAVY(I)
19387 PY = CYHEAV(I)*PHEAVY(I)
19388 PZ = CZHEAV(I)*PHEAVY(I)
19389 IDHEAV = 80000
19390 AM = ((PHEAVY(I)+TKHEAV(I))*(PHEAVY(I)-TKHEAV(I)))/
19391 & (2.0D0*MAX(TKHEAV(I),TINY10))
19392 PE = TKHEAV(I)+AM
19393 CALL DT_EVTPUT(-1,IDHEAV,MO,0,PX,PY,PZ,PE,
19394 & IBHEAV(KHEAVY(I)),ICHEAV(KHEAVY(I)),0)
19395 NOBAM(NHKK) = IRCL
19396 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19397 IBTOT = IBTOT-IBHEAV(KHEAVY(I))
19398 IZTOT = IZTOT-ICHEAV(KHEAVY(I))
19399 2 CONTINUE
19400
19401 IF (IBRES.GT.0) THEN
19402* residual nucleus after evaporation
19403 IDNUC = 80000
19404 CALL DT_EVTPUT(1001,IDNUC,MO,0,PXRES,PYRES,PZRES,ERES,
19405 & IBRES,ICRES,0)
19406 NOBAM(NHKK) = IRCL
19407 ENDIF
19408 EEXCF = TVCMS
19409 NTOTFI(IRCL) = IBRES
19410 NPROFI(IRCL) = ICRES
19411 IF (LEMCCK) CALL DT_EVTEMC(-PXRES,-PYRES,-PZRES,-ERES,2,IDUM,IDUM)
19412 IBTOT = IBTOT-IBRES
19413 IZTOT = IZTOT-ICRES
19414
19415* count events with fission
19416 NEVAFI(1,IRCL) = NEVAFI(1,IRCL)+1
19417 IF (LRNFSS) NEVAFI(2,IRCL) = NEVAFI(2,IRCL)+1
19418
19419* energy-momentum conservation check
19420 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,40,IREJ)
19421C IF (IREJ.GT.0) THEN
19422C CALL DT_EVTOUT(4)
19423C WRITE(*,*) EEXC(2),EEXCFI(2),NP,NPHEAV
19424C ENDIF
19425* baryon-number/charge conservation check
19426 IF (IBTOT+IZTOT.NE.0) THEN
19427 WRITE(LOUT,1001) NEVHKK,IBTOT,IZTOT
19428 1001 FORMAT(1X,'EVA2HE: baryon-number/charge conservation ',
19429 & 'failure at event ',I8,' : IBTOT,IZTOT = ',2I3)
19430 ENDIF
19431
19432 RETURN
19433 END
19434
19435*$ CREATE DT_EBIND.FOR
19436*COPY DT_EBIND
19437*
19438*===ebind==============================================================*
19439*
19440 DOUBLE PRECISION FUNCTION DT_EBIND(IA,IZ)
19441
19442************************************************************************
19443* Binding energy for nuclei. *
19444* (Shirokov & Yudin, Yad. Fizika, Nauka, Moskva 1972) *
19445* IA mass number *
19446* IZ atomic number *
19447* This version dated 5.5.95 is updated by S. Roesler. *
19448************************************************************************
19449
19450 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19451 SAVE
19452 PARAMETER ( LINP = 10 ,
19453 & LOUT = 6 ,
19454 & LDAT = 9 )
19455 PARAMETER (ZERO=0.0D0)
19456
19457 DATA A1, A2, A3, A4, A5
19458 & / 0.01575D0, 0.0178D0, 0.000710D0, 0.0237D0, 0.034D0/
19459
19460 IF ((IA.LE.1).OR.(IZ.EQ.0)) THEN
19461 WRITE(LOUT,'(1X,A,2I5)') 'DT_EBIND IA,IZ set EBIND=0. ',IA,IZ
19462 DT_EBIND = ZERO
19463 RETURN
19464 ENDIF
19465 AA = IA
19466 DT_EBIND = A1*AA - A2*AA**0.666667D0-A3*IZ*IZ*AA**(-0.333333D0)
19467 & -A4*(IA-2*IZ)**2/AA
19468 IF (MOD(IA,2).EQ.1) THEN
19469 IA5 = 0
19470 ELSEIF (MOD(IZ,2).EQ.1) THEN
19471 IA5 = 1
19472 ELSE
19473 IA5 = -1
19474 ENDIF
19475 DT_EBIND = DT_EBIND - IA5*A5*AA**(-0.75D0)
19476
19477 RETURN
19478 END
19479
19480**sr 30.6. routine replaced completely
19481*$ CREATE DT_ENERGY.FOR
19482*COPY DT_ENERGY
19483* *
19484*=== energy ===========================================================*
19485* *
19486 DOUBLE PRECISION FUNCTION DT_ENERGY( A, Z )
19487
19488C INCLUDE '(DBLPRC)'
19489* DBLPRC.ADD
19490 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19491 SAVE
19492* (original name: GLOBAL)
19493 PARAMETER ( KALGNM = 2 )
19494 PARAMETER ( ANGLGB = 5.0D-16 )
19495 PARAMETER ( ANGLSQ = 2.5D-31 )
19496 PARAMETER ( AXCSSV = 0.2D+16 )
19497 PARAMETER ( ANDRFL = 1.0D-38 )
19498 PARAMETER ( AVRFLW = 1.0D+38 )
19499 PARAMETER ( AINFNT = 1.0D+30 )
19500 PARAMETER ( AZRZRZ = 1.0D-30 )
19501 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
19502 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
19503 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
19504 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
19505 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
19506 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
19507 PARAMETER ( CSNNRM = 2.0D-15 )
19508 PARAMETER ( DMXTRN = 1.0D+08 )
19509 PARAMETER ( ZERZER = 0.D+00 )
19510 PARAMETER ( ONEONE = 1.D+00 )
19511 PARAMETER ( TWOTWO = 2.D+00 )
19512 PARAMETER ( THRTHR = 3.D+00 )
19513 PARAMETER ( FOUFOU = 4.D+00 )
19514 PARAMETER ( FIVFIV = 5.D+00 )
19515 PARAMETER ( SIXSIX = 6.D+00 )
19516 PARAMETER ( SEVSEV = 7.D+00 )
19517 PARAMETER ( EIGEIG = 8.D+00 )
19518 PARAMETER ( ANINEN = 9.D+00 )
19519 PARAMETER ( TENTEN = 10.D+00 )
19520 PARAMETER ( HLFHLF = 0.5D+00 )
19521 PARAMETER ( ONETHI = ONEONE / THRTHR )
19522 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
19523 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
19524 PARAMETER ( THRTWO = THRTHR / TWOTWO )
19525 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
19526 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
19527 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
19528 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
19529 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
19530 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
19531 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
19532 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
19533 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
19534 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
19535 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
19536 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
19537 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
19538 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
19539 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
19540 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
19541 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
19542 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
19543 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
19544 PARAMETER ( CLIGHT = 2.99792458 D+10 )
19545 PARAMETER ( AVOGAD = 6.0221367 D+23 )
19546 PARAMETER ( BOLTZM = 1.380658 D-23 )
19547 PARAMETER ( AMELGR = 9.1093897 D-28 )
19548 PARAMETER ( PLCKBR = 1.05457266 D-27 )
19549 PARAMETER ( ELCCGS = 4.8032068 D-10 )
19550 PARAMETER ( ELCMKS = 1.60217733 D-19 )
19551 PARAMETER ( AMUGRM = 1.6605402 D-24 )
19552 PARAMETER ( AMMUMU = 0.113428913 D+00 )
19553 PARAMETER ( AMPRMU = 1.007276470 D+00 )
19554 PARAMETER ( AMNEMU = 1.008664904 D+00 )
19555 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
19556 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
19557 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
19558 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
19559 PARAMETER ( PLABRC = 0.197327053 D+00 )
19560 PARAMETER ( AMELCT = 0.51099906 D-03 )
19561 PARAMETER ( AMUGEV = 0.93149432 D+00 )
19562 PARAMETER ( AMMUON = 0.105658389 D+00 )
19563 PARAMETER ( AMPRTN = 0.93827231 D+00 )
19564 PARAMETER ( AMNTRN = 0.93956563 D+00 )
19565 PARAMETER ( AMDEUT = 1.87561339 D+00 )
19566 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
19567 & * 1.D-09 )
19568 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
19569 PARAMETER ( BLTZMN = 8.617385 D-14 )
19570 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
19571 PARAMETER ( GFOHB3 = 1.16639 D-05 )
19572 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
19573 PARAMETER ( SIN2TW = 0.2319 D+00 )
19574 PARAMETER ( GEVMEV = 1.0 D+03 )
19575 PARAMETER ( EMVGEV = 1.0 D-03 )
19576 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
19577 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
19578 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
19579 LOGICAL LGBIAS, LGBANA
19580 COMMON /FKGLOB/ LGBIAS, LGBANA
19581C INCLUDE '(DIMPAR)'
19582* DIMPAR.ADD
19583 PARAMETER ( MXXRGN = 5000 )
19584 PARAMETER ( MXXMDF = 82 )
19585 PARAMETER ( MXXMDE = 54 )
19586 PARAMETER ( MFSTCK = 1000 )
19587 PARAMETER ( MESTCK = 100 )
19588 PARAMETER ( NALLWP = 39 )
19589 PARAMETER ( NELEMX = 80 )
19590 PARAMETER ( MPDPDX = 8 )
19591 PARAMETER ( ICOMAX = 180 )
19592 PARAMETER ( NSTBIS = 304 )
19593 PARAMETER ( IDMAXP = 220 )
19594 PARAMETER ( IDMXDC = 640 )
19595 PARAMETER ( MKBMX1 = 1 )
19596 PARAMETER ( MKBMX2 = 1 )
19597C INCLUDE '(IOUNIT)'
19598* IOUNIT.ADD
19599 PARAMETER ( LUNIN = 5 )
19600 PARAMETER ( LUNOUT = 6 )
19601**sr 19.5. set error output-unit from 15 to 6
19602 PARAMETER ( LUNERR = 6 )
19603 PARAMETER ( LUNBER = 14 )
19604 PARAMETER ( LUNECH = 8 )
19605 PARAMETER ( LUNFLU = 13 )
19606 PARAMETER ( LUNGEO = 16 )
19607 PARAMETER ( LUNPMF = 12 )
19608 PARAMETER ( LUNRAN = 2 )
19609 PARAMETER ( LUNXSC = 9 )
19610 PARAMETER ( LUNDET = 17 )
19611 PARAMETER ( LUNRAY = 10 )
19612 PARAMETER ( LUNRDB = 1 )
19613 PARAMETER ( LUNPGO = 7 )
19614 PARAMETER ( LUNPGS = 4 )
19615 PARAMETER ( LUNSCR = 3 )
19616*
19617*----------------------------------------------------------------------*
19618* *
19619* Revised version of the original routine from EVAP: *
19620* *
19621* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19622* Infn - Milan *
19623* *
19624* Last change on 19-sep-95 by Alfredo Ferrari *
19625* *
19626* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19627* !!! It is supposed to be used with the updated atomic !!! *
19628* !!! mass data file !!! *
19629* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19630* *
19631*----------------------------------------------------------------------*
19632*
19633* Mass number below which "unknown" isotopes out of the Z-interval
19634* reported in the mass tabulations are completely unstable and made
19635* up by Z proton masses + N neutron masses:
19636 PARAMETER ( KAFREE = 4 )
19637* Mass number below which "unknown" isotopes out of the Z-interval
19638* reported in the mass tabulations are supposed to be particle unstable
19639 PARAMETER ( KAPUNS = 12 )
19640* Minimum energy required for particle unstable isotopes
19641 PARAMETER ( DEPUNS = 0.5D+00 )
19642*
19643* (original name: EVA0)
19644 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
19645 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
19646 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
19647 * T (4,7), RMASS (297), ALPH (297), BET (297),
19648 * APRIME (250), IA (6), IZ (6)
19649* (original name: ISOTOP)
19650 PARAMETER ( NAMSMX = 270 )
19651 PARAMETER ( NZGVAX = 15 )
19652 PARAMETER ( NISMMX = 574 )
19653 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
19654 & WAPISM (NISMMX), T12ISM (NISMMX),
19655 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
19656 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
19657 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
19658 & INWAPS (NAMSMX), JSPISM (NISMMX),
19659 & JPTISM (NISMMX), IZWISM (NISMMX),
19660 & INWISM (0:NAMSMX)
19661*
454792a9 19662CPH SAVE KA0, KZ0, IZ0
9aaba0d6 19663 DATA KA0, KZ0, IZ0 / -1, -1, -1 /
19664*
19665 IFLAG = 1
19666 GO TO 10
19667*======================================================================*
19668* *
19669* Entry ENergy - KNOWn *
19670* *
19671*======================================================================*
19672 ENTRY DT_ENKNOW ( A, Z, IZZ0 )
19673 IZZ0 =-1
19674 IFLAG = 2
19675 10 CONTINUE
19676*
19677 KA0 = NINT ( A )
19678 KZ0 = NINT ( Z )
19679 N = KA0 - KZ0
19680* +-------------------------------------------------------------------*
19681* | Null residual nucleus:
19682 IF ( KA0 .EQ. 0 .AND. KZ0 .LE. 0 ) THEN
19683 IF ( IFLAG .EQ. 1 ) THEN
19684 DT_ENERGY = ZERZER
19685 ELSE
19686 DT_ENKNOW = ZERZER
19687 IZZ0 = -1
19688 END IF
19689 RETURN
19690* |
19691* +-------------------------------------------------------------------*
19692* | Only protons:
19693 ELSE IF ( N .LE. 0 ) THEN
19694 IF ( N .LT. 0 ) THEN
19695 WRITE ( LUNOUT, * )
19696 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19697 & KA0, KZ0
19698 WRITE ( LUNOUT, * )
19699 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19700 & KA0, KZ0
19701 WRITE ( 77, * )
19702 & ' ^^^DPMJET stopped in energy: mass number =< atomic number !!',
19703 & KA0, KZ0
19704 STOP 'DT_ENERGY:KA0-KZ0'
19705 END IF
19706 IZ0 = -1
19707 IF ( IFLAG .EQ. 1 ) THEN
19708 DT_ENERGY = Z * WAPS ( 1, 2 )
19709 ELSE
19710 DT_ENKNOW = Z * WAPS ( 1, 2 )
19711 IZZ0 = -1
19712 END IF
19713 RETURN
19714* |
19715* +-------------------------------------------------------------------*
19716* | Only neutrons:
19717 ELSE IF ( KZ0 .LE. 0 ) THEN
19718 IF ( KZ0 .LT. 0 ) THEN
19719 WRITE ( LUNOUT, * )
19720 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19721 WRITE ( LUNOUT, * )
19722 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19723 WRITE ( 77, * )
19724 &' ^^^DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19725 STOP 'DT_ENERGY:KZ0<0'
19726 END IF
19727 IZ0 = -1
19728 IF ( IFLAG .EQ. 1 ) THEN
19729 DT_ENERGY = A * WAPS ( 1, 1 )
19730 ELSE
19731 DT_ENKNOW = A * WAPS ( 1, 1 )
19732 IZZ0 = -1
19733 END IF
19734 RETURN
19735 END IF
19736* |
19737* +-------------------------------------------------------------------*
19738* +-------------------------------------------------------------------*
19739* | No actual nucleus
19740* |
19741* +-------------------------------------------------------------------*
19742* +-------------------------------------------------------------------*
19743* | A larger than maximum allowed:
19744 IF ( KA0 .GT. NAMSMX ) THEN
19745 IZ0 = -1
19746 IF ( IFLAG .EQ. 1 ) THEN
19747 DT_ENERGY = DT_ENRG( A, Z )
19748 ELSE
19749 DT_ENKNOW = DT_ENRG( A, Z )
19750 IZZ0 = -1
19751 END IF
19752 RETURN
19753 END IF
19754* |
19755* +-------------------------------------------------------------------*
19756 IZZ = INWAPS ( KA0 )
19757* +-------------------------------------------------------------------*
19758* | Too much neutron rich with respect to the stability line:
19759 IF ( KZ0 .LT. IZZ ) THEN
19760* | +----------------------------------------------------------------*
19761* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19762 IF ( KA0 .LE. KAFREE ) THEN
19763 DT_ENERGY = AINFNT
19764* | |
19765* | +----------------------------------------------------------------*
19766* | | Up to Kapuns: be sure it is particle unstable
19767 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19768* | | Exp. excess mass for A,IZZ
19769 ENEEXP = WAPS ( KA0, 1 )
19770* | | Cameron excess mass for A, IZZ
19771 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19772* | | Cameron excess mass for A, Z
19773 DT_ENERGY = DT_ENRG( A, Z )
19774* | | Use just the difference according to Cameron!!!
19775 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19776 JZZ = INWAPS ( KA0 - 1 )
19777 LZZ = INWAPS ( KA0 - 2 )
19778* | | +-------------------------------------------------------------*
19779* | | | Residual mass for n-decay known:
19780 IF ( KZ0 .GE. JZZ .AND. KZ0 .LE. JZZ + NZGVAX - 1 ) THEN
19781 IZ0 = KZ0 - JZZ + 1
19782 DT_ENERGY = MAX(DT_ENERGY,WAPS (KA0-1,IZ0) + WAPS (1,1)
19783 & + DEPUNS )
19784* | | |
19785* | | +-------------------------------------------------------------*
19786* | | | Residual mass for 2n-decay known:
19787 ELSE IF ( KZ0 .GE. LZZ .AND. KZ0 .LE. LZZ + NZGVAX - 1 )THEN
19788 IZ0 = KZ0 - LZZ + 1
19789 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19790 & ( WAPS (1,1) + DEPUNS ) )
19791* | | |
19792* | | +-------------------------------------------------------------*
19793* | | | Set it unbound:
19794 ELSE
19795 DT_ENERGY = AINFNT
19796 END IF
19797* | | |
19798* | | +-------------------------------------------------------------*
19799* | |
19800* | +----------------------------------------------------------------*
19801* | | Proceed as usual:
19802 ELSE
19803* | | Exp. excess mass for A,IZZ
19804 ENEEXP = WAPS ( KA0, 1 )
19805* | | Cameron excess mass for A, IZZ
19806 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19807* | | Cameron excess mass for A, Z
19808 DT_ENERGY = DT_ENRG( A, Z )
19809* | | Use just the difference according to Cameron!!!
19810 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19811 END IF
19812* | |
19813* | +----------------------------------------------------------------*
19814* | Be sure not to have a positive energy state:
19815 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19816 IZ0 = -1
19817 IF ( IFLAG .EQ. 2 ) THEN
19818 DT_ENKNOW = DT_ENERGY
19819 IZZ0 = -1
19820 END IF
19821 RETURN
19822* |
19823* +-------------------------------------------------------------------*
19824* | Too much proton rich with respect to the stability line:
19825 ELSE IF ( KZ0 .GT. IZZ + NZGVAX - 1 ) THEN
19826* | +----------------------------------------------------------------*
19827* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19828 IF ( KA0 .LE. KAFREE ) THEN
19829 DT_ENERGY = AINFNT
19830* | |
19831* | +----------------------------------------------------------------*
19832* | | Up to Kapuns: be sure it is particle unstable
19833 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19834* | | Exp. excess mass for A,IZZ+NZGVAX-1
19835 ENEEXP = WAPS ( KA0, NZGVAX )
19836* | | Cameron excess mass for A, IZZ+NZGVAX-1
19837 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19838* | | Cameron excess mass for A, Z
19839 DT_ENERGY = DT_ENRG( A, Z )
19840* | | Use just the difference according to Cameron!!!
19841 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19842 JZZ = INWAPS ( KA0 - 1 )
19843 LZZ = INWAPS ( KA0 - 2 )
19844* | | +-------------------------------------------------------------*
19845* | | | Residual mass for p-decay known:
19846 IF ( KZ0-1 .GE. JZZ .AND. KZ0-1 .LE. JZZ + NZGVAX - 1 ) THEN
19847 IZ0 = KZ0 - 1 - JZZ + 1
19848 DT_ENERGY = MAX (DT_ENERGY, WAPS (KA0-1,IZ0) + WAPS (1,2)
19849 & + DEPUNS )
19850* | | |
19851* | | +-------------------------------------------------------------*
19852* | | | Residual mass for 2p-decay known:
19853 ELSE IF ( KZ0-2 .GE. LZZ .AND. KZ0-2 .LE. LZZ + NZGVAX - 1 )
19854 & THEN
19855 IZ0 = KZ0 - 2 - LZZ + 1
19856 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19857 & ( WAPS (1,2) + DEPUNS ) )
19858* | | |
19859* | | +-------------------------------------------------------------*
19860* | | | Set it unbound:
19861 ELSE
19862 DT_ENERGY = AINFNT
19863 END IF
19864* | | |
19865* | | +-------------------------------------------------------------*
19866* | |
19867* | +----------------------------------------------------------------*
19868* | | Proceed as usual:
19869 ELSE
19870* | | Exp. excess mass for A,IZZ+NZGVAX-1
19871 ENEEXP = WAPS ( KA0, NZGVAX )
19872* | | Cameron excess mass for A, IZZ+NZGVAX-1
19873 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19874* | | Cameron excess mass for A, Z
19875 DT_ENERGY = DT_ENRG( A, Z )
19876* | | Use just the difference according to Cameron!!!
19877 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19878 END IF
19879* | |
19880* | +----------------------------------------------------------------*
19881* | Be sure not to have a positive energy state:
19882 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19883 IZ0 = -1
19884 IF ( IFLAG .EQ. 2 ) THEN
19885 DT_ENKNOW = DT_ENERGY
19886 IZZ0 = -1
19887 END IF
19888 RETURN
19889* |
19890* +-------------------------------------------------------------------*
19891* | Known isotope or anyway isotope "inside" the stability zone
19892 ELSE
19893 IZ0 = KZ0 - IZZ + 1
19894 DT_ENERGY = WAPS ( KA0, IZ0 )
19895 IF ( IFLAG .EQ. 2 ) IZZ0 = IZ0
19896* | +----------------------------------------------------------------*
19897* | | Mass not known
19898 IF ( ABS (DT_ENERGY) .LT. ANGLGB .AND. (KA0 .NE. 12 .OR. KZ0
19899 & .NE. 6) ) THEN
19900 IF ( IFLAG .EQ. 2 ) IZZ0 = -1
19901* | | +-------------------------------------------------------------*
19902* | | | Set it unbound:
19903 IF ( KA0 .LE. KAFREE ) THEN
19904 DT_ENERGY = AINFNT
19905* | | |
19906* | | +-------------------------------------------------------------*
19907* | | | Try to get a reasonable excess mass:
19908 ELSE
19909 JZ0 = -100
19910* | | | +----------------------------------------------------------*
19911* | | | | Check the closest one known:
19912 DO 500 JZZ = 1, NZGVAX
19913 IF ( ABS ( WAPS (KA0,JZZ) ) .GT. ANGLGB .AND.
19914 & ABS (JZZ-IZ0) .LT. ABS (JZ0-IZ0) ) JZ0 = JZZ
19915 IF ( ABS (JZ0-IZ0) .EQ. 1 ) GO TO 550
19916 500 CONTINUE
19917* | | | |
19918* | | | +----------------------------------------------------------*
19919 550 CONTINUE
19920* | | | Exp. excess mass for A,IZZ+JZ0-1
19921 ENEEXP = WAPS ( KA0, JZ0 )
19922* | | | Cameron excess mass for A, IZZ+JZ0-1
19923 ENECA1 = DT_ENRG( A, DBLE (IZZ+JZ0-1) )
19924* | | | Cameron excess mass for A, Z
19925 DT_ENERGY = DT_ENRG( A, Z )
19926* | | | Use just the difference according to Cameron!!!
19927 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19928 IZ0 = -1
19929 END IF
19930* | | |
19931* | | +-------------------------------------------------------------*
19932* | | Be sure not to have a positive energy state:
19933 DT_ENERGY = MIN(DT_ENERGY,(A-Z)*WAPS(1,1)+Z*WAPS (1,2) )
19934 END IF
19935* | |
19936* | +----------------------------------------------------------------*
19937 IF ( IFLAG .EQ. 2 ) DT_ENKNOW = DT_ENERGY
19938 RETURN
19939 END IF
19940* |
19941* +-------------------------------------------------------------------*
19942*=== End of Function Energy ===========================================*
19943* RETURN
19944 END
19945**
19946
19947*$ CREATE DT_ENRG.FOR
19948*COPY DT_ENRG
19949* *
19950*=== enrg =============================================================*
19951* *
19952 DOUBLE PRECISION FUNCTION DT_ENRG(A,Z)
19953
19954 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19955 SAVE
19956
19957 PARAMETER ( ZERZER = 0.D+00 )
19958 PARAMETER ( ONEONE = 1.D+00 )
19959 PARAMETER ( LUNIN = 5 )
19960 PARAMETER ( LUNOUT = 6 )
19961*
19962*----------------------------------------------------------------------*
19963* *
19964* Revised version of the original routine from EVAP: *
19965* *
19966* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19967* Infn - Milan *
19968* *
19969* Last change on 01-oct-94 by Alfredo Ferrari *
19970* *
19971* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19972* !!! It is supposed to be used with the updated atomic !!! *
19973* !!! mass data file !!! *
19974* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19975* *
19976*----------------------------------------------------------------------*
19977*
19978 PARAMETER ( O16OLD = 931.145 D+00 )
19979 PARAMETER ( O16NEW = 931.19826D+00 )
19980 PARAMETER ( O16RAT = O16NEW / O16OLD )
19981 PARAMETER ( C12NEW = 931.49432D+00 )
19982 PARAMETER ( ADJUST = -8.322737768178909D-02 )
19983 PARAMETER ( AINFNT = 1.0D+30 )
19984* (original name: EVA0)
19985 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
19986 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
19987 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
19988 * T (4,7), RMASS (297), ALPH (297), BET (297),
19989 * APRIME (250), IA (6), IZ (6)
19990 LOGICAL LFIRST
454792a9 19991CPH SAVE LFIRST, EXHYDR, EXNEUT
9aaba0d6 19992 DATA LFIRST / .TRUE. /
19993*
19994 IF ( LFIRST ) THEN
19995 LFIRST = .FALSE.
19996**sr 30.6.
19997C EXHYDR = DT_ENERGY( ONEONE, ONEONE )
19998C EXNEUT = DT_ENERGY( ONEONE, ZERZER )
19999 EXHYDR = A
20000 EXNEUT = Z
20001 DT_ENRG = -AINFNT
20002 RETURN
20003**
20004 END IF
20005 IZ0 = NINT (Z)
20006 IF ( IZ0 .LE. 0 ) THEN
20007 DT_ENRG = A * EXNEUT
20008 RETURN
20009 END IF
20010 N = NINT (A-Z)
20011 IF ( N .LE. 0 ) THEN
20012 DT_ENRG = Z * EXHYDR
20013 RETURN
20014 END IF
20015 AM2ZOA= (A-Z-Z)/A
20016 AM2ZOA=AM2ZOA*AM2ZOA
20017 A13 = RMASS(NINT(A))
20018* A13 = A**.3333333333333333D+00
20019 AM13 = 1.D+00/A13
20020 EV=-17.0354D+00*(1.D+00 -1.84619 D+00*AM2ZOA)*A
20021 ES= 25.8357D+00*(1.D+00 -1.712185D+00*AM2ZOA)*
20022 & (1.D+00 -0.62025D+00*AM13*AM13)*
20023 & (A13*A13 -.62025D+00)
20024 EC= 0.799D+00*Z*(Z-1.D+00)*AM13*(((1.5772D+00*AM13 +1.2273D+00)*
20025 & AM13-1.5849D+00)*
20026 & AM13*AM13 +1.D+00)
20027 EEX= -0.4323D+00*AM13*Z**1.3333333D+00*
20028 & (((0.49597D+00*AM13 -0.14518D+00)*AM13 -0.57811D+00) * AM13
20029 & + 1.D+00)
20030 DT_ENRG=8.367D+00*A-0.783D+00*Z +EV +ES +EC +EEX+CAM2(IZ0)+CAM3(N)
20031 DT_ENRG=(DT_ENRG + A * O16OLD ) * O16RAT - A * ( C12NEW - ADJUST )
20032 DT_ENRG = MIN ( DT_ENRG, Z * EXHYDR + ( A - Z ) * EXNEUT )
20033 RETURN
20034*=== End of function Enrg =============================================*
20035 END
20036
20037*$ CREATE DT_INCINI.FOR
20038*COPY DT_INCINI
20039* *
20040*=== incini ===========================================================*
20041* *
20042 SUBROUTINE DT_INCINI
20043
20044 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20045 SAVE
20046
20047 PARAMETER ( ZERZER = 0.D+00 )
20048 PARAMETER ( ONEONE = 1.D+00 )
20049 PARAMETER ( TWOTWO = 2.D+00 )
20050 PARAMETER ( THRTHR = 3.D+00 )
20051 PARAMETER ( FOUFOU = 4.D+00 )
20052 PARAMETER ( EIGEIG = 8.D+00 )
20053 PARAMETER ( ANINEN = 9.D+00 )
20054 PARAMETER ( HLFHLF = 0.5D+00 )
20055 PARAMETER ( ONETHI = ONEONE / THRTHR )
20056 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20057 PARAMETER ( PLABRC = 0.197327053 D+00 )
20058 PARAMETER ( AMELCT = 0.51099906 D-03 )
20059 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20060 PARAMETER ( AMPRTN = 0.93827231 D+00 )
20061 PARAMETER ( AMNTRN = 0.93956563 D+00 )
20062 PARAMETER ( AMDEUT = 1.87561339 D+00 )
20063 PARAMETER ( EMVGEV = 1.0 D-03 )
20064
20065 PARAMETER ( LUNOUT = 6 )
20066*
20067*----------------------------------------------------------------------*
20068* *
20069* Created on 10 june 1990 by Alfredo Ferrari & Paola Sala *
20070* Infn - Milan *
20071* *
20072* Last change on 02-may-95 by Alfredo Ferrari *
20073* *
20074* *
20075*----------------------------------------------------------------------*
20076*
20077* (original name: FHEAVY,FHEAVC)
20078 PARAMETER ( MXHEAV = 100 )
20079 CHARACTER*8 ANHEAV
20080 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
20081 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
20082 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
20083 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
20084 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
20085 & IBHEAV ( 12 ) , NPHEAV
20086 COMMON /FKFHVC/ ANHEAV ( 12 )
20087* (original name: INPFLG)
20088 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20089* (original name: FRBKCM)
20090 PARAMETER ( MXFFBK = 6 )
20091 PARAMETER ( MXZFBK = 9 )
20092 PARAMETER ( MXNFBK = 10 )
20093 PARAMETER ( MXAFBK = 16 )
20094 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20095 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20096 PARAMETER ( NXAFBK = MXAFBK + 1 )
20097 PARAMETER ( MXPSST = 300 )
20098 PARAMETER ( MXPSFB = 41000 )
20099 LOGICAL LFRMBK, LNCMSS
20100 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20101 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20102 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20103 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20104 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20105 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20106 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20107 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20108 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20109* (original name: NUCDAT)
20110 PARAMETER ( AMUAMU = AMUGEV )
20111 PARAMETER ( AMPROT = AMPRTN )
20112 PARAMETER ( AMNEUT = AMNTRN )
20113 PARAMETER ( AMELEC = AMELCT )
20114 PARAMETER ( R0NUCL = 1.12 D+00 )
20115 PARAMETER ( RCCOUL = 1.7 D+00 )
20116 PARAMETER ( FERTHO = 14.33 D-09 )
20117 PARAMETER ( EXPEBN = 2.39 D+00 )
20118 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
20119 PARAMETER ( AMUC12 = AMUGEV - HLFHLF * AMELCT + BEXC12 / 12.D+00 )
20120 PARAMETER ( AMHYDR = AMPRTN + AMELCT )
20121 PARAMETER ( AMHTON = AMHYDR - AMNTRN )
20122 PARAMETER ( AMNTOU = AMNTRN - AMUC12 )
20123 PARAMETER ( AMUCSQ = AMUC12 * AMUC12 )
20124 PARAMETER ( EBNDAV = HLFHLF * (AMPRTN + AMNTRN) - AMUC12 )
20125 PARAMETER ( GAMMIN = 1.0D-06 )
20126 PARAMETER ( GAMNSQ = 2.0D+00 * GAMMIN * GAMMIN )
20127 PARAMETER ( TVEPSI = GAMMIN / 100.D+00 )
20128 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
20129 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
20130 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
20131 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
20132 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
20133 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
20134 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
20135 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
20136* (original name: PAREVT)
20137 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20138 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20139 PARAMETER ( NALLWP = 39 )
20140 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20141 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20142 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20143 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20144* (original name: NUCOLD)
20145 COMMON /FKNOLD/ HELP (2), HHLP (2), FTVTH (2), FINCX (2),
20146 & EKPOLD (2), BBOLD, ZZOLD, SQROLD, ASEASQ,
20147 & FSPRED, FEX0RD
20148*
20149 BBOLD = - 1.D+10
20150 ZZOLD = - 1.D+10
20151 SQROLD = - 1.D+10
20152 APFRMX = PLABRC * ( ANINEN * PIPIPI / EIGEIG )**ONETHI / R0NUCL
20153 AMNUCL (1) = AMPROT
20154 AMNUCL (2) = AMNEUT
20155 AMNUSQ (1) = AMPROT * AMPROT
20156 AMNUSQ (2) = AMNEUT * AMNEUT
20157 AMNHLP = HLFHLF * ( AMNUCL (1) + AMNUCL (2) )
20158 ASQHLP = AMNHLP**2
20159* ASQHLP = HLFHLF * ( AMNUSQ (1) + AMNUSQ (2) )
20160 AEFRMX = SQRT ( ASQHLP + APFRMX**2 ) - AMNHLP
20161 AEFRMA = 0.3D+00 * APFRMX**2 / AMNHLP * ( ONEONE - APFRMX**2 /
20162 & ( 5.6D+00 * ASQHLP ) )
20163 AV0WEL = AEFRMX + EBNDAV
20164 EBNDNG (1) = EBNDAV
20165 EBNDNG (2) = EBNDAV
20166 AEXC12 = EMVGEV * DT_ENERGY( 12.D+00, 6.D+00 )
20167 CEXC12 = EMVGEV * DT_ENRG( 12.D+00, 6.D+00 )
20168 AMMC12 = 12.D+00 * AMUGEV + AEXC12
20169 AMNC12 = AMMC12 - 6.D+00 * AMELCT + FERTHO * 6.D+00**EXPEBN
20170 AEXO16 = EMVGEV * DT_ENERGY( 16.D+00, 8.D+00 )
20171 CEXO16 = EMVGEV * DT_ENRG( 16.D+00, 8.D+00 )
20172 AMMO16 = 16.D+00 * AMUGEV + AEXO16
20173 AMNO16 = AMMO16 - 8.D+00 * AMELCT + FERTHO * 8.D+00**EXPEBN
20174 AEXS28 = EMVGEV * DT_ENERGY( 28.D+00, 14.D+00 )
20175 CEXS28 = EMVGEV * DT_ENRG( 28.D+00, 14.D+00 )
20176 AMMS28 = 28.D+00 * AMUGEV + AEXS28
20177 AMNS28 = AMMS28 - 14.D+00 * AMELCT + FERTHO * 14.D+00**EXPEBN
20178 AEXC40 = EMVGEV * DT_ENERGY( 40.D+00, 20.D+00 )
20179 CEXC40 = EMVGEV * DT_ENRG( 40.D+00, 20.D+00 )
20180 AMMC40 = 40.D+00 * AMUGEV + AEXC40
20181 AMNC40 = AMMC40 - 20.D+00 * AMELCT + FERTHO * 20.D+00**EXPEBN
20182 AEXF56 = EMVGEV * DT_ENERGY( 56.D+00, 26.D+00 )
20183 CEXF56 = EMVGEV * DT_ENRG( 56.D+00, 26.D+00 )
20184 AMMF56 = 56.D+00 * AMUGEV + AEXF56
20185 AMNF56 = AMMF56 - 26.D+00 * AMELCT + FERTHO * 26.D+00**EXPEBN
20186 AEX107 = EMVGEV * DT_ENERGY( 107.D+00, 47.D+00 )
20187 CEX107 = EMVGEV * DT_ENRG( 107.D+00, 47.D+00 )
20188 AMM107 = 107.D+00 * AMUGEV + AEX107
20189 AMN107 = AMM107 - 47.D+00 * AMELCT + FERTHO * 47.D+00**EXPEBN
20190 AEX132 = EMVGEV * DT_ENERGY( 132.D+00, 54.D+00 )
20191 CEX132 = EMVGEV * DT_ENRG( 132.D+00, 54.D+00 )
20192 AMM132 = 132.D+00 * AMUGEV + AEX132
20193 AMN132 = AMM132 - 54.D+00 * AMELCT + FERTHO * 54.D+00**EXPEBN
20194 AEX181 = EMVGEV * DT_ENERGY( 181.D+00, 73.D+00 )
20195 CEX181 = EMVGEV * DT_ENRG( 181.D+00, 73.D+00 )
20196 AMM181 = 181.D+00 * AMUGEV + AEX181
20197 AMN181 = AMM181 - 73.D+00 * AMELCT + FERTHO * 73.D+00**EXPEBN
20198 AEX208 = EMVGEV * DT_ENERGY( 208.D+00, 82.D+00 )
20199 CEX208 = EMVGEV * DT_ENRG( 208.D+00, 82.D+00 )
20200 AMM208 = 208.D+00 * AMUGEV + AEX208
20201 AMN208 = AMM208 - 82.D+00 * AMELCT + FERTHO * 82.D+00**EXPEBN
20202 AEX238 = EMVGEV * DT_ENERGY( 238.D+00, 92.D+00 )
20203 CEX238 = EMVGEV * DT_ENRG( 238.D+00, 92.D+00 )
20204 AMM238 = 238.D+00 * AMUGEV + AEX238
20205 AMN238 = AMM238 - 92.D+00 * AMELCT + FERTHO * 92.D+00**EXPEBN
20206
20207 AMHEAV (1) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ZERZER )
20208 AMHEAV (2) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ONEONE )
20209 AMHEAV (3) = TWOTWO * AMUGEV
20210 & + EMVGEV * DT_ENERGY( TWOTWO, ONEONE )
20211 AMHEAV (4) = THRTHR * AMUGEV
20212 & + EMVGEV * DT_ENERGY( THRTHR, ONEONE )
20213 AMHEAV (5) = THRTHR * AMUGEV
20214 & + EMVGEV * DT_ENERGY( THRTHR, TWOTWO )
20215 AMHEAV (6) = FOUFOU * AMUGEV
20216 & + EMVGEV * DT_ENERGY( FOUFOU, TWOTWO )
20217 ELBNDE (0) = ZERZER
20218 ELBNDE (1) = 13.6D-09
20219 DO 2000 IZ = 2, 100
20220 ELBNDE ( IZ ) = FERTHO * DBLE ( IZ )**EXPEBN
202212000 CONTINUE
20222 AMNHEA (1) = AMHEAV (1) + ELBNDE (0)
20223 AMNHEA (2) = AMHEAV (2) - AMELCT + ELBNDE (1)
20224 AMNHEA (3) = AMHEAV (3) - AMELCT + ELBNDE (1)
20225 AMNHEA (4) = AMHEAV (4) - AMELCT + ELBNDE (1)
20226 AMNHEA (5) = AMHEAV (5) - TWOTWO * AMELCT + ELBNDE (2)
20227 AMNHEA (6) = AMHEAV (6) - TWOTWO * AMELCT + ELBNDE (2)
20228 IF ( LEVPRT ) THEN
20229 WRITE ( LUNOUT, * )' **** Evaporation from residual nucleus',
20230 & ' activated **** '
20231 IF ( LDEEXG ) WRITE ( LUNOUT, * )' **** Deexcitation gamma',
20232 & ' production activated **** '
20233**sr 18.5.95
20234* commented, since obsolete
20235C IF ( LHEAVY ) WRITE ( LUNOUT, * )' **** Evaporated "heavies"',
20236C & ' transport activated **** '
20237 IF ( IFISS .GT. 0 )
20238 & WRITE ( LUNOUT, * )' **** High Energy fission ',
20239 & ' requested & activated **** '
20240 IF ( LFRMBK )
20241 & WRITE ( LUNOUT, * )' **** Fermi Break Up ',
20242 & ' requested & activated **** '
20243 IF ( LFRMBK ) CALL DT_FRBKIN(.FALSE.,.FALSE.)
20244 ELSE
20245 LDEEXG = .FALSE.
20246 LHEAVY = .FALSE.
20247 LFRMBK = .FALSE.
20248 IFISS = 0
20249 END IF
20250 RETURN
20251*=== End of subroutine incini =========================================*
20252 END
20253
20254*$ CREATE DT_STALIN.FOR
20255*COPY DT_STALIN
20256* *
20257*=== stalin ===========================================================*
20258* *
20259 SUBROUTINE DT_STALIN
20260
20261 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20262 SAVE
20263 PARAMETER ( ANGLGB = 5.0D-16 )
20264 PARAMETER ( ZERZER = 0.D+00 )
20265 PARAMETER ( ONEONE = 1.D+00 )
20266 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20267 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20268 PARAMETER ( EMVGEV = 1.0 D-03 )
20269 PARAMETER ( NSTBIS = 304 )
20270 PARAMETER ( LUNIN = 5 )
20271 PARAMETER ( LUNOUT = 6 )
20272*
20273*----------------------------------------------------------------------*
20274* *
20275* STAbility LINe calculation: *
20276* *
20277* Created on 04 december 1992 by Alfredo Ferrari & Paola Sala *
20278* Infn - Milan *
20279* *
20280* Last change on 04-dec-92 by Alfredo Ferrari *
20281* *
20282* *
20283*----------------------------------------------------------------------*
20284*
20285* (original name: ISOTOP)
20286 PARAMETER ( NAMSMX = 270 )
20287 PARAMETER ( NZGVAX = 15 )
20288 PARAMETER ( NISMMX = 574 )
20289 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20290 & WAPISM (NISMMX), T12ISM (NISMMX),
20291 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20292 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20293 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20294 & INWAPS (NAMSMX), JSPISM (NISMMX),
20295 & JPTISM (NISMMX), IZWISM (NISMMX),
20296 & INWISM (0:NAMSMX)
20297*
20298 DIMENSION ZNORM (260)
20299* +-------------------------------------------------------------------*
20300* |
20301 DO 1000 IZ=1,100
20302 DO 500 J=1,2
20303 ASTLIN (J,IZ) = ZERZER
20304 500 CONTINUE
20305 1000 CONTINUE
20306* |
20307* +-------------------------------------------------------------------*
20308* +-------------------------------------------------------------------*
20309* |
20310 DO 2000 IA=1,260
20311 ZNORM (IA) = ZERZER
20312 DO 1500 J=1,2
20313 ZSTLIN (J,IA) = ZERZER
20314 1500 CONTINUE
20315 2000 CONTINUE
20316* |
20317* +-------------------------------------------------------------------*
20318* +-------------------------------------------------------------------*
20319* | Loop on the Atomic Number
20320 DO 3000 IZ=1,100
20321 AMSSST (IZ) = ZERZER
20322 ANORM = ONEONE
20323 ZTAR = IZ
20324* | +----------------------------------------------------------------*
20325* | | Loop on the stable isotopes
20326 DO 2500 IS = ISONDX (1,IZ), ISONDX (2,IZ)
20327 IA = ISOMNM (IS)
20328 ASTLIN (1,IZ) = ASTLIN (1,IZ) + ABUISO (IS) * IA
20329 ASTLIN (2,IZ) = ASTLIN (2,IZ) + ABUISO (IS) * IA**2
20330 ZNORM (IA) = ZNORM (IA) + ABUISO (IS)
20331 ZSTLIN (1,IA) = ZSTLIN (1,IA) + ABUISO (IS) * IZ
20332 ZSTLIN (2,IA) = ZSTLIN (2,IA) + ABUISO (IS) * IZ**2
20333 AHELP = IA
20334 IF ( AHELP .LE. 1.00001D+00 ) THEN
20335 ANORM = ONEONE / ( ONEONE - ABUISO (IS) )
20336 GO TO 2500
20337 END IF
20338 AMSSST (IZ) = ABUISO (IS) * ( AHELP * AMUGEV
20339 & + EMVGEV * DT_ENERGY(AHELP,ZTAR) ) + AMSSST (IZ)
20340 2500 CONTINUE
20341* | |
20342* | +----------------------------------------------------------------*
20343 AMSSST (IZ) = ANORM * AMSSST (IZ) / AMUGEV
20344* | Normalize and print A_stab versus Z data:
20345 ASTLIN (2,IZ) = MAX ( SQRT (ASTLIN(2,IZ)-ASTLIN(1,IZ)**2),
20346 & 0.5D+00 )
20347* WRITE (LUNOUT,*)' Z:',IZ,' A_stab:',SNGL(ASTLIN(1,IZ)),
20348* & ' Sigma_st',SNGL(ASTLIN(2,IZ))
20349 3000 CONTINUE
20350* |
20351* +-------------------------------------------------------------------*
20352* +-------------------------------------------------------------------*
20353* | Normalize and print Z_stab versus A data:
20354 DO 4000 IA=1,260
20355 ZSTLIN (1,IA) = ZSTLIN (1,IA) / MAX ( ZNORM (IA), 1.D-10 )
20356 ZSTLIN (2,IA) = ZSTLIN (2,IA) / MAX ( ZNORM (IA), 1.D-10 )
20357 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ZSTLIN (1,IA)**2 )
20358 IF ( ZNORM (IA) .GT. ANGLGB )
20359**sr 2.11. avoid underflows at Pentium
20360 & ZSTLIN (2,IA) =
20361 & MAX ( SQRT ( ABS(ZSTLIN(2,IA)-ZSTLIN(1,IA)**2) ),
20362C & ZSTLIN (2,IA) = MAX ( SQRT (ZSTLIN(2,IA)-ZSTLIN(1,IA)**2),
20363 & 0.3D+00 )
20364 4000 CONTINUE
20365* |
20366* +-------------------------------------------------------------------*
20367* +-------------------------------------------------------------------*
20368* | Normalize and print Z_stab versus A data:
20369 DO 5000 IA=1,260
20370 IF ( ZNORM (IA) .LE. ANGLGB ) THEN
20371 DO 4200 JA = IA-1,1,-1
20372 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20373 IA1 = JA
20374 GO TO 4300
20375 END IF
20376 4200 CONTINUE
20377 4300 CONTINUE
20378 DO 4400 JA = IA+1,260
20379 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20380 IA2 = JA
20381 GO TO 4500
20382 END IF
20383 4400 CONTINUE
20384 IA2 = IA1
20385 IA1 = IA1 - 1
20386 4500 CONTINUE
20387 ZSTLIN (1,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20388 & * ( ZSTLIN (1,IA2) - ZSTLIN (1,IA1) )
20389 & + ZSTLIN (1,IA1)
20390 ZSTLIN (2,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20391 & * ( ZSTLIN (2,IA2) - ZSTLIN (2,IA1) )
20392 & + ZSTLIN (2,IA1)
20393 END IF
20394 IZ = MIN ( 100, NINT (ZSTLIN(1,IA)) )
20395 ATOZ = IZ / ASTLIN (1,IZ)
20396 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ATOZ * ASTLIN (2,IZ) )
20397* WRITE (LUNOUT,*)' A:',IA,' Z_stab:',SNGL(ZSTLIN(1,IA)),
20398* & ' Sigma_st',SNGL(ZSTLIN(2,IA))
20399 5000 CONTINUE
20400* |
20401* +-------------------------------------------------------------------*
20402 RETURN
20403 END
20404
20405*$ CREATE DT_BERTTP.FOR
20406*COPY DT_BERTTP
20407*
20408*=== berttp ===========================================================*
20409* *
20410 SUBROUTINE DT_BERTTP
20411
20412 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20413 SAVE
20414
20415 PARAMETER ( CSNNRM = 2.0D-15 )
20416 PARAMETER ( ZERZER = 0.D+00 )
20417 PARAMETER ( ONEONE = 1.D+00 )
20418 PARAMETER ( THRTHR = 3.D+00 )
20419 PARAMETER ( SIXSIX = 6.D+00 )
20420 PARAMETER ( ONETHI = ONEONE / THRTHR )
20421 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20422 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
20423 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
20424 PARAMETER ( EMVGEV = 1.0 D-03 )
20425
20426 PARAMETER ( NSTBIS = 304 )
20427
20428 PARAMETER ( LUNIN = 5 )
20429 PARAMETER ( LUNOUT = 6 )
20430**sr 19.5. set error output-unit from 15 to 6
20431 PARAMETER ( LUNERR = 6 )
20432C---------------------------------------------------------------------
20433C SUBNAME = DT_BERTTP --- READ BERTINI DATA
20434C---------------------------------------------------------------------
20435C ---------------------------------- I-N-C DATA
20436C COMMON R8(2127),R4(64),CRSC(600,4),R8B(336),CS(29849)
20437C REAL*8 R8,R8B,CRSC,CS
20438C REAL*4 R4
20439C --------------------------------- EVAPORATION DATA
20440* (original name: COOKCM)
20441 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
20442 LOGICAL LDEFOZ, LDEFON
20443 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
20444 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
20445 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
20446 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
20447* (original name: EVA0)
20448 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
20449 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
20450 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
20451 * T (4,7), RMASS (297), ALPH (297), BET (297),
20452 * APRIME (250), IA (6), IZ (6)
20453* (original name: FRBKCM)
20454 PARAMETER ( MXFFBK = 6 )
20455 PARAMETER ( MXZFBK = 9 )
20456 PARAMETER ( MXNFBK = 10 )
20457 PARAMETER ( MXAFBK = 16 )
20458 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20459 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20460 PARAMETER ( NXAFBK = MXAFBK + 1 )
20461 PARAMETER ( MXPSST = 300 )
20462 PARAMETER ( MXPSFB = 41000 )
20463 LOGICAL LFRMBK, LNCMSS
20464 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20465 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20466 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20467 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20468 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20469 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20470 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20471 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20472 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20473* (original name: HETTP)
20474 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
20475* (original name: INPFLG)
20476 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20477* (original name: ISOTOP)
20478 PARAMETER ( NAMSMX = 270 )
20479 PARAMETER ( NZGVAX = 15 )
20480 PARAMETER ( NISMMX = 574 )
20481 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20482 & WAPISM (NISMMX), T12ISM (NISMMX),
20483 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20484 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20485 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20486 & INWAPS (NAMSMX), JSPISM (NISMMX),
20487 & JPTISM (NISMMX), IZWISM (NISMMX),
20488 & INWISM (0:NAMSMX)
20489* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
20490 PARAMETER ( PI = PIPIPI )
20491 PARAMETER ( PISQ = PIPISQ )
20492 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
20493 PARAMETER ( RZNUCL = 1.12 D+00 )
20494 PARAMETER ( RMSPRO = 0.8 D+00 )
20495 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
20496 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
20497 & / R0PROT )
20498 PARAMETER ( RLLE04 = RZNUCL )
20499 PARAMETER ( RLLE16 = RZNUCL )
20500 PARAMETER ( RLGT16 = RZNUCL )
20501 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
20502 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
20503 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
20504 PARAMETER ( SKLE04 = 1.4D+00 )
20505 PARAMETER ( SKLE16 = 1.9D+00 )
20506 PARAMETER ( SKGT16 = 2.4D+00 )
20507 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
20508 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
20509 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
20510 PARAMETER ( ALPHA0 = 0.1D+00 )
20511 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
20512 PARAMETER ( GAMSK0 = 0.9D+00 )
20513 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
20514 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
20515 PARAMETER ( POTBA0 = 1.D+00 )
20516 PARAMETER ( PNFRAT = 1.533D+00 )
20517 PARAMETER ( RADPIM = 0.035D+00 )
20518 PARAMETER ( RDPMHL = 14.D+00 )
20519 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
20520 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
20521 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
20522 PARAMETER ( AP0PFS = 0.5D+00 )
20523 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
20524 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
20525 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
20526 PARAMETER ( MXSCIN = 50 )
20527 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
20528 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
20529 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
20530 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
20531 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
20532 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
20533 & PFRTAB (2:260)
20534 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
20535 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
20536 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
20537 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
20538 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
20539 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
20540 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
20541 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
20542 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
20543 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
20544 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
20545 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
20546 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
20547 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
20548 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
20549 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
20550 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
20551 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
20552 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
20553 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
20554 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
20555 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
20556 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
20557 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
20558 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
20559 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
20560 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
20561 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
20562 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
20563 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
20564 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
20565 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
20566 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
20567 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
20568 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
20569 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
20570 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
20571 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
20572 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
20573 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
20574 & LNCDCY, LNUSCT
20575 DIMENSION AWSTAB (2:260), SIGMAB (3)
20576 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
20577 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
20578 EQUIVALENCE ( RHOIPP, RHONCP (1) )
20579 EQUIVALENCE ( RHOINP, RHONCP (2) )
20580 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
20581 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
20582 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
20583 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
20584 EQUIVALENCE ( RHOIPT, RHONCT (1) )
20585 EQUIVALENCE ( RHOINT, RHONCT (2) )
20586 EQUIVALENCE ( OMALHL, SK3PAR )
20587 EQUIVALENCE ( ALPHAL, HABPAR )
20588 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
20589 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
20590 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
20591 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
20592 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
20593 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
20594 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
20595 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
20596 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
20597 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
20598 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
20599 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
20600 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
20601* (original name: NUCLEV)
20602 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
20603 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
20604 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
20605 & CUMRAD (0:160,2), RUSNUC (2),
20606 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
20607 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
20608 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
20609 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
20610 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
20611 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
20612 & LFLVSL, LRLVSL, LEQSBL
20613 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
20614 & MGSSPR (19) , MGSSNE (25)
20615 EQUIVALENCE ( RUSNUC (1), RUSPRO )
20616 EQUIVALENCE ( RUSNUC (2), RUSNEU )
20617 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
20618 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
20619 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
20620 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
20621 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
20622 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
20623 EQUIVALENCE ( NTANUC (1), NTAPRO )
20624 EQUIVALENCE ( NTANUC (2), NTANEU )
20625 EQUIVALENCE ( NAVNUC (1), NAVPRO )
20626 EQUIVALENCE ( NAVNUC (2), NAVNEU )
20627 EQUIVALENCE ( NLSNUC (1), NLSPRO )
20628 EQUIVALENCE ( NLSNUC (2), NLSNEU )
20629 EQUIVALENCE ( NCONUC (1), NCOPRO )
20630 EQUIVALENCE ( NCONUC (2), NCONEU )
20631 EQUIVALENCE ( NSKNUC (1), NSKPRO )
20632 EQUIVALENCE ( NSKNUC (2), NSKNEU )
20633 EQUIVALENCE ( NHANUC (1), NHAPRO )
20634 EQUIVALENCE ( NHANUC (2), NHANEU )
20635 EQUIVALENCE ( NUSNUC (1), NUSPRO )
20636 EQUIVALENCE ( NUSNUC (2), NUSNEU )
20637 EQUIVALENCE ( NACNUC (1), NACPRO )
20638 EQUIVALENCE ( NACNUC (2), NACNEU )
20639 EQUIVALENCE ( JMXNUC (1), JMXPRO )
20640 EQUIVALENCE ( JMXNUC (2), JMXNEU )
20641 EQUIVALENCE ( MAGNUC (1), MAGPRO )
20642 EQUIVALENCE ( MAGNUC (2), MAGNEU )
20643* (original name: PAREVT)
20644 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20645 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20646 PARAMETER ( NALLWP = 39 )
20647 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20648 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20649 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20650 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20651* (original name: XSEPAR)
20652 COMMON /FKXSEP/ AANXSE (100), BBNXSE (100), CCNXSE (100),
20653 & DDNXSE (100), EENXSE (100), ZZNXSE (100),
20654 & EMNXSE (100), XMNXSE (100),
20655 & AAPXSE (100), BBPXSE (100), CCPXSE (100),
20656 & DDPXSE (100), EEPXSE (100), FFPXSE (100),
20657 & ZZPXSE (100), EMPXSE (100), XMPXSE (100)
20658
20659C---------------------------------------------------------------------
20660**sr 17.5.95
20661* modified for use in DPMJET
20662C WRITE( LUNOUT,'(A,I2)')
20663C & ' *** Reading evaporation and nuclear data from unit: ', NBERTP
20664C REWIND NBERTP
20665 IF (LEVPRT) WRITE(LUNOUT,1000)
20666 1000 FORMAT(/,1X,'BERTTP:',4X,'Initialization of evaporation module',
20667 & /,12X,'------------------------------------',/)
20668 NBERNW = 23
f87dab60 20669CPH OPEN (UNIT=NBERNW,FILE='dpmjet.dat',STATUS='UNKNOWN')
9aaba0d6 20670
20671**sr 17.5.
20672*!!!! changed to be able to read the ASCII !!!!
20673**
20674C A. Ferrari: first of all read isotopic data
20675 READ (NBERNW,*) ISONDX
20676 READ (NBERNW,*) ISOMNM
20677 READ (NBERNW,*) ABUISO
20678C READ (NBERTP) ISONDX
20679C READ (NBERTP) ISOMNM
20680C READ (NBERTP) ABUISO
20681 DO 1 I=1,4
20682C READ (NBERTP) (CRSC(J,I),J=1,600)
20683C A. Ferrari: commented also the dummy read to save disk space
20684C READ (NBERTP)
20685 1 CONTINUE
20686C READ (NBERTP) CS
20687C A. Ferrari: commented also the dummy read to save disk space
20688C READ (NBERTP)
20689C---------------------------------------------------------------------
20690 READ (NBERNW,*) (P0(I),P1(I),P2(I),I=1,1001)
20691 READ (NBERNW,*) IA,IZ
20692 DO 2 I=1,6
20693 FLA(I)=IA(I)
20694 FLZ(I)=IZ(I)
20695 2 CONTINUE
20696 READ (NBERNW,*) RHO,OMEGA
20697 READ (NBERNW,*) EXMASS
20698 READ (NBERNW,*) CAM2
20699 READ (NBERNW,*) CAM3
20700 READ (NBERNW,*) CAM4
20701 READ (NBERNW,*) CAM5
20702 READ (NBERNW,*) ((T(I,J),J=1,7),I=1,3)
20703 DO 3 I=1,7
20704 T(4,I) = ZERZER
20705 3 CONTINUE
20706 READ (NBERNW,*) RMASS
20707 READ (NBERNW,*) ALPH
20708 READ (NBERNW,*) BET
20709 READ (NBERNW,*) INWAPS
20710 READ (NBERNW,*) WAPS
20711 READ (NBERNW,*) T12NUC
20712 READ (NBERNW,*) JSPNUC
20713 READ (NBERNW,*) JPTNUC
20714 READ (NBERNW,*) INWISM
20715 READ (NBERNW,*) IZWISM
20716 READ (NBERNW,*) WAPISM
20717 READ (NBERNW,*) T12ISM
20718 READ (NBERNW,*) JSPISM
20719 READ (NBERNW,*) JPTISM
20720 READ (NBERNW,*) APRIME
20721 IF (LEVPRT)
20722 &WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20723 READ (NBERNW,*) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20724 IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20725 & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20726 WRITE (LUNOUT,*)
20727 & ' *** Inconsistent Nuclear Geometry data on file ***'
20728 STOP
20729 END IF
20730 READ (NBERNW,*) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20731 & EKATAB, PFATAB, PFRTAB
20732 READ (NBERNW,*) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20733 & EMNXSE, XMNXSE
20734 READ (NBERNW,*) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20735 & ZZPXSE, EMPXSE, XMPXSE
20736* Data about Fermi-breakup:
20737 READ (NBERNW,*) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20738 IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20739 & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20740 WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20741 & ' in the Nuclear Data file ***'
20742 STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20743 END IF
20744 READ (NBERNW,*) IFRBKN
20745 READ (NBERNW,*) IFRBKZ
20746 READ (NBERNW,*) IFBKSP
20747 READ (NBERNW,*) IFBKST
20748 READ (NBERNW,*) EEXFBK
20749
20750 CLOSE (UNIT=NBERNW)
20751
20752C READ (NBERTP) (P0(I),P1(I),P2(I),I=1,1001)
20753C READ (NBERTP) IA,IZ
20754C DO 2 I=1,6
20755C FLA(I)=IA(I)
20756C FLZ(I)=IZ(I)
20757C 2 CONTINUE
20758C READ (NBERTP) RHO,OMEGA
20759C READ (NBERTP) EXMASS
20760C READ (NBERTP) CAM2
20761C READ (NBERTP) CAM3
20762C READ (NBERTP) CAM4
20763C READ (NBERTP) CAM5
20764C READ (NBERTP) ((T(I,J),J=1,7),I=1,3)
20765C DO 3 I=1,7
20766C T(4,I) = ZERZER
20767C 3 CONTINUE
20768C READ (NBERTP) RMASS
20769C READ (NBERTP) ALPH
20770C READ (NBERTP) BET
20771C READ (NBERTP) INWAPS
20772C READ (NBERTP) WAPS
20773C READ (NBERTP) T12NUC
20774C READ (NBERTP) JSPNUC
20775C READ (NBERTP) JPTNUC
20776C READ (NBERTP) INWISM
20777C READ (NBERTP) IZWISM
20778C READ (NBERTP) WAPISM
20779C READ (NBERTP) T12ISM
20780C READ (NBERTP) JSPISM
20781C READ (NBERTP) JPTISM
20782C READ (NBERTP) APRIME
20783C WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20784C READ (NBERTP) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20785C IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20786C & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20787C WRITE (LUNOUT,*)
20788C & ' *** Inconsistent Nuclear Geometry data on file ***'
20789C STOP
20790C END IF
20791C READ (NBERTP) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20792C & EKATAB, PFATAB, PFRTAB
20793C READ (NBERTP) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20794C & EMNXSE, XMNXSE
20795C READ (NBERTP) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20796C & ZZPXSE, EMPXSE, XMPXSE
20797* Data about Fermi-breakup:
20798C READ (NBERTP) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20799C IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20800C & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20801C WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20802C & ' in the Nuclear Data file ***'
20803C STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20804C END IF
20805C READ (NBERTP) IFRBKN
20806C READ (NBERTP) IFRBKZ
20807C READ (NBERTP) IFBKSP
20808C READ (NBERTP) IFBKST
20809C READ (NBERTP) EEXFBK
20810C CLOSE (UNIT=NBERTP)
20811 DO 100 JZ = 1, 130
20812 SHENUC ( JZ, 1 ) = EMVGEV * ( CAM2 (JZ) + CAM4 (JZ) )
20813 100 CONTINUE
20814 DO 200 JA = 1, 200
20815 SHENUC ( JA, 2 ) = EMVGEV * ( CAM3 (JA) + CAM5 (JA) )
20816 200 CONTINUE
20817 CALL DT_STALIN
20818 IF ( ILVMOD .LE. 0 ) THEN
20819 ILVMOD = IB0
20820 ELSE
20821 IB0 = ILVMOD
20822 END IF
20823 IF ( LLVMOD ) THEN
20824 DO 300 JZ = 1, IZCOOK
20825 CAM4 (JZ) = PZCOOK (JZ)
20826 300 CONTINUE
20827 DO 400 JN = 1, INCOOK
20828 CAM5 (JN) = PNCOOK (JZ)
20829 400 CONTINUE
20830 END IF
20831**sr
20832 IF (LEVPRT) THEN
20833 WRITE (LUNOUT,*)
20834 IF ( ILVMOD .EQ. 1 ) THEN
20835 WRITE (LUNOUT,*)
20836 & ' **** Standard EVAP T=0 level density used ****'
20837 ELSE IF ( ILVMOD .EQ. 2 ) THEN
20838 WRITE (LUNOUT,*)
20839 & ' **** Gilbert & Cameron T=0 N,Z-dep. level density used ****'
20840 ELSE IF ( ILVMOD .EQ. 3 ) THEN
20841 WRITE (LUNOUT,*)
20842 & ' **** Julich A-dependent level density used ****'
20843 ELSE IF ( ILVMOD .EQ. 4 ) THEN
20844 WRITE (LUNOUT,*)
20845 & ' **** Brancazio & Cameron T=0 N,Z-dep. level density used',
20846 & ' ****'
20847 ELSE
20848 WRITE (LUNOUT,*)
20849 & ' **** Unknown T=0 level density option requested ****'
20850 STOP 'BERTTP-ILVMOD'
20851 END IF
20852 IF ( JLVMOD .LE. 0 ) THEN
20853 GAMIGN = ZERZER
20854 WRITE (LUNOUT,*)
20855 & ' **** No Excitation en. dependence for level densities ****'
20856 ELSE IF ( JLVMOD .EQ. 1 ) THEN
20857 WRITE (LUNOUT,*)
20858 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20859 WRITE (LUNOUT,*)
20860 & ' **** with Ignyatuk (1975, 1st) set of parameters for T=oo',
20861 & ' ****'
20862 GAMIGN = 0.054D+00
20863 BETIGN = -6.3 D-05
20864 ALPIGN = 0.154D+00
20865 POWIGN = ZERZER
20866 ELSE IF ( JLVMOD .EQ. 2 ) THEN
20867 WRITE (LUNOUT,*)
20868 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20869 WRITE (LUNOUT,*)
20870 & ' **** with UNKNOWN set of parameters for T=oo ****'
20871 STOP 'BERTTP-JLVMOD'
20872 ELSE IF ( JLVMOD .EQ. 3 ) THEN
20873 WRITE (LUNOUT,*)
20874 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20875 WRITE (LUNOUT,*)
20876 & ' **** with UNKNOWN set of parameters for T=oo ****'
20877 STOP 'BERTTP-JLVMOD'
20878 ELSE IF ( JLVMOD .EQ. 4 ) THEN
20879 WRITE (LUNOUT,*)
20880 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20881 WRITE (LUNOUT,*)
20882 & ' **** with Ignyatuk (1975, 2nd) set of parameters for T=oo',
20883 & ' ****'
20884 GAMIGN = 0.054D+00
20885 BETIGN = 0.162D+00
20886 ALPIGN = 0.114D+00
20887 POWIGN = -ONETHI
20888 ELSE IF ( JLVMOD .EQ. 5 ) THEN
20889 WRITE (LUNOUT,*)
20890 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20891 WRITE (LUNOUT,*)
20892 & ' **** with Iljinov & Mebel 1st set of parameters for T=oo****'
20893 GAMIGN = 0.051D+00
20894 BETIGN = 0.098D+00
20895 ALPIGN = 0.114D+00
20896 POWIGN = -ONETHI
20897 ELSE IF ( JLVMOD .EQ. 6 ) THEN
20898 WRITE (LUNOUT,*)
20899 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20900 WRITE (LUNOUT,*)
20901 & ' **** with Iljinov & Mebel 2nd set of parameters for T=oo****'
20902 GAMIGN = -0.46D+00
20903 BETIGN = 0.107D+00
20904 ALPIGN = 0.111D+00
20905 POWIGN = -ONETHI
20906 ELSE IF ( JLVMOD .EQ. 7 ) THEN
20907 WRITE (LUNOUT,*)
20908 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20909 WRITE (LUNOUT,*)
20910 & ' **** with Iljinov & Mebel 3rd set of parameters for T=oo****'
20911 GAMIGN = 0.059D+00
20912 BETIGN = 0.257D+00
20913 ALPIGN = 0.072D+00
20914 POWIGN = -ONETHI
20915 ELSE IF ( JLVMOD .EQ. 8 ) THEN
20916 WRITE (LUNOUT,*)
20917 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20918 WRITE (LUNOUT,*)
20919 & ' **** with Iljinov & Mebel 4th set of parameters for T=oo****'
20920 GAMIGN = -0.37D+00
20921 BETIGN = 0.229D+00
20922 ALPIGN = 0.077D+00
20923 POWIGN = -ONETHI
20924 ELSE
20925 WRITE (LUNOUT,*)
20926 & ' **** Unknown T=oo level density option requested ****'
20927 STOP 'BERTTP-JLVMOD'
20928 END IF
20929 IF ( LLVMOD ) THEN
20930 WRITE (LUNOUT,*)
20931 & ' **** Cook''s modified pairing energy used ****'
20932 ELSE
20933 WRITE (LUNOUT,*)
20934 & ' **** Original Gilbert/Cameron pairing energy used ****'
20935 END IF
20936 ENDIF
20937**
20938
20939 ILVMOD = IB0
20940 DO 500 JZ = 1, 130
20941 PAENUC ( JZ, 1 ) = EMVGEV * CAM4 (JZ)
20942 500 CONTINUE
20943 DO 600 JA = 1, 200
20944 PAENUC ( JA, 2 ) = EMVGEV * CAM5 (JA)
20945 600 CONTINUE
20946 RETURN
20947 END
20948
20949*$ CREATE DT_EVEVAP.FOR
20950*COPY DT_EVEVAP
20951*
20952*====evevap============================================================*
20953*
20954 SUBROUTINE DT_EVEVAP(WE)
20955
20956 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20957 SAVE
20958 PARAMETER ( LINP = 10 ,
20959 & LOUT = 6 ,
20960 & LDAT = 9 )
20961
20962* flags for input different options
20963 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
20964 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
20965 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
20966
20967 LEVAPO = .FALSE.
20968
20969 RETURN
20970 END
20971
20972*$ CREATE DT_FRBKIN.FOR
20973*COPY DT_FRBKIN
20974*
20975*====frbkin============================================================*
20976*
20977 SUBROUTINE DT_FRBKIN(LDUM1,LDUM2)
20978
20979 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20980 SAVE
20981 PARAMETER ( LINP = 10 ,
20982 & LOUT = 6 ,
20983 & LDAT = 9 )
20984
20985 LOGICAL LDUM1,LDUM2
20986
20987 RETURN
20988 END
20989
20990*$ CREATE DT_EXPLOD.FOR
20991*COPY DT_EXPLOD
20992*
20993*=== explod ===========================================================*
20994*
20995 SUBROUTINE DT_EXPLOD( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
20996 & PYEXPL, PZEXPL )
20997
20998 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20999 SAVE
21000
21001 DIMENSION PXEXPL (NPEXPL), PYEXPL (NPEXPL), PZEXPL (NPEXPL),
21002 & ETEXPL (NPEXPL), AMEXPL (NPEXPL)
21003
21004 RETURN
21005 END
21006
21007************************************************************************
21008* *
21009* DPMJET 3.0: cross section routines *
21010* *
21011************************************************************************
21012*
21013*
21014* SUBROUTINE DT_SHNDIF
21015* diffractive cross sections (all energies)
21016* SUBROUTINE DT_PHOXS
21017* total and inel. cross sections from PHOJET interpol. tables
21018* SUBROUTINE DT_XSHN
21019* total and el. cross sections for all energies
21020* SUBROUTINE DT_SIHNAB
21021* pion 2-nucleon absorption cross sections
21022* SUBROUTINE DT_SIGEMU
21023* cross section for target "compounds"
21024* SUBROUTINE DT_SIGGA
21025* photon nucleus cross sections
21026* SUBROUTINE DT_SIGGAT
21027* photon nucleus cross sections from tables
21028* SUBROUTINE DT_SANO
21029* anomalous hard photon-nucleon cross sections from tables
21030* SUBROUTINE DT_SIGGP
21031* photon nucleon cross sections
21032* SUBROUTINE DT_SIGVEL
21033* quasi-elastic vector meson prod. cross sections
21034* DOUBLE PRECISION FUNCTION DT_SIGVP
21035* sigma_VN(tilde)
21036* DOUBLE PRECISION FUNCTION DT_RRM2
21037* DOUBLE PRECISION FUNCTION DT_RM2
21038* DOUBLE PRECISION FUNCTION DT_SAM2
21039* SUBROUTINE DT_CKMT
21040* SUBROUTINE DT_CKMTX
21041* SUBROUTINE DT_PDF0
21042* SUBROUTINE DT_CKMTQ0
21043* SUBROUTINE DT_CKMTDE
21044* SUBROUTINE DT_CKMTPR
21045* FUNCTION DT_CKMTFF
21046*
21047* SUBROUTINE DT_FLUINI
21048* total nucleon cross section fluctuation treatment
21049*
21050* SUBROUTINE DT_SIGTBL
21051* pre-tabulation of low-energy elastic x-sec. using SIHNEL
21052* SUBROUTINE DT_XSTABL
21053* service routines
21054*
21055*
21056*$ CREATE DT_SHNDIF.FOR
21057*COPY DT_SHNDIF
21058*
21059*===shndif===============================================================*
21060*
21061 SUBROUTINE DT_SHNDIF(ECM,KPROJ,KTARG,SIGDIF,SIGDIH)
21062
21063**********************************************************************
21064* Single diffractive hadron-nucleon cross sections *
21065* S.Roesler 14/1/93 *
21066* *
21067* The cross sections are calculated from extrapolated single *
21068* diffractive antiproton-proton cross sections (DTUJET92) using *
21069* scaling relations between total and single diffractive cross *
21070* sections. *
21071**********************************************************************
21072
21073 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21074 SAVE
21075 PARAMETER (ZERO=0.0D0)
21076
21077* particle properties (BAMJET index convention)
21078 CHARACTER*8 ANAME
21079 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21080 & IICH(210),IIBAR(210),K1(210),K2(210)
21081*
21082 CSD1 = 4.201483727D0
21083 CSD4 = -0.4763103556D-02
21084 CSD5 = 0.4324148297D0
21085*
21086 CHMSD1 = 0.8519297242D0
21087 CHMSD4 = -0.1443076599D-01
21088 CHMSD5 = 0.4014954567D0
21089*
21090 EPN = (ECM**2 -AAM(KPROJ)**2 -AAM(KTARG)**2)/(2.0D0*AAM(KTARG))
21091 PPN = SQRT((EPN-AAM(KPROJ))*(EPN+AAM(KPROJ)))
21092*
21093 SDIAPP = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21094 SHMSD = CHMSD1+CHMSD4*LOG(PPN)**2+CHMSD5*LOG(PPN)
21095 FRAC = SHMSD/SDIAPP
21096*
21097 GOTO( 10, 20,999,999,999,999,999, 10, 20,999,
21098 & 999, 20, 20, 20, 20, 20, 10, 20, 20, 10,
21099 & 10, 10, 20, 20, 20) KPROJ
21100*
21101 10 CONTINUE
21102*---------------------------- p - p , n - p , sigma0+- - p ,
21103* Lambda - p
21104 CSD1 = 6.004476070D0
21105 CSD4 = -0.1257784606D-03
21106 CSD5 = 0.2447335720D0
21107 SIGDIF = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21108 SIGDIH = FRAC*SIGDIF
21109 RETURN
21110*
21111 20 CONTINUE
21112*
21113 KPSCAL = 2
21114 KTSCAL = 1
21115C F = SDIAPP/DT_SHNTOT(KPSCAL,KTSCAL,ECM,ZERO)
21116 DUMZER = ZERO
21117 CALL DT_XSHN(KPSCAL,KTSCAL,DUMZER,ECM,SIGTO,SIGEL)
21118 F = SDIAPP/SIGTO
21119 KT = 1
21120C SIGDIF = DT_SHNTOT(KPROJ,KT,ECM,ZERO)*F
21121 CALL DT_XSHN(KPROJ,KT,DUMZER,ECM,SIGTO,SIGEL)
21122 SIGDIF = SIGTO*F
21123 SIGDIH = FRAC*SIGDIF
21124 RETURN
21125*
21126 999 CONTINUE
21127*-------------------------- leptons..
21128 SIGDIF = 1.D-10
21129 SIGDIH = 1.D-10
21130 RETURN
21131 END
21132
21133*$ CREATE DT_PHOXS.FOR
21134*COPY DT_PHOXS
21135*
21136*===phoxs================================================================*
21137*
21138 SUBROUTINE DT_PHOXS(KPROJ,KTARG,ECM,PLAB,STOT,SINE,SDIF1,BEL,MODE)
21139
21140************************************************************************
21141* Total/inelastic proton-nucleon cross sections taken from PHOJET- *
21142* interpolation tables. *
21143* This version dated 05.11.97 is written by S. Roesler *
21144************************************************************************
21145
21146 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21147 SAVE
21148
21149 PARAMETER ( LINP = 10 ,
21150 & LOUT = 6 ,
21151 & LDAT = 9 )
21152 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21153 PARAMETER (TWOPI = 6.283185307179586454D+00,
21154 & PI = TWOPI/TWO,
21155 & GEV2MB = 0.38938D0)
21156
21157 LOGICAL LFIRST
21158 DATA LFIRST /.TRUE./
21159
21160* nucleon-nucleon event-generator
21161 CHARACTER*8 CMODEL
21162 LOGICAL LPHOIN
21163 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21164* particle properties (BAMJET index convention)
21165 CHARACTER*8 ANAME
21166 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21167 & IICH(210),IIBAR(210),K1(210),K2(210)
21168
21169**PHOJET105a
21170C PARAMETER (IEETAB=10)
21171C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21172**PHOJET110
21173C energy-interpolation table
21174 INTEGER IEETA2
21175 PARAMETER ( IEETA2 = 20 )
21176 INTEGER ISIMAX
21177 DOUBLE PRECISION SIGTAB,SIGECM
21178 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21179**
21180
21181 IF ((MCGENE.NE.2).AND.(MODE.NE.1)) THEN
21182 WRITE(LOUT,*) MCGENE
21183 1000 FORMAT(1X,'PHOXS: warning! PHOJET not initialized (',I2,')')
21184 STOP
21185 ENDIF
21186
21187 IF (ECM.LE.ZERO) THEN
21188 EPN = SQRT(AAM(KPROJ)**2+PLAB**2)
21189 ECM = SQRT(AAM(KPROJ)**2+AAM(KTARG)**2+2.0D0*EPN*AAM(KTARG))
21190 ENDIF
21191
21192 IF (MODE.EQ.1) THEN
21193* DL
21194 DELDL = 0.0808D0
21195 EPSDL = -0.4525D0
21196 S = ECM*ECM
21197 STOT = 21.7D0*S**DELDL+56.08D0*S**EPSDL
21198 ALPHAP= 0.25D0
21199 BEL = 8.5D0+2.D0*ALPHAP*LOG(S)
21200 SIGEL = STOT**2/(16.D0*PI*BEL*GEV2MB)
21201 SINE = STOT-SIGEL
21202 SDIF1 = ZERO
21203 ELSE
21204* Phojet
21205 IP = 1
21206 IF(ECM.LE.SIGECM(IP,1)) THEN
21207 I1 = 1
21208 I2 = 1
21209 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
21210 DO 1 I=2,ISIMAX
21211 IF (ECM.LE.SIGECM(IP,I)) GOTO 2
21212 1 CONTINUE
21213 2 CONTINUE
21214 I1 = I-1
21215 I2 = I
21216 ELSE
21217 IF (LFIRST) THEN
21218 WRITE(LOUT,'(/1X,A,2E12.3)')
21219 & 'PHOXS: warning! energy above initialization limit (',
21220 & ECM,SIGECM(IP,ISIMAX)
21221 LFIRST = .FALSE.
21222 ENDIF
21223 I1 = ISIMAX
21224 I2 = ISIMAX
21225 ENDIF
21226 FAC2 = ZERO
21227 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
21228 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
21229 FAC1 = ONE-FAC2
21230 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
21231 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
21232 SDIF1 = FAC2*(SIGTAB(IP,30,I2)+SIGTAB(IP,32,I2))+
21233 & FAC1*(SIGTAB(IP,30,I1)+SIGTAB(IP,32,I1))
21234 BEL = FAC2*SIGTAB(IP,39,I2)+FAC1*SIGTAB(IP,39,I1)
21235 ENDIF
21236
21237 RETURN
21238 END
21239
21240*$ CREATE DT_XSHN.FOR
21241*COPY DT_XSHN
21242*
21243*===xshn===============================================================*
21244*
21245 SUBROUTINE DT_XSHN(IP,IT,PL,ECM,STOT,SELA)
21246
21247************************************************************************
21248* Total and elastic hadron-nucleon cross section. *
21249* Below 500GeV cross sections are based on the '98 data compilation *
21250* of the PDG. At higher energies PHOJET results are used (patched to *
21251* the low energy data at 500GeV). *
21252* IP projectile index (BAMJET numbering scheme) *
21253* (should be in the range 1..25) *
21254* IT target index (BAMJET numbering scheme) *
21255* (1 = proton, 8 = neutron) *
21256* PL laboratory momentum *
21257* ECM cm. energy (ignored if PL>0) *
21258* STOT total cross section *
21259* SELA elastic cross section *
21260* Last change: 24.4.99 by S. Roesler *
21261************************************************************************
21262
21263 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21264 SAVE
21265
21266 PARAMETER ( LINP = 10 ,
21267 & LOUT = 6 ,
21268 & LDAT = 9 )
21269 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
21270
21271 PARAMETER (NPOIN1 = 54, NPOIN2 = 8,
21272 & PLABLO = 0.1D0, PTHRE = 5.0D0, PLABHI = 500.0D0)
21273 PARAMETER (NPOINT = NPOIN1+NPOIN2+1)
21274
21275 LOGICAL LFIRST
21276* particle properties (BAMJET index convention)
21277 CHARACTER*8 ANAME
21278 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21279 & IICH(210),IIBAR(210),K1(210),K2(210)
21280* nucleon-nucleon event-generator
21281 CHARACTER*8 CMODEL
21282 LOGICAL LPHOIN
21283 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21284**PHOJET105a
21285C PARAMETER (IEETAB=10)
21286C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21287**PHOJET110
21288C energy-interpolation table
21289 INTEGER IEETA2
21290 PARAMETER ( IEETA2 = 20 )
21291 INTEGER ISIMAX
21292 DOUBLE PRECISION SIGTAB,SIGECM
21293 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21294
21295 DIMENSION APL(NPOINT),ASIGTO(10,NPOINT),ASIGEL(10,NPOINT)
21296 DIMENSION IDXDAT(25,2)
21297*
21298 DATA APL /
21299 &-1.000,-0.969,-0.937,-0.906,-0.874,-0.843,-0.811,-0.780,-0.748,
21300 &-0.717,-0.685,-0.654,-0.622,-0.591,-0.560,-0.528,-0.497,-0.465,
21301 &-0.434,-0.402,-0.371,-0.339,-0.308,-0.276,-0.245,-0.213,-0.182,
21302 &-0.151,-0.119,-0.088,-0.056,-0.025, 0.007, 0.038, 0.070, 0.101,
21303 & 0.133, 0.164, 0.196, 0.227, 0.258, 0.290, 0.321, 0.353, 0.384,
21304 & 0.416, 0.447, 0.479, 0.510, 0.542, 0.573, 0.605, 0.636, 0.668,
21305 & 0.699, 0.949, 1.199, 1.449, 1.699, 1.949, 2.199, 2.449, 2.699/
21306*
21307* total cross sections:
21308* p p
21309 DATA (ASIGTO(1,K),K=1,NPOINT) /
21310 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21311 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21312 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.375, 1.363, 1.356, 1.352,
21313 & 1.350, 1.351, 1.359, 1.381, 1.410, 1.444, 1.487, 1.544, 1.596,
21314 & 1.650, 1.672, 1.676, 1.677, 1.677, 1.675, 1.675, 1.669, 1.664,
21315 & 1.658, 1.653, 1.645, 1.640, 1.634, 1.630, 1.625, 1.620, 1.617,
21316 & 1.614, 1.602, 1.594, 1.589, 1.581, 1.583, 1.588, 1.596, 1.603/
21317* pbar p
21318 DATA (ASIGTO(2,K),K=1,NPOINT) /
21319 & 2.778, 2.759, 2.739, 2.718, 2.697, 2.675, 2.651, 2.626, 2.598,
21320 & 2.569, 2.537, 2.502, 2.471, 2.443, 2.420, 2.389, 2.361, 2.329,
21321 & 2.313, 2.304, 2.268, 2.244, 2.222, 2.212, 2.178, 2.162, 2.151,
21322 & 2.132, 2.109, 2.097, 2.089, 2.078, 2.063, 2.049, 2.035, 2.024,
21323 & 2.014, 2.004, 1.993, 1.981, 1.970, 1.958, 1.946, 1.933, 1.921,
21324 & 1.909, 1.894, 1.885, 1.871, 1.854, 1.836, 1.825, 1.816, 1.802,
21325 & 1.790, 1.744, 1.694, 1.663, 1.642, 1.614, 1.623, 1.623, 1.630/
21326* n p
21327 DATA (ASIGTO(3,K),K=1,NPOINT) /
21328 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21329 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21330 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21331 & 1.547, 1.534, 1.526, 1.522, 1.520, 1.525, 1.536, 1.550, 1.566,
21332 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21333 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21334 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21335* pi+ p
21336 DATA (ASIGTO(4,K),K=1,NPOINT) /
21337 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21338 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21339 & 2.001, 1.875, 1.801, 1.665, 1.609, 1.484, 1.412, 1.334, 1.195,
21340 & 1.160, 1.166, 1.208, 1.309, 1.356, 1.394, 1.406, 1.419, 1.473,
21341 & 1.540, 1.596, 1.570, 1.533, 1.516, 1.484, 1.471, 1.478, 1.492,
21342 & 1.497, 1.491, 1.479, 1.465, 1.453, 1.449, 1.450, 1.444, 1.428,
21343 & 1.422, 1.406, 1.384, 1.369, 1.364, 1.369, 1.374, 1.388, 1.395/
21344* pi- p
21345 DATA (ASIGTO(5,K),K=1,NPOINT) /
21346 & 0.458, 0.540, 0.626, 0.718, 0.819, 0.933, 1.063, 1.208, 1.226,
21347 & 1.436, 1.470, 1.594, 1.708, 1.786, 1.852, 1.836, 1.763, 1.679,
21348 & 1.590, 1.492, 1.445, 1.426, 1.423, 1.433, 1.473, 1.506, 1.547,
21349 & 1.660, 1.671, 1.545, 1.591, 1.687, 1.808, 1.656, 1.582, 1.543,
21350 & 1.562, 1.560, 1.537, 1.540, 1.549, 1.557, 1.557, 1.551, 1.535,
21351 & 1.527, 1.511, 1.510, 1.507, 1.500, 1.491, 1.483, 1.478, 1.468,
21352 & 1.463, 1.435, 1.408, 1.394, 1.384, 1.380, 1.383, 1.393, 1.411/
21353* K+ p
21354 DATA (ASIGTO(6,K),K=1,NPOINT) /
21355 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21356 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21357 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.096, 1.095,
21358 & 1.098, 1.105, 1.111, 1.139, 1.169, 1.209, 1.248, 1.259, 1.268,
21359 & 1.262, 1.257, 1.254, 1.252, 1.250, 1.249, 1.246, 1.244, 1.244,
21360 & 1.243, 1.240, 1.238, 1.237, 1.236, 1.235, 1.235, 1.236, 1.236,
21361 & 1.236, 1.233, 1.238, 1.248, 1.257, 1.272, 1.292, 1.311, 1.336/
21362* K- p
21363 DATA (ASIGTO(7,K),K=1,NPOINT) /
21364 & 2.003, 2.002, 2.001, 2.000, 1.999, 1.998, 1.998, 1.997, 1.997,
21365 & 1.996, 1.995, 1.993, 1.990, 1.992, 1.974, 1.912, 1.865, 1.847,
21366 & 1.896, 1.950, 1.827, 1.681, 1.637, 1.616, 1.589, 1.545, 1.543,
21367 & 1.532, 1.603, 1.604, 1.616, 1.658, 1.700, 1.658, 1.595, 1.508,
21368 & 1.493, 1.514, 1.531, 1.523, 1.501, 1.479, 1.474, 1.467, 1.463,
21369 & 1.450, 1.444, 1.435, 1.426, 1.424, 1.423, 1.415, 1.401, 1.396,
21370 & 1.384, 1.364, 1.330, 1.313, 1.310, 1.309, 1.317, 1.329, 1.338/
21371* K+ n
21372 DATA (ASIGTO(8,K),K=1,NPOINT) /
21373 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21374 & 0.631, 0.675, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21375 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.102, 1.125, 1.147,
21376 & 1.168, 1.187, 1.205, 1.224, 1.248, 1.279, 1.315, 1.324, 1.301,
21377 & 1.285, 1.279, 1.274, 1.273, 1.272, 1.271, 1.267, 1.263, 1.261,
21378 & 1.259, 1.256, 1.252, 1.247, 1.244, 1.241, 1.240, 1.240, 1.240,
21379 & 1.241, 1.243, 1.245, 1.253, 1.265, 1.275, 1.293, 1.314, 1.342/
21380* K- n
21381 DATA (ASIGTO(9,K),K=1,NPOINT) /
21382 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778,
21383 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.779, 1.779, 1.778, 1.773,
21384 & 1.765, 1.746, 1.703, 1.646, 1.561, 1.488, 1.454, 1.437, 1.437,
21385 & 1.458, 1.505, 1.561, 1.588, 1.593, 1.581, 1.551, 1.500, 1.454,
21386 & 1.427, 1.408, 1.390, 1.372, 1.361, 1.356, 1.351, 1.347, 1.343,
21387 & 1.341, 1.340, 1.338, 1.337, 1.335, 1.334, 1.332, 1.331, 1.330,
21388 & 1.330, 1.313, 1.303, 1.288, 1.288, 1.297, 1.305, 1.320, 1.342/
21389* Lambda p
21390 DATA (ASIGTO(10,K),K=1,NPOINT) /
21391 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21392 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.629,
21393 & 1.599, 1.576, 1.558, 1.543, 1.530, 1.520, 1.512, 1.505, 1.499,
21394 & 1.495, 1.495, 1.497, 1.504, 1.514, 1.525, 1.536, 1.550, 1.567,
21395 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21396 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21397 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21398*
21399* elastic cross sections:
21400* p p
21401 DATA (ASIGEL(1,K),K=1,NPOINT) /
21402 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21403 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21404 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.374, 1.360, 1.353, 1.350,
21405 & 1.351, 1.356, 1.362, 1.369, 1.376, 1.384, 1.385, 1.399, 1.397,
21406 & 1.389, 1.385, 1.379, 1.366, 1.358, 1.344, 1.320, 1.294, 1.275,
21407 & 1.260, 1.248, 1.235, 1.219, 1.199, 1.172, 1.144, 1.126, 1.115,
21408 & 1.104, 1.013, 0.962, 0.905, 0.869, 0.845, 0.846, 0.850, 0.868/
21409* pbar p
21410 DATA (ASIGEL(2,K),K=1,NPOINT) /
21411 & 1.987, 1.985, 1.983, 1.980, 1.978, 1.975, 1.971, 1.968, 1.963,
21412 & 1.958, 1.951, 1.944, 1.935, 1.925, 1.914, 1.902, 1.889, 1.875,
21413 & 1.859, 1.845, 1.834, 1.817, 1.792, 1.769, 1.754, 1.738, 1.720,
21414 & 1.702, 1.688, 1.676, 1.667, 1.659, 1.652, 1.645, 1.640, 1.636,
21415 & 1.620, 1.591, 1.562, 1.546, 1.540, 1.524, 1.496, 1.475, 1.457,
21416 & 1.429, 1.402, 1.373, 1.344, 1.330, 1.306, 1.294, 1.265, 1.228,
21417 & 1.204, 1.086, 0.977, 0.933, 0.914, 0.850, 0.862, 0.848, 0.845/
21418* n p
21419 DATA (ASIGEL(3,K),K=1,NPOINT) /
21420 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21421 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21422 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21423 & 1.544, 1.527, 1.514, 1.504, 1.495, 1.486, 1.476, 1.466, 1.454,
21424 & 1.440, 1.425, 1.409, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21425 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21426 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21427* pi+ p
21428 DATA (ASIGEL(4,K),K=1,NPOINT) /
21429 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21430 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21431 & 2.001, 1.875, 1.801, 1.664, 1.610, 1.479, 1.423, 1.299, 1.166,
21432 & 1.097, 1.020, 0.958, 0.914, 1.013, 1.088, 1.153, 1.167, 1.235,
21433 & 1.240, 1.237, 1.202, 1.135, 1.090, 1.026, 0.975, 0.941, 0.904,
21434 & 0.894, 0.884, 0.862, 0.850, 0.845, 0.827, 0.805, 0.789, 0.776,
21435 & 0.763, 0.686, 0.626, 0.562, 0.505, 0.518, 0.525, 0.528, 0.528/
21436* pi- p
21437 DATA (ASIGEL(5,K),K=1,NPOINT) /
21438 & 0.266, 0.278, 0.294, 0.320, 0.360, 0.419, 0.503, 0.608, 0.727,
21439 & 0.850, 0.968, 1.071, 1.167, 1.305, 1.369, 1.404, 1.446, 1.217,
21440 & 1.112, 1.071, 1.014, 1.002, 0.996, 1.008, 1.070, 1.126, 1.209,
21441 & 1.300, 1.281, 1.188, 1.156, 1.341, 1.423, 1.314, 1.171, 1.140,
21442 & 1.106, 1.071, 1.011, 1.037, 1.026, 1.024, 0.988, 0.953, 0.895,
21443 & 0.894, 0.880, 0.871, 0.864, 0.853, 0.837, 0.820, 0.809, 0.800,
21444 & 0.782, 0.674, 0.612, 0.530, 0.521, 0.528, 0.524, 0.542, 0.569/
21445* K+ p
21446 DATA (ASIGEL(6,K),K=1,NPOINT) /
21447 & 1.064, 1.065, 1.065, 1.066, 1.066, 1.066, 1.066, 1.066, 1.066,
21448 & 1.065, 1.064, 1.063, 1.062, 1.062, 1.062, 1.064, 1.066, 1.070,
21449 & 1.076, 1.082, 1.088, 1.096, 1.103, 1.104, 1.104, 1.102, 1.093,
21450 & 1.087, 1.084, 1.079, 1.075, 1.067, 1.058, 1.040, 1.029, 1.012,
21451 & 1.003, 0.985, 0.935, 0.909, 0.880, 0.846, 0.790, 0.771, 0.759,
21452 & 0.743, 0.718, 0.681, 0.666, 0.645, 0.622, 0.606, 0.594, 0.584,
21453 & 0.575, 0.513, 0.453, 0.403, 0.356, 0.365, 0.389, 0.430, 0.477/
21454* K- p
21455 DATA (ASIGEL(7,K),K=1,NPOINT) /
21456 & 1.941, 1.936, 1.931, 1.926, 1.919, 1.912, 1.903, 1.892, 1.878,
21457 & 1.863, 1.844, 1.821, 1.791, 1.755, 1.713, 1.666, 1.615, 1.561,
21458 & 1.533, 1.531, 1.518, 1.511, 1.452, 1.339, 1.265, 1.233, 1.188,
21459 & 1.184, 1.236, 1.316, 1.333, 1.336, 1.333, 1.277, 1.216, 1.077,
21460 & 1.018, 0.912, 0.926, 0.920, 0.910, 0.894, 0.830, 0.825, 0.800,
21461 & 0.788, 0.747, 0.703, 0.707, 0.689, 0.643, 0.633, 0.635, 0.618,
21462 & 0.584, 0.579, 0.461, 0.403, 0.405, 0.399, 0.408, 0.418, 0.413/
21463* K+ n
21464 DATA (ASIGEL(8,K),K=1,NPOINT) /
21465 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21466 & 0.631, 0.676, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21467 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.103, 1.126, 1.148,
21468 & 1.168, 1.187, 1.205, 1.223, 1.248, 1.282, 1.269, 1.185, 1.111,
21469 & 1.063, 1.031, 0.998, 0.964, 0.928, 0.889, 0.849, 0.814, 0.785,
21470 & 0.760, 0.738, 0.720, 0.703, 0.688, 0.674, 0.660, 0.648, 0.635,
21471 & 0.624, 0.536, 0.473, 0.442, 0.428, 0.428, 0.436, 0.453, 0.477/
21472* K- n
21473 DATA (ASIGEL(9,K),K=1,NPOINT) /
21474 & 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613,
21475 & 1.613, 1.613, 1.613, 1.612, 1.613, 1.614, 1.614, 1.612, 1.606,
21476 & 1.593, 1.564, 1.498, 1.402, 1.240, 1.071, 0.977, 0.922, 0.914,
21477 & 0.961, 1.077, 1.214, 1.271, 1.290, 1.281, 1.217, 1.096, 0.979,
21478 & 0.896, 0.822, 0.736, 0.655, 0.608, 0.591, 0.580, 0.569, 0.559,
21479 & 0.550, 0.540, 0.531, 0.522, 0.514, 0.507, 0.500, 0.494, 0.489,
21480 & 0.485, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477/
21481* Lambda p
21482 DATA (ASIGEL(10,K),K=1,NPOINT) /
21483 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21484 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.630,
21485 & 1.600, 1.577, 1.558, 1.542, 1.528, 1.518, 1.510, 1.505, 1.502,
21486 & 1.501, 1.500, 1.499, 1.496, 1.491, 1.485, 1.477, 1.466, 1.454,
21487 & 1.440, 1.425, 1.408, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21488 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21489 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21490
21491 DATA (IDXDAT(K,1),K=1,25) /
21492 & 1, 2, 0, 0, 0, 0, 0, 3, 2, 0, 0,67, 4, 5, 6, 7,10, 2,67, 3,
21493 & 1, 3,45, 8, 9/
21494 DATA (IDXDAT(K,2),K=1,25) /
21495 & 3, 2, 0, 0, 0, 0, 0, 1, 2, 0, 0,89, 5, 4, 8, 9, 1, 2,89, 1,
21496 & 3, 1,45, 6, 7/
21497
21498 DATA LFIRST /.TRUE./
21499
21500 IF (LFIRST) THEN
21501 APLABL = LOG10(PLABLO)
21502 APLABH = LOG10(PLABHI)
21503 APTHRE = LOG10(PTHRE)
21504 ADP1 = (APTHRE-APLABL)/DBLE(NPOIN1)
21505 ADP2 = (APLABH-APTHRE)/DBLE(NPOIN2)
21506 DUM0 = ZERO
21507 PHOPLA = PLABHI
21508 PHOELA = SQRT(AAM(1)**2+PHOPLA**2)
21509 ECMS = SQRT(2.0D0*AAM(1)**2+2.0D0*AAM(1)*PHOELA)
21510 IF (MCGENE.EQ.2) THEN
21511 IF (ECMS.LE.SIGECM(1,ISIMAX)) THEN
21512 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,0)
21513 ELSE
21514 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21515 ENDIF
21516 ELSE
21517 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21518 ENDIF
21519 PHOSEL = PHOSTO-PHOSIN
21520 APHOST = LOG10(PHOSTO)
21521 APHOSE = LOG10(PHOSEL)
21522 LFIRST = .FALSE.
21523 ENDIF
21524 STOT = ZERO
21525 SELA = ZERO
21526 PLAB = PL
21527 ECMS = ECM
21528 IF ( (IP.LT.1).OR.((IT.NE.1).AND.(IT.NE.8)) ) THEN
21529 WRITE(LOUT,1000) IP,IT
21530 1000 FORMAT(1X,'DT_XSHN: cross sections not implemented for ',
21531 & 'proj/target',2I4)
21532 STOP
21533 ENDIF
21534
21535 IF ((PLAB.LE.ZERO).AND.(ECMS.GT.ZERO)) THEN
21536 ELAB = (ECMS**2-AAM(IP)**2-AAM(IT)**2)/(2.0D0*AAM(IT))
21537 PLAB = SQRT((ELAB-AAM(IP))*(ELAB+AAM(IP)))
21538 ELSEIF ((PLAB.LE.ZERO).AND.(ECMS.LE.ZERO)) THEN
21539 WRITE(LOUT,1001) PLAB,ECMS
21540 1001 FORMAT(1X,'DT_XSHN: invalid momentum/cm-energy ',2E15.5)
21541 STOP
21542 ENDIF
21543
21544* index of spectrum
21545 IDXP = IP
21546 IF (IP.GT.25) THEN
21547 IF (AAM(IP).GT.ZERO) THEN
21548 IF (ABS(IIBAR(IP)).GT.0) THEN
21549 IDXP = 1
21550 ELSE
21551 IDXP = 13
21552 ENDIF
21553 ELSE
21554 IDXP = 7
21555 ENDIF
21556 ENDIF
21557 IDXT = 1
21558 IF (IT.EQ.8) IDXT = 2
21559 IDXS = IDXDAT(IDXP,IDXT)
21560 IF (IDXS.EQ.0) RETURN
21561
21562* compute momentum bin indices
21563 IF (PLAB.LT.PLABLO) THEN
21564 IDX0 = 1
21565 IDX1 = 1
21566 ELSEIF (PLAB.GE.PLABHI) THEN
21567 IDX0 = NPOINT
21568 IDX1 = NPOINT
21569 ELSE
21570 APLAB = LOG10(PLAB)
21571 IF ((PLAB.GE.PLABLO).AND.(PLAB.LT.PTHRE )) THEN
21572 IDX0 = INT((APLAB-APLABL)/ADP1)+1
21573 ELSEIF ((PLAB.GE.PTHRE ).AND.(PLAB.LT.PLABHI)) THEN
21574 IDX0 = INT((APLAB-APTHRE)/ADP2)+NPOIN1+1
21575 ENDIF
21576 IDX1 = IDX0+1
21577 ENDIF
21578
21579* interpolate cross section
21580 IF (IDXS.GT.10) THEN
21581 IDXS1 = IDXS/10
21582 IDXS2 = IDXS-10*IDXS1
21583 IF (IDX0.EQ.IDX1) THEN
21584 IF (IDX0.EQ.1) THEN
21585 ASTOT = 0.5D0*(ASIGTO(IDXS1,IDX0)+ASIGTO(IDXS2,IDX0))
21586 ASELA = 0.5D0*(ASIGEL(IDXS1,IDX0)+ASIGEL(IDXS2,IDX0))
21587 ELSE
21588 DUM0 = ZERO
21589 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21590 PHOSEL = PHOSTO-PHOSIN
21591 ASTOT1 = ASIGTO(IDXS1,NPOINT)-APHOST+LOG10(PHOSTO)
21592 ASELA1 = ASIGEL(IDXS1,NPOINT)-APHOSE+LOG10(PHOSEL)
21593 ASTOT2 = ASIGTO(IDXS2,NPOINT)-APHOST+LOG10(PHOSTO)
21594 ASELA2 = ASIGEL(IDXS2,NPOINT)-APHOSE+LOG10(PHOSEL)
21595 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21596 ASELA = 0.5D0*(ASELA1+ASELA2)
21597 ENDIF
21598 ELSE
21599 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21600 ASTOT1 = ASIGTO(IDXS1,IDX0)+
21601 & FAC*(ASIGTO(IDXS1,IDX1)-ASIGTO(IDXS1,IDX0))
21602 ASTOT2 = ASIGTO(IDXS2,IDX0)+
21603 & FAC*(ASIGTO(IDXS2,IDX1)-ASIGTO(IDXS2,IDX0))
21604 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21605 ASELA1 = ASIGEL(IDXS1,IDX0)+
21606 & FAC*(ASIGEL(IDXS1,IDX1)-ASIGEL(IDXS1,IDX0))
21607 ASELA2 = ASIGEL(IDXS2,IDX0)+
21608 & FAC*(ASIGEL(IDXS2,IDX1)-ASIGEL(IDXS2,IDX0))
21609 ASELA = 0.5D0*(ASELA1+ASELA2)
21610 ENDIF
21611 ELSE
21612 IF (IDX0.EQ.IDX1) THEN
21613 IF (IDX0.EQ.1) THEN
21614 ASTOT = ASIGTO(IDXS,IDX0)
21615 ASELA = ASIGEL(IDXS,IDX0)
21616 ELSE
21617 DUM0 = ZERO
21618 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21619 PHOSEL = PHOSTO-PHOSIN
21620 ASTOT = ASIGTO(IDXS,NPOINT)-APHOST+LOG10(PHOSTO)
21621 ASELA = ASIGEL(IDXS,NPOINT)-APHOSE+LOG10(PHOSEL)
21622 ENDIF
21623 ELSE
21624 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21625 ASTOT = ASIGTO(IDXS,IDX0)+
21626 & FAC*(ASIGTO(IDXS,IDX1)-ASIGTO(IDXS,IDX0))
21627 ASELA = ASIGEL(IDXS,IDX0)+
21628 & FAC*(ASIGEL(IDXS,IDX1)-ASIGEL(IDXS,IDX0))
21629 ENDIF
21630 ENDIF
21631 STOT = 10.0D0**ASTOT
21632 SELA = 10.0D0**ASELA
21633
21634 RETURN
21635 END
21636
21637*$ CREATE DT_SIHNAB.FOR
21638*COPY DT_SIHNAB
21639*
21640*===sihnab===============================================================*
21641*
21642 SUBROUTINE DT_SIHNAB(IDP,IDT,PLAB,SIGABS)
21643
21644**********************************************************************
21645* Pion 2-nucleon absorption cross sections. *
21646* (sigma_tot for pi+ d --> p p, pi- d --> n n *
21647* taken from Ritchie PRC 28 (1983) 926 ) *
21648* This version dated 18.05.96 is written by S. Roesler *
21649**********************************************************************
21650
21651 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21652 SAVE
21653 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY3=1.0D-3)
21654 PARAMETER (AMPR = 938.0D0,
21655 & AMPI = 140.0D0,
21656 & AMDE = TWO*AMPR,
21657 & A = -1.2D0,
21658 & B = 3.5D0,
21659 & C = 7.4D0,
21660 & D = 5600.0D0,
21661 & ER = 2136.0D0)
21662
21663 SIGABS = ZERO
21664 IF ( ((IDP.NE.13).AND.(IDP.NE.14).AND.(IDP.NE.23))
21665 & .OR.((IDT.NE.1).AND.(IDT.NE.8)) ) RETURN
21666 PTOT = PLAB*1.0D3
21667 EKIN = SQRT(AMPI**2+PTOT**2)-AMPI
21668 IF ((EKIN.LT.TINY3).OR.(EKIN.GT.400.0D0)) RETURN
21669 ECM = SQRT( (AMPI+AMDE)**2+TWO*EKIN*AMDE )
21670 SIGABS = A+B/SQRT(EKIN)+C*1.0D4/((ECM-ER)**2+D)
21671* approximate 3N-abs., I=1-abs. etc.
21672 SIGABS = SIGABS/0.40D0
21673* pi0-absorption (rough approximation!!)
21674 IF (IDP.EQ.23) SIGABS = 0.5D0*SIGABS
21675
21676 RETURN
21677 END
21678
21679*$ CREATE DT_SIGEMU.FOR
21680*COPY DT_SIGEMU
21681*
21682*===sigemu=============================================================*
21683*
21684 SUBROUTINE DT_SIGEMU
21685
21686************************************************************************
21687* Combined cross section for target compounds. *
21688* This version dated 6.4.98 is written by S. Roesler *
21689************************************************************************
21690
21691 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21692 SAVE
21693 PARAMETER ( LINP = 10 ,
21694 & LOUT = 6 ,
21695 & LDAT = 9 )
21696 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21697 & OHALF=0.5D0,ONE=1.0D0)
21698
21699 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21700* Glauber formalism: cross sections
21701 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21702 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21703 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21704 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21705 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21706 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21707 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21708 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21709 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21710 & BSLOPE,NEBINI,NQBINI
21711* emulsion treatment
21712 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
21713 & NCOMPO,IEMUL
21714* nucleon-nucleon event-generator
21715 CHARACTER*8 CMODEL
21716 LOGICAL LPHOIN
21717 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21718
21719 IF (MCGENE.NE.4) THEN
21720 WRITE(LOUT,'(A)') ' DT_SIGEMU: Combined cross sections'
21721 WRITE(LOUT,'(15X,A)') '-----------------------'
21722 ENDIF
21723 DO 1 IE=1,NEBINI
21724 DO 2 IQ=1,NQBINI
21725 SIGTOT = ZERO
21726 SIGELA = ZERO
21727 SIGQEP = ZERO
21728 SIGQET = ZERO
21729 SIGQE2 = ZERO
21730 SIGPRO = ZERO
21731 SIGDEL = ZERO
21732 SIGDQE = ZERO
21733 ERRTOT = ZERO
21734 ERRELA = ZERO
21735 ERRQEP = ZERO
21736 ERRQET = ZERO
21737 ERRQE2 = ZERO
21738 ERRPRO = ZERO
21739 ERRDEL = ZERO
21740 ERRDQE = ZERO
21741 IF (NCOMPO.GT.0) THEN
21742 DO 3 IC=1,NCOMPO
21743 SIGTOT = SIGTOT+EMUFRA(IC)*XSTOT(IE,IQ,IC)
21744 SIGELA = SIGELA+EMUFRA(IC)*XSELA(IE,IQ,IC)
21745 SIGQEP = SIGQEP+EMUFRA(IC)*XSQEP(IE,IQ,IC)
21746 SIGQET = SIGQET+EMUFRA(IC)*XSQET(IE,IQ,IC)
21747 SIGQE2 = SIGQE2+EMUFRA(IC)*XSQE2(IE,IQ,IC)
21748 SIGPRO = SIGPRO+EMUFRA(IC)*XSPRO(IE,IQ,IC)
21749 SIGDEL = SIGDEL+EMUFRA(IC)*XSDEL(IE,IQ,IC)
21750 SIGDQE = SIGDQE+EMUFRA(IC)*XSDQE(IE,IQ,IC)
21751 ERRTOT = ERRTOT+XETOT(IE,IQ,IC)**2
21752 ERRELA = ERRELA+XEELA(IE,IQ,IC)**2
21753 ERRQEP = ERRQEP+XEQEP(IE,IQ,IC)**2
21754 ERRQET = ERRQET+XEQET(IE,IQ,IC)**2
21755 ERRQE2 = ERRQE2+XEQE2(IE,IQ,IC)**2
21756 ERRPRO = ERRPRO+XEPRO(IE,IQ,IC)**2
21757 ERRDEL = ERRDEL+XEDEL(IE,IQ,IC)**2
21758 ERRDQE = ERRDQE+XEDQE(IE,IQ,IC)**2
21759 3 CONTINUE
21760 ERRTOT = SQRT(ERRTOT)
21761 ERRELA = SQRT(ERRELA)
21762 ERRQEP = SQRT(ERRQEP)
21763 ERRQET = SQRT(ERRQET)
21764 ERRQE2 = SQRT(ERRQE2)
21765 ERRPRO = SQRT(ERRPRO)
21766 ERRDEL = SQRT(ERRDEL)
21767 ERRDQE = SQRT(ERRDQE)
21768 ELSE
21769 SIGTOT = XSTOT(IE,IQ,1)
21770 SIGELA = XSELA(IE,IQ,1)
21771 SIGQEP = XSQEP(IE,IQ,1)
21772 SIGQET = XSQET(IE,IQ,1)
21773 SIGQE2 = XSQE2(IE,IQ,1)
21774 SIGPRO = XSPRO(IE,IQ,1)
21775 SIGDEL = XSDEL(IE,IQ,1)
21776 SIGDQE = XSDQE(IE,IQ,1)
21777 ERRTOT = XETOT(IE,IQ,1)
21778 ERRELA = XEELA(IE,IQ,1)
21779 ERRQEP = XEQEP(IE,IQ,1)
21780 ERRQET = XEQET(IE,IQ,1)
21781 ERRQE2 = XEQE2(IE,IQ,1)
21782 ERRPRO = XEPRO(IE,IQ,1)
21783 ERRDEL = XEDEL(IE,IQ,1)
21784 ERRDQE = XEDQE(IE,IQ,1)
21785 ENDIF
21786 IF (MCGENE.NE.4) THEN
21787 WRITE(LOUT,1000) ECMNN(IE),Q2G(IQ)
21788 1000 FORMAT(/,1X,'E_cm =',F9.1,' GeV Q^2 =',F6.1,' GeV^2 :',/)
21789 WRITE(LOUT,1001) SIGTOT,ERRTOT
21790 1001 FORMAT(1X,'total',32X,F10.4,' +-',F11.5,' mb')
21791 WRITE(LOUT,1002) SIGELA,ERRELA
21792 1002 FORMAT(1X,'elastic',30X,F10.4,' +-',F11.5,' mb')
21793 WRITE(LOUT,1003) SIGQEP,ERRQEP
21794 1003 FORMAT(1X,'quasi-elastic (A+B-->A+X)',12X,F10.4,' +-',
21795 & F11.5,' mb')
21796 WRITE(LOUT,1004) SIGQET,ERRQET
21797 1004 FORMAT(1X,'quasi-elastic (A+B-->X+B)',12X,F10.4,' +-',
21798 & F11.5,' mb')
21799 WRITE(LOUT,1005) SIGQE2,ERRQE2
21800 1005 FORMAT(1X,'quasi-elastic (A+B-->X, excl. 2-4)',3X,F10.4,
21801 & ' +-',F11.5,' mb')
21802 WRITE(LOUT,1006) SIGPRO,ERRPRO
21803 1006 FORMAT(1X,'production',27X,F10.4,' +-',F11.5,' mb')
21804 WRITE(LOUT,1007) SIGDEL,ERRDEL
21805 1007 FORMAT(1X,'diff-el ',27X,F10.4,' +-',F11.5,' mb')
21806 WRITE(LOUT,1008) SIGDQE,ERRDQE
21807 1008 FORMAT(1X,'diff-qel ',27X,F10.4,' +-',F11.5,' mb')
21808 ENDIF
21809
21810 2 CONTINUE
21811 1 CONTINUE
21812
21813 RETURN
21814 END
21815
21816*$ CREATE DT_SIGGA.FOR
21817*COPY DT_SIGGA
21818*
21819*===sigga==============================================================*
21820*
21821 SUBROUTINE DT_SIGGA(NTI,XI,Q2I,ECMI,XNUI,STOT,ETOT,SIN,EIN,STOT0)
21822
21823************************************************************************
21824* Total/inelastic photon-nucleus cross sections. *
21825* !!!! Overwrites SHMAKI-initialization. Do not use it during *
21826* production runs !!!! *
21827* This version dated 27.03.96 is written by S. Roesler *
21828************************************************************************
21829
21830 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21831 SAVE
21832 PARAMETER ( LINP = 10 ,
21833 & LOUT = 6 ,
21834 & LDAT = 9 )
21835 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21836 & OHALF=0.5D0,ONE=1.0D0)
21837 PARAMETER (AMPROT = 0.938D0)
21838
21839 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21840* Glauber formalism: cross sections
21841 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21842 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21843 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21844 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21845 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21846 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21847 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21848 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21849 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21850 & BSLOPE,NEBINI,NQBINI
21851
21852 NT = NTI
21853 X = XI
21854 Q2 = Q2I
21855 ECM = ECMI
21856 XNU = XNUI
21857 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
21858 & ECM = SQRT(AMPROT**2-Q2+2.0D0*XNUI*AMPROT)
21859 CALL DT_XSGLAU(1,NT,7,X,Q2,ECM,1,1,-1)
21860 STOT = XSTOT(1,1,1)
21861 ETOT = XETOT(1,1,1)
21862 SIN = XSPRO(1,1,1)
21863 EIN = XEPRO(1,1,1)
21864
21865 RETURN
21866 END
21867
21868*$ CREATE DT_SIGGAT.FOR
21869*COPY DT_SIGGAT
21870*
21871*===siggat=============================================================*
21872*
21873 SUBROUTINE DT_SIGGAT(Q2I,ECMI,STOT,NT)
21874
21875************************************************************************
21876* Total/inelastic photon-nucleus cross sections. *
21877* Uses pre-tabulated cross section. *
21878* This version dated 29.07.96 is written by S. Roesler *
21879************************************************************************
21880
21881 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21882 SAVE
21883 PARAMETER ( LINP = 10 ,
21884 & LOUT = 6 ,
21885 & LDAT = 9 )
21886 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21887 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21888
21889 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21890* Glauber formalism: cross sections
21891 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21892 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21893 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21894 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21895 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21896 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21897 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21898 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21899 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21900 & BSLOPE,NEBINI,NQBINI
21901
21902 NTARG = ABS(NT)
21903 I1 = 1
21904 I2 = 1
21905 RATE = ONE
21906 IF (NEBINI.GT.1) THEN
21907 IF (ECMI.GE.ECMNN(NEBINI)) THEN
21908 I1 = NEBINI
21909 I2 = NEBINI
21910 RATE = ONE
21911 ELSEIF (ECMI.GT.ECMNN(1)) THEN
21912 DO 1 I=2,NEBINI
21913 IF (ECMI.LT.ECMNN(I)) THEN
21914 I1 = I-1
21915 I2 = I
21916 RATE = (ECMI-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
21917 GOTO 2
21918 ENDIF
21919 1 CONTINUE
21920 2 CONTINUE
21921 ENDIF
21922 ENDIF
21923 J1 = 1
21924 J2 = 1
21925 RATQ = ONE
21926 IF (NQBINI.GT.1) THEN
21927 IF (Q2I.GE.Q2G(NQBINI)) THEN
21928 J1 = NQBINI
21929 J2 = NQBINI
21930 RATQ = ONE
21931 ELSEIF (Q2I.GT.Q2G(1)) THEN
21932 DO 3 I=2,NQBINI
21933 IF (Q2I.LT.Q2G(I)) THEN
21934 J1 = I-1
21935 J2 = I
21936 RATQ = LOG10( Q2I/MAX(Q2G(J1),TINY14))/
21937 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
21938C RATQ = (Q2I-Q2G(J1))/(Q2G(J2)-Q2G(J1))
21939 GOTO 4
21940 ENDIF
21941 3 CONTINUE
21942 4 CONTINUE
21943 ENDIF
21944 ENDIF
21945
21946 STOT = XSTOT(I1,J1,NTARG)+
21947 & RATE*(XSTOT(I2,J1,NTARG)-XSTOT(I1,J1,NTARG))+
21948 & RATQ*(XSTOT(I1,J2,NTARG)-XSTOT(I1,J1,NTARG))+
21949 & RATE*RATQ*(XSTOT(I2,J2,NTARG)-XSTOT(I1,J2,NTARG)+
21950 & XSTOT(I1,J1,NTARG)-XSTOT(I2,J1,NTARG))
21951
21952 RETURN
21953 END
21954
21955*$ CREATE DT_SANO.FOR
21956*COPY DT_SANO
21957*
21958*===sigano=============================================================*
21959*
21960 DOUBLE PRECISION FUNCTION DT_SANO(ECM)
21961
21962************************************************************************
21963* This version dated 31.07.96 is written by S. Roesler *
21964************************************************************************
21965
21966 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21967 SAVE
21968 PARAMETER ( LINP = 10 ,
21969 & LOUT = 6 ,
21970 & LDAT = 9 )
21971 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21972 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21973 PARAMETER (NE = 8)
21974
21975* VDM parameter for photon-nucleus interactions
21976 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
21977* properties of interacting particles
21978 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
21979
21980 DIMENSION ECMANO(NE),FRAANO(NE),SIGHRD(NE)
21981 DATA ECMANO /
21982 & 0.200D+02,0.500D+02,0.100D+03,0.200D+03,0.500D+03,
21983 & 0.100D+04,0.200D+04,0.500D+04
21984 & /
21985* fixed cut (3 GeV/c)
21986 DATA FRAANO /
21987 & 0.085D+00,0.114D+00,0.105D+00,0.091D+00,0.073D+00,
21988 & 0.062D+00,0.054D+00,0.042D+00
21989 & /
21990 DATA SIGHRD /
21991 & 4.0099D-04,3.3104D-03,1.1905D-02,3.6435D-02,1.3493D-01,
21992 & 3.3086D-01,7.6255D-01,2.1319D+00
21993 & /
21994* running cut (based on obsolete Phojet-caluclations, bugs..)
21995C DATA FRAANO /
21996C & 0.251E+00,0.313E+00,0.279E+00,0.239E+00,0.186E+00,
21997C & 0.167E+00,0.150E+00,0.131E+00
21998C & /
21999C DATA SIGHRD /
22000C & 6.6569E-04,4.4949E-03,1.4837E-02,4.1466E-02,1.5071E-01,
22001C & 2.5736E-01,4.5593E-01,8.2550E-01
22002C & /
22003
22004 DT_SANO = ZERO
22005 IF ((ISHAD(2).NE.1).OR.(IJPROJ.NE.7)) RETURN
22006 J1 = 0
22007 J2 = 0
22008 RATE = ONE
22009 IF (ECM.GE.ECMANO(NE)) THEN
22010 J1 = NE
22011 J2 = NE
22012 ELSEIF (ECM.GT.ECMANO(1)) THEN
22013 DO 1 IE=2,NE
22014 IF (ECM.LT.ECMANO(IE)) THEN
22015 J1 = IE-1
22016 J2 = IE
22017 RATE = LOG10(ECM/ECMANO(J1))/LOG10(ECMANO(J2)/ECMANO(J1))
22018 GOTO 2
22019 ENDIF
22020 1 CONTINUE
22021 2 CONTINUE
22022 ENDIF
22023 IF ((J1.GT.0).AND.(J2.GT.0)) THEN
22024 AFRA1 = LOG10(MAX(FRAANO(J1)*SIGHRD(J1),TINY14))
22025 AFRA2 = LOG10(MAX(FRAANO(J2)*SIGHRD(J2),TINY14))
22026 DT_SANO = 10.0D0**(AFRA1+RATE*(AFRA2-AFRA1))
22027 ENDIF
22028
22029 RETURN
22030 END
22031
22032*$ CREATE DT_SIGGP.FOR
22033*COPY DT_SIGGP
22034*
22035*===siggp==============================================================*
22036*
22037 SUBROUTINE DT_SIGGP(XI,Q2I,ECMI,XNUI,STOT,SINE,SDIR)
22038
22039************************************************************************
22040* Total/inelastic photon-nucleon cross sections. *
22041* This version dated 30.04.96 is written by S. Roesler *
22042************************************************************************
22043
22044 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22045 SAVE
22046 PARAMETER ( LINP = 10 ,
22047 & LOUT = 6 ,
22048 & LDAT = 9 )
22049 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22050 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22051 & PI = TWOPI/TWO,
22052 & GEV2MB = 0.38938D0,
22053 & ALPHEM = ONE/137.0D0)
22054
22055* particle properties (BAMJET index convention)
22056 CHARACTER*8 ANAME
22057 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22058 & IICH(210),IIBAR(210),K1(210),K2(210)
22059* VDM parameter for photon-nucleus interactions
22060 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22061
22062**PHOJET105a
22063C CHARACTER*8 MDLNA
22064C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
22065C PARAMETER (IEETAB=10)
22066C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
22067**PHOJET110
22068C model switches and parameters
22069 CHARACTER*8 MDLNA
22070 INTEGER ISWMDL,IPAMDL
22071 DOUBLE PRECISION PARMDL
22072 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
22073C energy-interpolation table
22074 INTEGER IEETA2
22075 PARAMETER ( IEETA2 = 20 )
22076 INTEGER ISIMAX
22077 DOUBLE PRECISION SIGTAB,SIGECM
22078 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
22079**
22080
22081C PARAMETER (NPOINT=80)
22082 PARAMETER (NPOINT=16)
22083 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22084
22085 STOT = ZERO
22086 SINE = ZERO
22087 SDIR = ZERO
22088
22089 W2 = ECMI**2
22090 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22091 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22092 Q2 = Q2I
22093 X = XI
22094* photoprod.
22095 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22096 Q2 = 0.0001D0
22097 X = Q2/(W2+Q2-AAM(1)**2)
22098* DIS
22099 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22100 X = Q2/(W2+Q2-AAM(1)**2)
22101 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22102 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22103 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22104 W2 = Q2*(ONE-X)/X+AAM(1)**2
22105 ELSE
22106 WRITE(LOUT,*) 'SIGGP: inconsistent input ',W2,Q2,X
22107 STOP
22108 ENDIF
22109 ECM = SQRT(W2)
22110
22111 IF (MODEGA.EQ.1) THEN
22112 SCALE = SQRT(Q2)
22113 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22114 & IDPDF)
22115C W = SQRT(W2)
22116C ALLMF2 = PHO_ALLM97(Q2,W)
22117C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22118 STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22119 SINE = ZERO
22120 SDIR = ZERO
22121 ELSEIF (MODEGA.EQ.2) THEN
22122 IF (INTRGE(1).EQ.1) THEN
22123 AMLO2 = (3.0D0*AAM(13))**2
22124 ELSEIF (INTRGE(1).EQ.2) THEN
22125 AMLO2 = AAM(33)**2
22126 ELSE
22127 AMLO2 = AAM(96)**2
22128 ENDIF
22129 IF (INTRGE(2).EQ.1) THEN
22130 AMHI2 = W2/TWO
22131 ELSEIF (INTRGE(2).EQ.2) THEN
22132 AMHI2 = W2/4.0D0
22133 ELSE
22134 AMHI2 = W2
22135 ENDIF
22136 AMHI20 = (ECM-AAM(1))**2
22137 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22138 XAMLO = LOG( AMLO2+Q2 )
22139 XAMHI = LOG( AMHI2+Q2 )
22140**PHOJET105a
22141C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22142**PHOJET112
22143 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22144**
22145 SUM = ZERO
22146 DO 1 J=1,NPOINT
22147 AM2 = EXP(ABSZX(J))-Q2
22148 IF (AM2.LT.16.0D0) THEN
22149 R = TWO
22150 ELSEIF ((AM2.GE.16.0D0).AND.(AM2.LT.121.0D0)) THEN
22151 R = 10.0D0/3.0D0
22152 ELSE
22153 R = 11.0D0/3.0D0
22154 ENDIF
22155C FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22156 FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22157 & * (ONE+EPSPOL*Q2/AM2)
22158 SUM = SUM+WEIGHT(J)*FAC
22159 1 CONTINUE
22160 SINE = SUM
22161 SDIR = DT_SIGVP(X,Q2)
22162 STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*SDIR
22163 SDIR = SDIR/(0.588D0+RL2+Q2)
22164C STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*DT_SIGVP(X,Q2)
22165 ELSEIF (MODEGA.EQ.3) THEN
22166 CALL DT_SIGGA(1,XI,Q2I,ECMI,ZERO,STOT,ETOT,SINE,EINE,DUM)
22167 ELSEIF (MODEGA.EQ.4) THEN
22168* load cross sections from PHOJET interpolation table
22169 IP = 1
22170 IF(ECM.LE.SIGECM(IP,1)) THEN
22171 I1 = 1
22172 I2 = 1
22173 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
22174 DO 2 I=2,ISIMAX
22175 IF (ECM.LE.SIGECM(IP,I)) GOTO 3
22176 2 CONTINUE
22177 3 CONTINUE
22178 I1 = I-1
22179 I2 = I
22180 ELSE
22181 WRITE(LOUT,'(/1X,A,2E12.3)')
22182 & 'SIGGP:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
22183 I1 = ISIMAX
22184 I2 = ISIMAX
22185 ENDIF
22186 FAC2 = ZERO
22187 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
22188 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
22189 FAC1 = ONE-FAC2
22190* cross section dependence on photon virtuality
22191 FSUP1 = ZERO
22192 DO 4 I=1,3
22193 FSUP1 = FSUP1+PARMDL(26+I)*(1.D0+Q2/(4.D0*PARMDL(30+I)))
22194 & /(1.D0+Q2/PARMDL(30+I))**2
22195 4 CONTINUE
22196 FSUP1 = FSUP1+PARMDL(30)/(1.D0+Q2/PARMDL(34))
22197 FAC1 = FAC1*FSUP1
22198 FAC2 = FAC2*FSUP1
22199 FSUP2 = 1.0D0
22200 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
22201 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
22202 SDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
22203**re:
22204 STOT = STOT-SDIR
22205**
22206 SDIR = SDIR/(FSUP1*FSUP2)
22207**re:
22208 STOT = STOT+SDIR
22209**
22210 ENDIF
22211
22212 RETURN
22213 END
22214
22215*$ CREATE DT_SIGVEL.FOR
22216*COPY DT_SIGVEL
22217*
22218*===sigvel=============================================================*
22219*
22220 SUBROUTINE DT_SIGVEL(XI,Q2I,ECMI,XNUI,IDXV,SVEL,SIG1,SIG2)
22221
22222************************************************************************
22223* Cross section for elastic vector meson production *
22224* This version dated 10.05.96 is written by S. Roesler *
22225************************************************************************
22226
22227 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22228 SAVE
22229 PARAMETER ( LINP = 10 ,
22230 & LOUT = 6 ,
22231 & LDAT = 9 )
22232 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22233 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22234 & PI = TWOPI/TWO,
22235 & GEV2MB = 0.38938D0,
22236 & ALPHEM = ONE/137.0D0)
22237
22238* particle properties (BAMJET index convention)
22239 CHARACTER*8 ANAME
22240 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22241 & IICH(210),IIBAR(210),K1(210),K2(210)
22242* VDM parameter for photon-nucleus interactions
22243 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22244
22245 W2 = ECMI**2
22246 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22247 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22248 Q2 = Q2I
22249 X = XI
22250* photoprod.
22251 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22252 Q2 = 0.0001D0
22253 X = Q2/(W2+Q2-AAM(1)**2)
22254* DIS
22255 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22256 X = Q2/(W2+Q2-AAM(1)**2)
22257 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22258 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22259 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22260 W2 = Q2*(ONE-X)/X+AAM(1)**2
22261 ELSE
22262 WRITE(LOUT,*) 'SIGVEL: inconsistent input ',W2,Q2,X
22263 STOP
22264 ENDIF
22265 ECM = SQRT(W2)
22266
22267 AMV = AAM(IDXV)
22268 AMV2 = AMV**2
22269
22270 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
22271 & +0.25D0*LOG(W2/(AMV2+Q2)))*GEV2MB
22272 ROSH = 0.1D0
22273 STOVP = DT_SIGVP(X,Q2)/(AMV2+Q2+RL2)
22274 SELVP = STOVP**2*(ONE+ROSH**2)/(8.0D0*TWOPI*BSLOPE)
22275
22276 IF (IDXV.EQ.33) THEN
22277 COUPL = 0.00365D0
22278 ELSE
22279 STOP
22280 ENDIF
22281 SIG1 = (AMV2/(AMV2+Q2))**2 * (ONE+EPSPOL*Q2/AMV2)
22282 SIG2 = SELVP
22283 SVEL = COUPL * (AMV2/(AMV2+Q2))**2
22284 & * (ONE+EPSPOL*Q2/AMV2) * SELVP
22285
22286 RETURN
22287 END
22288
22289*$ CREATE DT_SIGVP.FOR
22290*COPY DT_SIGVP
22291*
22292*===sigvp==============================================================*
22293*
22294 DOUBLE PRECISION FUNCTION DT_SIGVP(XI,Q2I)
22295
22296************************************************************************
22297* sigma_Vp *
22298************************************************************************
22299
22300 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22301 SAVE
22302
22303 PARAMETER ( LINP = 10 ,
22304 & LOUT = 6 ,
22305 & LDAT = 9 )
22306 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22307 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22308 & PI = TWOPI/TWO,
22309 & GEV2MB = 0.38938D0,
22310 & AMPROT = 0.938D0,
22311 & ALPHEM = ONE/137.0D0)
22312* VDM parameter for photon-nucleus interactions
22313 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22314
22315 X = XI
22316 Q2 = Q2I
22317 IF (XI.LE.ZERO) X = 0.0001D0
22318 IF (Q2I.LE.ZERO) Q2 = 0.0001D0
22319
22320 ECM = SQRT( Q2*(ONE-X)/X+AMPROT**2 )
22321
22322 SCALE = SQRT(Q2)
22323 IF (MODEGA.EQ.1) THEN
22324 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22325 & IDPDF)
22326C W = ECM
22327C ALLMF2 = PHO_ALLM97(Q2,W)
22328C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22329C STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22330C DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))
22331 DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))*GEV2MB
22332 ELSEIF (MODEGA.EQ.4) THEN
22333 CALL DT_SIGGP(X,Q2,ECM,DUM1,STOT,DUM2,DUM3)
22334C F2 = Q2*(ONE-X)/(TWOPI**2*ALPHEM*GEV2MB) * STOT
22335 DT_SIGVP = 3.0D0*PI/(ALPHEM*DT_RRM2(X,Q2)) * STOT
22336 ELSE
22337 STOP ' DT_SIGVP: F2 not defined for this MODEGA !'
22338 ENDIF
22339
22340 RETURN
22341
22342 END
22343
22344*$ CREATE DT_RRM2.FOR
22345*COPY DT_RRM2
22346*
22347*===RRM2===============================================================*
22348*
22349 DOUBLE PRECISION FUNCTION DT_RRM2(X,Q2)
22350
22351 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22352 SAVE
22353 PARAMETER ( LINP = 10 ,
22354 & LOUT = 6 ,
22355 & LDAT = 9 )
22356 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22357 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22358 & PI = TWOPI/TWO,
22359 & GEV2MB = 0.38938D0)
22360
22361* particle properties (BAMJET index convention)
22362 CHARACTER*8 ANAME
22363 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22364 & IICH(210),IIBAR(210),K1(210),K2(210)
22365* VDM parameter for photon-nucleus interactions
22366 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22367
22368 S = Q2*(ONE-X)/X+AAM(1)**2
22369 ECM = SQRT(S)
22370
22371 IF (INTRGE(1).EQ.1) THEN
22372 AMLO2 = (3.0D0*AAM(13))**2
22373 ELSEIF (INTRGE(1).EQ.2) THEN
22374 AMLO2 = AAM(33)**2
22375 ELSE
22376 AMLO2 = AAM(96)**2
22377 ENDIF
22378 IF (INTRGE(2).EQ.1) THEN
22379 AMHI2 = S/TWO
22380 ELSEIF (INTRGE(2).EQ.2) THEN
22381 AMHI2 = S/4.0D0
22382 ELSE
22383 AMHI2 = S
22384 ENDIF
22385 AMHI20 = (ECM-AAM(1))**2
22386 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22387
22388 AM1C2 = 16.0D0
22389 AM2C2 = 121.0D0
22390 IF (AMHI2.LE.AM1C2) THEN
22391 DT_RRM2 = TWO*DT_RM2(AMLO2,AMHI2,Q2)
22392 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22393 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22394 & 10.0D0/3.0D0*DT_RM2(AM1C2,AMHI2,Q2)
22395 ELSE
22396 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22397 & 10.0D0/3.0D0*DT_RM2(AM1C2,AM2C2,Q2)+
22398 & 11.0D0/3.0D0*DT_RM2(AM2C2,AMHI2,Q2)
22399 ENDIF
22400
22401 RETURN
22402 END
22403
22404*$ CREATE DT_RM2.FOR
22405*COPY DT_RM2
22406*
22407*===RM2================================================================*
22408*
22409 DOUBLE PRECISION FUNCTION DT_RM2(AMLO2,AMHI2,Q2)
22410
22411 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22412 SAVE
22413 PARAMETER ( LINP = 10 ,
22414 & LOUT = 6 ,
22415 & LDAT = 9 )
22416 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22417 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22418 & PI = TWOPI/TWO,
22419 & GEV2MB = 0.38938D0)
22420* VDM parameter for photon-nucleus interactions
22421 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22422
22423 IF (RL2.LE.ZERO) THEN
22424 DT_RM2 = -ONE/(AMHI2+Q2)+Q2/(TWO*(AMHI2+Q2)**2) -
22425 & (-ONE/(AMLO2+Q2)+Q2/(TWO*(AMLO2+Q2)**2))
22426 & +EPSPOL*(-Q2/(TWO*(AMHI2+Q2)**2)+Q2/(TWO*(AMLO2+Q2)**2))
22427 ELSE
22428 TMPMLO = LOG(ONE+RL2/(AMLO2+Q2))
22429 TMPMHI = LOG(ONE+RL2/(AMHI2+Q2))
22430 DT_RM2 = Q2/(RL2*(AMHI2+Q2))-(Q2+RL2)/RL2**2*TMPMHI
22431 & -(Q2/(RL2*(AMLO2+Q2))-(Q2+RL2)/RL2**2*TMPMLO)
22432 & +EPSPOL*(
22433 & -Q2/(RL2*(AMHI2+Q2))+Q2/RL2**2*TMPMHI
22434 & -(-Q2/(RL2*(AMLO2+Q2))+Q2/RL2**2*TMPMLO))
22435 ENDIF
22436
22437 RETURN
22438 END
22439
22440*$ CREATE DT_SAM2.FOR
22441*COPY DT_SAM2
22442*
22443*===SAM2===============================================================*
22444*
22445 DOUBLE PRECISION FUNCTION DT_SAM2(Q2,ECM)
22446
22447 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22448 SAVE
22449 PARAMETER ( LINP = 10 ,
22450 & LOUT = 6 ,
22451 & LDAT = 9 )
22452 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
22453 & TENTRD=10.0D0/3.0D0,ELVTRD=11.0D0/3.0D0)
22454 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22455 & PI = TWOPI/TWO,
22456 & GEV2MB = 0.38938D0)
22457
22458* particle properties (BAMJET index convention)
22459 CHARACTER*8 ANAME
22460 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22461 & IICH(210),IIBAR(210),K1(210),K2(210)
22462* VDM parameter for photon-nucleus interactions
22463 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22464
22465 S = ECM**2
22466 IF (INTRGE(1).EQ.1) THEN
22467 AMLO2 = (3.0D0*AAM(13))**2
22468 ELSEIF (INTRGE(1).EQ.2) THEN
22469 AMLO2 = AAM(33)**2
22470 ELSE
22471 AMLO2 = AAM(96)**2
22472 ENDIF
22473 IF (INTRGE(2).EQ.1) THEN
22474 AMHI2 = S/TWO
22475 ELSEIF (INTRGE(2).EQ.2) THEN
22476 AMHI2 = S/4.0D0
22477 ELSE
22478 AMHI2 = S
22479 ENDIF
22480 AMHI20 = (ECM-AAM(1))**2
22481 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22482
22483 AM1C2 = 16.0D0
22484 AM2C2 = 121.0D0
22485 YLO = LOG(AMLO2+Q2)
22486 YC1 = LOG(AM1C2+Q2)
22487 YC2 = LOG(AM2C2+Q2)
22488 YHI = LOG(AMHI2+Q2)
22489 IF (AMHI2.LE.AM1C2) THEN
22490 FACHI = TWO
22491 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22492 FACHI = TENTRD
22493 ELSE
22494 FACHI = ELVTRD
22495 ENDIF
22496
22497 1 CONTINUE
22498 YSAM2 = YLO+(YHI-YLO)*DT_RNDM(AM1C2)
22499 IF (YSAM2.LE.YC1) THEN
22500 FAC = TWO
22501 ELSEIF ((YSAM2.GT.YC1).AND.(YSAM2.LE.YC2)) THEN
22502 FAC = TENTRD
22503 ELSE
22504 FAC = ELVTRD
22505 ENDIF
22506 WEIGMX = FACHI*(ONE-Q2*EXP( -YHI))
22507 XSAM2 = FAC *(ONE-Q2*EXP(-YSAM2))
22508 IF (DT_RNDM(YSAM2)*WEIGMX.GT.XSAM2) GOTO 1
22509
22510 DT_SAM2 = EXP(YSAM2)-Q2
22511
22512 RETURN
22513 END
22514
22515*$ CREATE DT_CKMT.FOR
22516*COPY DT_CKMT
22517*
22518*===ckmt===============================================================*
22519*
22520 SUBROUTINE DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,
22521 & F2,IPAR)
22522
22523************************************************************************
22524* This version dated 31.01.96 is written by S. Roesler *
22525************************************************************************
22526
22527 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22528 SAVE
22529 PARAMETER ( LINP = 10 ,
22530 & LOUT = 6 ,
22531 & LDAT = 9 )
22532 PARAMETER (ZERO=0.0D0,TWO=2.0D0,TINY10=1.0D-10)
22533
22534 PARAMETER (Q02 = 2.0D0,
22535 & DQ2 = 10.05D0,
22536 & Q12 = Q02+DQ2)
22537
22538 DIMENSION PD(-6:6),SEA(3),VAL(2)
22539
22540 CALL DT_PDF0(Q02,X,F2Q0,VAL,SEA,GLU,IPAR)
22541 CALL DT_PDF0(Q12,X,F2Q1,VAL,SEA,GLU,IPAR)
22542 ADQ2 = LOG10(Q12)-LOG10(Q02)
22543 F2P = (F2Q1-F2Q0)/ADQ2
22544 CALL DT_CKMTX(IPAR,X,Q02,PD,F2PQ0)
22545 CALL DT_CKMTX(IPAR,X,Q12,PD,F2PQ1)
22546 F2PP = (F2PQ1-F2PQ0)/ADQ2
22547 FX = (F2P-F2PP)/(F2PP+LOG(DQ2)*F2PQ0+TINY10)*Q02
22548
22549 Q2 = MAX(SCALE**2.0D0,TINY10)
22550 SMOOTH = 1.0D0+FX*(Q2-Q02)/Q2**2
22551 IF (Q2.LT.Q02) THEN
22552 CALL DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22553 UPV = VAL(1)
22554 DNV = VAL(2)
22555 USEA = SEA(1)
22556 DSEA = SEA(2)
22557 STR = SEA(3)
22558 CHM = 0.0D0
22559 BOT = 0.0D0
22560 TOP = 0.0D0
22561 GL = GLU
22562 ELSE
22563 CALL DT_CKMTX(IPAR,X,Q2,PD,F2)
22564 F2 = F2*SMOOTH
22565 UPV = PD(2)-PD(3)
22566 DNV = PD(1)-PD(3)
22567 USEA = PD(3)
22568 DSEA = PD(3)
22569 STR = PD(3)
22570 CHM = PD(4)
22571 BOT = PD(5)
22572 TOP = PD(6)
22573 GL = PD(0)
22574C UPV = UPV*SMOOTH
22575C DNV = DNV*SMOOTH
22576C USEA = USEA*SMOOTH
22577C DSEA = DSEA*SMOOTH
22578C STR = STR*SMOOTH
22579C CHM = CHM*SMOOTH
22580C GL = GL*SMOOTH
22581 ENDIF
22582
22583 RETURN
22584 END
22585C
22586
22587*$ CREATE DT_CKMTX.FOR
22588*COPY DT_CKMTX
22589 SUBROUTINE DT_CKMTX(IPAR,X,SCALE2,PD,F2)
22590C**********************************************************************
22591C
22592C PDF based on Regge theory, evolved with .... by ....
22593C
22594C input: IPAR 2212 proton (not installed)
22595C 45 Pomeron
22596C 100 Deuteron
22597C
22598C output: PD(-6:6) x*f(x) parton distribution functions
22599C (PDFLIB convention: d = PD(1), u = PD(2) )
22600C
22601C**********************************************************************
22602
22603 SAVE
22604 DOUBLE PRECISION X,SCALE2,PD(-6:6),CDN,CUP,F2
22605 PARAMETER ( LINP = 10 ,
22606 & LOUT = 6 ,
22607 & LDAT = 9 )
22608 DIMENSION QQ(7)
22609C
22610 Q2=SNGL(SCALE2)
22611 Q1S=Q2
22612 XX=SNGL(X)
22613C QCD lambda for evolution
22614 OWLAM = 0.23D0
22615 OWLAM2=OWLAM**2
22616C Q0**2 for evolution
22617 Q02 = 2.D0
22618C
22619C
22620C the conventions are : q(1)=x*u, q(2)=x*d, q(3)=q(4)=x*sbar=x*ubar=...
22621C q(6)=x*charm, q(7)=x*gluon
22622C
22623 SB=0.
22624 IF(Q2-Q02) 1,1,2
22625 2 SB=LOG(LOG(Q2/OWLAM2)/LOG(Q02/OWLAM2))
22626 1 CONTINUE
22627 IF(IPAR.EQ.2212) THEN
22628 CALL DT_CKMTPR(1,0,XX,SB,QQ(1))
22629 CALL DT_CKMTPR(2,0,XX,SB,QQ(2))
22630 CALL DT_CKMTPR(3,0,XX,SB,QQ(3))
22631 CALL DT_CKMTPR(4,0,XX,SB,QQ(4))
22632 CALL DT_CKMTPR(5,0,XX,SB,QQ(5))
22633 CALL DT_CKMTPR(8,0,XX,SB,QQ(6))
22634 CALL DT_CKMTPR(7,0,XX,SB,QQ(7))
22635C ELSEIF (IPAR.EQ.45) THEN
22636C CALL CKMTPO(1,0,XX,SB,QQ(1))
22637C CALL CKMTPO(2,0,XX,SB,QQ(2))
22638C CALL CKMTPO(3,0,XX,SB,QQ(3))
22639C CALL CKMTPO(4,0,XX,SB,QQ(4))
22640C CALL CKMTPO(5,0,XX,SB,QQ(5))
22641C CALL CKMTPO(8,0,XX,SB,QQ(6))
22642C CALL CKMTPO(7,0,XX,SB,QQ(7))
22643 ELSEIF (IPAR.EQ.100) THEN
22644 CALL DT_CKMTDE(1,0,XX,SB,QQ(1))
22645 CALL DT_CKMTDE(2,0,XX,SB,QQ(2))
22646 CALL DT_CKMTDE(3,0,XX,SB,QQ(3))
22647 CALL DT_CKMTDE(4,0,XX,SB,QQ(4))
22648 CALL DT_CKMTDE(5,0,XX,SB,QQ(5))
22649 CALL DT_CKMTDE(8,0,XX,SB,QQ(6))
22650 CALL DT_CKMTDE(7,0,XX,SB,QQ(7))
22651 ELSE
22652 WRITE(LOUT,'(1X,A,I4,A)')
22653 & 'CKMTX: IPAR =',IPAR,' not implemented!'
22654 STOP
22655 ENDIF
22656C
22657 PD(-6) = 0.D0
22658 PD(-5) = 0.D0
22659 PD(-4) = DBLE(QQ(6))
22660 PD(-3) = DBLE(QQ(3))
22661 PD(-2) = DBLE(QQ(4))
22662 PD(-1) = DBLE(QQ(5))
22663 PD(0) = DBLE(QQ(7))
22664 PD(1) = DBLE(QQ(2))
22665 PD(2) = DBLE(QQ(1))
22666 PD(3) = DBLE(QQ(3))
22667 PD(4) = DBLE(QQ(6))
22668 PD(5) = 0.D0
22669 PD(6) = 0.D0
22670 IF(IPAR.EQ.45) THEN
22671 CDN = (PD(1)-PD(-1))/2.D0
22672 CUP = (PD(2)-PD(-2))/2.D0
22673 PD(-1) = PD(-1) + CDN
22674 PD(-2) = PD(-2) + CUP
22675 PD(1) = PD(-1)
22676 PD(2) = PD(-2)
22677 ENDIF
22678 F2 = 4.0D0/9.0D0*(PD(2)-PD(3)+2.0D0*PD(3))+
22679 & 1.0D0/9.0D0*(PD(1)-PD(3)+2.0D0*PD(3))+
22680 & 1.0D0/9.0D0*(2.0D0*PD(3))+4.0D0/9.0D0*(2.0D0*PD(4))
22681 END
22682C
22683
22684*$ CREATE DT_PDF0.FOR
22685*COPY DT_PDF0
22686*
22687*===pdf0===============================================================*
22688*
22689 SUBROUTINE DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22690
22691************************************************************************
22692* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22693* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22694* IPAR = 2212 proton *
22695* = 100 deuteron *
22696* This version dated 31.01.96 is written by S. Roesler *
22697************************************************************************
22698
22699 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22700 SAVE
22701 PARAMETER ( LINP = 10 ,
22702 & LOUT = 6 ,
22703 & LDAT = 9 )
22704 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22705
22706 PARAMETER (
22707 & AA = 0.1502D0,
22708 & BBDEU = 1.2D0,
22709 & BUD = 0.754D0,
22710 & BDD = 0.4495D0,
22711 & BUP = 1.2064D0,
22712 & BDP = 0.1798D0,
22713 & DELTA0 = 0.07684D0,
22714 & D = 1.117D0,
22715 & C = 3.5489D0,
22716 & A = 0.2631D0,
22717 & B = 0.6452D0,
22718 & ALPHAR = 0.415D0,
22719 & E = 0.1D0
22720 & )
22721
22722 PARAMETER (NPOINT=16)
22723C DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22724 DIMENSION SEA(3),VAL(2)
22725
22726 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22727 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22728* proton, deuteron
22729 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22730 CALL DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22731 SEA(1) = 0.75D0*SEA0
22732 SEA(2) = SEA(1)
22733 SEA(3) = SEA(1)
22734 VAL(1) = 9.0D0/4.0D0*VALU0
22735 VAL(2) = 9.0D0*VALD0
22736 GLU0 = SEA(1)/(1.0D0-X)
22737 F2 = SEA0+VALU0+VALD0
22738 F2PDF = 4.0D0/9.0D0*(VAL(1)+2.0D0*SEA(1))+
22739 & 1.0D0/9.0D0*(VAL(2)+2.0D0*SEA(2))+
22740 & 1.0D0/9.0D0*(2.0D0*SEA(3))
22741 IF (ABS(F2-F2PDF).GT.TINY9) THEN
22742 WRITE(LOUT,'(1X,A,2E15.5)') 'inconsistent PDF! ',F2,F2PDF
22743 STOP
22744 ENDIF
22745**PHOJET105a
22746C CALL GSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22747**PHOJET112
22748C CALL PHO_GAUSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22749**
22750C SUMQ = ZERO
22751C SUMG = ZERO
22752C DO 1 J=1,NPOINT
22753C CALL DT_CKMTQ0(Q2,ABSZX(J),IPAR,VALU0,VALD0,SEA0)
22754C VALU0 = 9.0D0/4.0D0*VALU0
22755C VALD0 = 9.0D0*VALD0
22756C SEA0 = 0.75D0*SEA0
22757C SUMQ = SUMQ+ (VALU0+VALD0+6.0D0*SEA0) *WEIGHT(J)
22758C SUMG = SUMG+ (SEA0/(1.0D0-ABSZX(J))) *WEIGHT(J)
22759C 1 CONTINUE
22760C GLU = GLU0*(1.0D0-SUMQ)/SUMG
22761 ELSE
22762 WRITE(LOUT,'(1X,A,I4,A)')
22763 & 'PDF0: IPAR =',IPAR,' not implemented!'
22764 STOP
22765 ENDIF
22766
22767 RETURN
22768 END
22769
22770*$ CREATE DT_CKMTQ0.FOR
22771*COPY DT_CKMTQ0
22772*
22773*===ckmtq0=============================================================*
22774*
22775 SUBROUTINE DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22776
22777************************************************************************
22778* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22779* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22780* IPAR = 2212 proton *
22781* = 100 deuteron *
22782* This version dated 31.01.96 is written by S. Roesler *
22783************************************************************************
22784
22785 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22786 SAVE
22787 PARAMETER ( LINP = 10 ,
22788 & LOUT = 6 ,
22789 & LDAT = 9 )
22790 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22791
22792 PARAMETER (
22793 & AA = 0.1502D0,
22794 & BBDEU = 1.2D0,
22795 & BUD = 0.754D0,
22796 & BDD = 0.4495D0,
22797 & BUP = 1.2064D0,
22798 & BDP = 0.1798D0,
22799 & DELTA0 = 0.07684D0,
22800 & D = 1.117D0,
22801 & C = 3.5489D0,
22802 & A = 0.2631D0,
22803 & B = 0.6452D0,
22804 & ALPHAR = 0.415D0,
22805 & E = 0.1D0
22806 & )
22807
22808 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22809 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22810* proton, deuteron
22811 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22812 IF (IPAR.EQ.2212) THEN
22813 BU = BUP
22814 BD = BDP
22815 ELSE
22816 BU = BUD
22817 BD = BDD
22818 ENDIF
22819 SEA0 = AA*X**(-DELTA)*(1.0D0-X)**(AN+4.0D0)*
22820 & (Q2/(Q2+A))**(1.0D0+DELTA)
22821 VALU0 = BU*X**(1.0D0-ALPHAR)*(1.0D0-X)**AN*
22822 & (Q2/(Q2+B))**(ALPHAR)
22823 VALD0 = BD*X**(1.0D0-ALPHAR)*(1.0D0-X)**(AN+1.0D0)*
22824 & (Q2/(Q2+B))**(ALPHAR)
22825 ELSE
22826 WRITE(LOUT,'(1X,A,I4,A)')
22827 & 'CKMTQ0: IPAR =',IPAR,' not implemented!'
22828 STOP
22829 ENDIF
22830 RETURN
22831 END
22832C
22833C
22834
22835*$ CREATE DT_CKMTDE.FOR
22836*COPY DT_CKMTDE
22837 SUBROUTINE DT_CKMTDE(I,NDRV,X,S,ANS)
22838C
22839C**********************************************************************
22840C Deuteron - PDFs
22841C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
22842C ANS = PDF(I)
22843C This version by S. Roesler, 30.01.96
22844C**********************************************************************
22845
22846 SAVE
22847 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
22848 EQUIVALENCE (GF(1,1,1),DL(1))
22849 DATA DELTA/.13/
22850C
22851 DATA (DL(K),K= 1, 85) /
22852 &0.351858E+00,0.388489E+00,0.325356E+00,0.325356E+00,0.325356E+00,
22853 &0.325356E+00,0.445218E+01,0.000000E+00,0.419818E+00,0.459249E+00,
22854 &0.391167E+00,0.391143E+00,0.391125E+00,0.391167E+00,0.628186E+01,
22855 &0.703797E-01,0.498333E+00,0.540626E+00,0.467466E+00,0.467423E+00,
22856 &0.467393E+00,0.467466E+00,0.837368E+01,0.151191E+00,0.587839E+00,
22857 &0.633058E+00,0.554689E+00,0.554630E+00,0.554595E+00,0.554689E+00,
22858 &0.107170E+02,0.242877E+00,0.688652E+00,0.736861E+00,0.653150E+00,
22859 &0.653080E+00,0.653046E+00,0.653150E+00,0.132960E+02,0.345760E+00,
22860 &0.800961E+00,0.852226E+00,0.763038E+00,0.762961E+00,0.762933E+00,
22861 &0.763038E+00,0.160884E+02,0.460033E+00,0.924829E+00,0.979213E+00,
22862 &0.884414E+00,0.884335E+00,0.884319E+00,0.884414E+00,0.190679E+02,
22863 &0.585764E+00,0.106016E+01,0.111773E+01,0.101719E+01,0.101711E+01,
22864 &0.101711E+01,0.101719E+01,0.222033E+02,0.722864E+00,0.120670E+01,
22865 &0.126752E+01,0.116110E+01,0.116102E+01,0.116105E+01,0.116110E+01,
22866 &0.254603E+02,0.871079E+00,0.136402E+01,0.142815E+01,0.131571E+01,
22867 &0.131565E+01,0.131570E+01,0.131571E+01,0.288020E+02,0.102998E+01,
22868 &0.153151E+01,0.159900E+01,0.148043E+01,0.148038E+01,0.148046E+01/
22869 DATA (DL(K),K= 86, 170) /
22870 &0.148043E+01,0.321898E+02,0.119897E+01,0.170838E+01,0.177930E+01,
22871 &0.165447E+01,0.165444E+01,0.165455E+01,0.165447E+01,0.355845E+02,
22872 &0.137726E+01,0.189369E+01,0.196807E+01,0.183687E+01,0.183686E+01,
22873 &0.183701E+01,0.183687E+01,0.389473E+02,0.156390E+01,0.208631E+01,
22874 &0.216422E+01,0.202653E+01,0.202654E+01,0.202673E+01,0.202653E+01,
22875 &0.422402E+02,0.175779E+01,0.228501E+01,0.236648E+01,0.222220E+01,
22876 &0.222224E+01,0.222248E+01,0.222220E+01,0.454277E+02,0.195768E+01,
22877 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22878 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22879 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22880 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22881 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22882 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22883 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22884 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22885 &0.326035E+00,0.380777E+00,0.286363E+00,0.286363E+00,0.286363E+00,
22886 &0.286363E+00,0.392252E+01,-.138778E-16,0.380092E+00,0.438587E+00/
22887 DATA (DL(K),K= 171, 255) /
22888 &0.337452E+00,0.337430E+00,0.337424E+00,0.337452E+00,0.532193E+01,
22889 &0.553645E-01,0.440879E+00,0.503177E+00,0.395208E+00,0.395169E+00,
22890 &0.395165E+00,0.395208E+00,0.686454E+01,0.117354E+00,0.508415E+00,
22891 &0.574566E+00,0.459649E+00,0.459600E+00,0.459604E+00,0.459649E+00,
22892 &0.853316E+01,0.185994E+00,0.582647E+00,0.652699E+00,0.530722E+00,
22893 &0.530667E+00,0.530687E+00,0.530722E+00,0.103093E+02,0.261237E+00,
22894 &0.663404E+00,0.737405E+00,0.608254E+00,0.608199E+00,0.608241E+00,
22895 &0.608254E+00,0.121710E+02,0.342917E+00,0.750429E+00,0.828423E+00,
22896 &0.691990E+00,0.691941E+00,0.692009E+00,0.691990E+00,0.140946E+02,
22897 &0.430783E+00,0.843361E+00,0.925391E+00,0.781571E+00,0.781533E+00,
22898 &0.781632E+00,0.781571E+00,0.160553E+02,0.524479E+00,0.941741E+00,
22899 &0.102784E+01,0.876538E+00,0.876515E+00,0.876650E+00,0.876538E+00,
22900 &0.180277E+02,0.623549E+00,0.104501E+01,0.113521E+01,0.976335E+00,
22901 &0.976332E+00,0.976506E+00,0.976335E+00,0.199863E+02,0.727439E+00,
22902 &0.115251E+01,0.124685E+01,0.108031E+01,0.108034E+01,0.108055E+01,
22903 &0.108031E+01,0.219066E+02,0.835506E+00,0.126352E+01,0.136201E+01,
22904 &0.118775E+01,0.118780E+01,0.118806E+01,0.118775E+01,0.237652E+02/
22905 DATA (DL(K),K= 256, 340) /
22906 &0.947020E+00,0.137724E+01,0.147989E+01,0.129783E+01,0.129791E+01,
22907 &0.129822E+01,0.129783E+01,0.255406E+02,0.106119E+01,0.149279E+01,
22908 &0.159961E+01,0.140972E+01,0.140984E+01,0.141019E+01,0.140972E+01,
22909 &0.272135E+02,0.117715E+01,0.160929E+01,0.172028E+01,0.152252E+01,
22910 &0.152267E+01,0.152308E+01,0.152252E+01,0.287669E+02,0.129402E+01,
22911 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22912 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22913 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22914 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22915 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22916 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22917 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22918 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22919 &0.309785E+00,0.391282E+00,0.250518E+00,0.250518E+00,0.250518E+00,
22920 &0.250518E+00,0.343842E+01,-.138778E-16,0.352113E+00,0.438463E+00,
22921 &0.288877E+00,0.288863E+00,0.288878E+00,0.288877E+00,0.446765E+01,
22922 &0.424850E-01,0.398382E+00,0.489596E+00,0.331132E+00,0.331111E+00/
22923 DATA (DL(K),K= 341, 425) /
22924 &0.331148E+00,0.331132E+00,0.555902E+01,0.888369E-01,0.448375E+00,
22925 &0.544458E+00,0.377064E+00,0.377043E+00,0.377108E+00,0.377064E+00,
22926 &0.669490E+01,0.138845E+00,0.501854E+00,0.602811E+00,0.426440E+00,
22927 &0.426425E+00,0.426523E+00,0.426440E+00,0.785892E+01,0.192281E+00,
22928 &0.558506E+00,0.664331E+00,0.478946E+00,0.478944E+00,0.479079E+00,
22929 &0.478946E+00,0.903368E+01,0.248834E+00,0.617972E+00,0.728657E+00,
22930 &0.534229E+00,0.534244E+00,0.534421E+00,0.534229E+00,0.102022E+02,
22931 &0.308155E+00,0.679844E+00,0.795370E+00,0.591883E+00,0.591921E+00,
22932 &0.592141E+00,0.591883E+00,0.113479E+02,0.369841E+00,0.743667E+00,
22933 &0.864009E+00,0.651460E+00,0.651525E+00,0.651792E+00,0.651460E+00,
22934 &0.124553E+02,0.433447E+00,0.808951E+00,0.934073E+00,0.712474E+00,
22935 &0.712571E+00,0.712885E+00,0.712474E+00,0.135102E+02,0.498486E+00,
22936 &0.875171E+00,0.100503E+01,0.774408E+00,0.774541E+00,0.774902E+00,
22937 &0.774408E+00,0.144999E+02,0.564446E+00,0.941784E+00,0.107632E+01,
22938 &0.836726E+00,0.836897E+00,0.837307E+00,0.836726E+00,0.154136E+02,
22939 &0.630788E+00,0.100823E+01,0.114738E+01,0.898879E+00,0.899092E+00,
22940 &0.899551E+00,0.898879E+00,0.162423E+02,0.696967E+00,0.107396E+01/
22941 DATA (DL(K),K= 426, 510) /
22942 &0.121764E+01,0.960319E+00,0.960577E+00,0.961084E+00,0.960319E+00,
22943 &0.169791E+02,0.762433E+00,0.113843E+01,0.128655E+01,0.102051E+01,
22944 &0.102081E+01,0.102137E+01,0.102051E+01,0.176190E+02,0.826647E+00,
22945 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22946 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22947 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22948 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22949 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22950 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22951 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22952 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22953 &0.304680E+00,0.425088E+00,0.216504E+00,0.216504E+00,0.216504E+00,
22954 &0.216504E+00,0.298356E+01,0.000000E+00,0.337300E+00,0.463627E+00,
22955 &0.244023E+00,0.244024E+00,0.244063E+00,0.244023E+00,0.370271E+01,
22956 &0.316585E-01,0.371787E+00,0.503942E+00,0.273415E+00,0.273423E+00,
22957 &0.273505E+00,0.273415E+00,0.443039E+01,0.651685E-01,0.407853E+00,
22958 &0.545739E+00,0.304395E+00,0.304418E+00,0.304545E+00,0.304395E+00/
22959 DATA (DL(K),K= 511, 595) /
22960 &0.515321E+01,0.100252E+00,0.445229E+00,0.588741E+00,0.336700E+00,
22961 &0.336744E+00,0.336918E+00,0.336700E+00,0.586004E+01,0.136648E+00,
22962 &0.483606E+00,0.632629E+00,0.370026E+00,0.370095E+00,0.370318E+00,
22963 &0.370026E+00,0.654027E+01,0.174056E+00,0.522666E+00,0.677074E+00,
22964 &0.404062E+00,0.404162E+00,0.404433E+00,0.404062E+00,0.718442E+01,
22965 &0.212167E+00,0.562075E+00,0.721735E+00,0.438483E+00,0.438618E+00,
22966 &0.438938E+00,0.438483E+00,0.778423E+01,0.250658E+00,0.601494E+00,
22967 &0.766258E+00,0.472959E+00,0.473131E+00,0.473500E+00,0.472959E+00,
22968 &0.833276E+01,0.289199E+00,0.640580E+00,0.810290E+00,0.507156E+00,
22969 &0.507369E+00,0.507784E+00,0.507156E+00,0.882448E+01,0.327457E+00,
22970 &0.678993E+00,0.853479E+00,0.540747E+00,0.541003E+00,0.541463E+00,
22971 &0.540747E+00,0.925529E+01,0.365104E+00,0.716405E+00,0.895483E+00,
22972 &0.573411E+00,0.573714E+00,0.574216E+00,0.573411E+00,0.962250E+01,
22973 &0.401821E+00,0.752501E+00,0.935975E+00,0.604848E+00,0.605197E+00,
22974 &0.605740E+00,0.604848E+00,0.992478E+01,0.437304E+00,0.786987E+00,
22975 &0.974647E+00,0.634775E+00,0.635173E+00,0.635752E+00,0.634775E+00,
22976 &0.101620E+02,0.471269E+00,0.819594E+00,0.101122E+01,0.662936E+00/
22977 DATA (DL(K),K= 596, 680) /
22978 &0.663382E+00,0.663995E+00,0.662936E+00,0.103354E+02,0.503459E+00,
22979 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22980 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22981 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22982 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22983 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22984 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22985 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22986 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22987 &0.312661E+00,0.487836E+00,0.182562E+00,0.182562E+00,0.182562E+00,
22988 &0.182562E+00,0.253626E+01,0.000000E+00,0.336910E+00,0.518440E+00,
22989 &0.200702E+00,0.200721E+00,0.200779E+00,0.200702E+00,0.299460E+01,
22990 &0.224425E-01,0.361554E+00,0.549164E+00,0.219359E+00,0.219402E+00,
22991 &0.219517E+00,0.219359E+00,0.343183E+01,0.453742E-01,0.386348E+00,
22992 &0.579759E+00,0.238296E+00,0.238367E+00,0.238536E+00,0.238296E+00,
22993 &0.384076E+01,0.685610E-01,0.411080E+00,0.610003E+00,0.257305E+00,
22994 &0.257408E+00,0.257630E+00,0.257305E+00,0.421619E+01,0.917987E-01/
22995 DATA (DL(K),K= 681, 765) /
22996 &0.435528E+00,0.639668E+00,0.276174E+00,0.276313E+00,0.276583E+00,
22997 &0.276174E+00,0.455400E+01,0.114876E+00,0.459476E+00,0.668531E+00,
22998 &0.294698E+00,0.294875E+00,0.295191E+00,0.294698E+00,0.485107E+01,
22999 &0.137589E+00,0.482719E+00,0.696375E+00,0.312682E+00,0.312900E+00,
23000 &0.313258E+00,0.312682E+00,0.510539E+01,0.159742E+00,0.505060E+00,
23001 &0.722995E+00,0.329941E+00,0.330200E+00,0.330596E+00,0.329941E+00,
23002 &0.531589E+01,0.181149E+00,0.526315E+00,0.748199E+00,0.346303E+00,
23003 &0.346604E+00,0.347034E+00,0.346303E+00,0.548250E+01,0.201638E+00,
23004 &0.546317E+00,0.771808E+00,0.361613E+00,0.361957E+00,0.362418E+00,
23005 &0.361613E+00,0.560595E+01,0.221052E+00,0.564917E+00,0.793667E+00,
23006 &0.375735E+00,0.376122E+00,0.376609E+00,0.375735E+00,0.568772E+01,
23007 &0.239253E+00,0.581987E+00,0.813638E+00,0.388553E+00,0.388982E+00,
23008 &0.389491E+00,0.388553E+00,0.572992E+01,0.256122E+00,0.597419E+00,
23009 &0.831608E+00,0.399972E+00,0.400443E+00,0.400970E+00,0.399972E+00,
23010 &0.573516E+01,0.271562E+00,0.611129E+00,0.847487E+00,0.409919E+00,
23011 &0.410430E+00,0.410972E+00,0.409919E+00,0.570642E+01,0.285497E+00,
23012 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23013 DATA (DL(K),K= 766, 850) /
23014 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23015 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23016 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23017 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23018 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23019 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23020 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23021 &0.335149E+00,0.582072E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23022 &0.146415E+00,0.206772E+01,0.000000E+00,0.351552E+00,0.603437E+00,
23023 &0.156515E+00,0.156542E+00,0.156595E+00,0.156515E+00,0.231143E+01,
23024 &0.146091E-01,0.367407E+00,0.623737E+00,0.166387E+00,0.166442E+00,
23025 &0.166542E+00,0.166387E+00,0.252488E+01,0.289315E-01,0.382571E+00,
23026 &0.642832E+00,0.175891E+00,0.175976E+00,0.176118E+00,0.175891E+00,
23027 &0.270658E+01,0.428312E-01,0.396926E+00,0.660609E+00,0.184917E+00,
23028 &0.185034E+00,0.185212E+00,0.184917E+00,0.285608E+01,0.561981E-01,
23029 &0.410365E+00,0.676962E+00,0.193365E+00,0.193513E+00,0.193722E+00,
23030 &0.193365E+00,0.297375E+01,0.689319E-01,0.422792E+00,0.691796E+00/
23031 DATA (DL(K),K= 851, 935) /
23032 &0.201144E+00,0.201324E+00,0.201560E+00,0.201144E+00,0.306050E+01,
23033 &0.809434E-01,0.434123E+00,0.705030E+00,0.208181E+00,0.208393E+00,
23034 &0.208650E+00,0.208181E+00,0.311775E+01,0.921567E-01,0.444287E+00,
23035 &0.716596E+00,0.214413E+00,0.214656E+00,0.214931E+00,0.214413E+00,
23036 &0.314738E+01,0.102508E+00,0.453228E+00,0.726441E+00,0.219792E+00,
23037 &0.220066E+00,0.220354E+00,0.219792E+00,0.315156E+01,0.111949E+00,
23038 &0.460906E+00,0.734527E+00,0.224285E+00,0.224589E+00,0.224886E+00,
23039 &0.224285E+00,0.313271E+01,0.120441E+00,0.467291E+00,0.740835E+00,
23040 &0.227870E+00,0.228203E+00,0.228506E+00,0.227870E+00,0.309338E+01,
23041 &0.127963E+00,0.472372E+00,0.745357E+00,0.230541E+00,0.230902E+00,
23042 &0.231208E+00,0.230541E+00,0.303621E+01,0.134506E+00,0.476148E+00,
23043 &0.748105E+00,0.232304E+00,0.232690E+00,0.232996E+00,0.232304E+00,
23044 &0.296381E+01,0.140070E+00,0.478635E+00,0.749103E+00,0.233176E+00,
23045 &0.233586E+00,0.233889E+00,0.233176E+00,0.287874E+01,0.144672E+00,
23046 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23047 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23048 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23049 DATA (DL(K),K= 936, 1020) /
23050 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23051 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23052 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23053 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23054 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23055 &0.370162E+00,0.695827E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23056 &0.105823E+00,0.154556E+01,0.208167E-16,0.378214E+00,0.703794E+00,
23057 &0.109539E+00,0.109554E+00,0.109571E+00,0.109539E+00,0.162770E+01,
23058 &0.818783E-02,0.385258E+00,0.710067E+00,0.112818E+00,0.112847E+00,
23059 &0.112879E+00,0.112818E+00,0.168578E+01,0.158212E-01,0.391264E+00,
23060 &0.714648E+00,0.115620E+00,0.115666E+00,0.115709E+00,0.115620E+00,
23061 &0.172175E+01,0.228667E-01,0.396214E+00,0.717539E+00,0.117923E+00,
23062 &0.117985E+00,0.118037E+00,0.117923E+00,0.173756E+01,0.293009E-01,
23063 &0.400098E+00,0.718759E+00,0.119711E+00,0.119790E+00,0.119848E+00,
23064 &0.119711E+00,0.173541E+01,0.351123E-01,0.402915E+00,0.718332E+00,
23065 &0.120979E+00,0.121074E+00,0.121137E+00,0.120979E+00,0.171755E+01,
23066 &0.402951E-01,0.404672E+00,0.716292E+00,0.121728E+00,0.121840E+00/
23067 DATA (DL(K),K= 1021, 1105) /
23068 &0.121905E+00,0.121728E+00,0.168619E+01,0.448514E-01,0.405385E+00,
23069 &0.712681E+00,0.121967E+00,0.122095E+00,0.122161E+00,0.121967E+00,
23070 &0.164352E+01,0.487902E-01,0.405077E+00,0.707551E+00,0.121712E+00,
23071 &0.121855E+00,0.121920E+00,0.121712E+00,0.159162E+01,0.521265E-01,
23072 &0.403778E+00,0.700963E+00,0.120984E+00,0.121141E+00,0.121204E+00,
23073 &0.120984E+00,0.153245E+01,0.548814E-01,0.401525E+00,0.692984E+00,
23074 &0.119809E+00,0.119980E+00,0.120040E+00,0.119809E+00,0.146780E+01,
23075 &0.570807E-01,0.398361E+00,0.683691E+00,0.118218E+00,0.118402E+00,
23076 &0.118457E+00,0.118218E+00,0.139928E+01,0.587542E-01,0.394333E+00,
23077 &0.673166E+00,0.116244E+00,0.116440E+00,0.116490E+00,0.116244E+00,
23078 &0.132834E+01,0.599355E-01,0.389495E+00,0.661496E+00,0.113924E+00,
23079 &0.114131E+00,0.114175E+00,0.113924E+00,0.125620E+01,0.606602E-01,
23080 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23081 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23082 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23083 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23084 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23085 DATA (DL(K),K= 1106, 1190) /
23086 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23087 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23088 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23089 &0.394012E+00,0.757115E+00,0.772117E-01,0.772117E-01,0.772117E-01,
23090 &0.772117E-01,0.117279E+01,0.346945E-17,0.395841E+00,0.752988E+00,
23091 &0.780501E-01,0.780655E-01,0.780723E-01,0.780501E-01,0.118528E+01,
23092 &0.491697E-02,0.396627E+00,0.747223E+00,0.785386E-01,0.785692E-01,
23093 &0.785806E-01,0.785386E-01,0.118242E+01,0.932754E-02,0.396401E+00,
23094 &0.739901E+00,0.786820E-01,0.787273E-01,0.787413E-01,0.786820E-01,
23095 &0.116673E+01,0.132427E-01,0.395190E+00,0.731092E+00,0.784870E-01,
23096 &0.785464E-01,0.785613E-01,0.784870E-01,0.114033E+01,0.166738E-01,
23097 &0.393030E+00,0.720878E+00,0.779683E-01,0.780410E-01,0.780555E-01,
23098 &0.779683E-01,0.110528E+01,0.196392E-01,0.389962E+00,0.709342E+00,
23099 &0.771427E-01,0.772280E-01,0.772409E-01,0.771427E-01,0.106344E+01,
23100 &0.221591E-01,0.386027E+00,0.696571E+00,0.760304E-01,0.761276E-01,
23101 &0.761378E-01,0.760304E-01,0.101653E+01,0.242567E-01,0.381274E+00,
23102 &0.682657E+00,0.746543E-01,0.747623E-01,0.747692E-01,0.746543E-01/
23103 DATA (DL(K),K= 1191, 1275) /
23104 &0.966057E+00,0.259571E-01,0.375752E+00,0.667695E+00,0.730389E-01,
23105 &0.731569E-01,0.731598E-01,0.730389E-01,0.913345E+00,0.272876E-01,
23106 &0.369514E+00,0.651782E+00,0.712104E-01,0.713374E-01,0.713358E-01,
23107 &0.712104E-01,0.859530E+00,0.282763E-01,0.362616E+00,0.635021E+00,
23108 &0.691957E-01,0.693307E-01,0.693243E-01,0.691957E-01,0.805566E+00,
23109 &0.289524E-01,0.355116E+00,0.617511E+00,0.670220E-01,0.671640E-01,
23110 &0.671526E-01,0.670220E-01,0.752235E+00,0.293453E-01,0.347072E+00,
23111 &0.599357E+00,0.647162E-01,0.648642E-01,0.648478E-01,0.647162E-01,
23112 &0.700161E+00,0.294844E-01,0.338543E+00,0.580659E+00,0.623046E-01,
23113 &0.624578E-01,0.624363E-01,0.623046E-01,0.649828E+00,0.293983E-01,
23114 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23115 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23116 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23117 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23118 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23119 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23120 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23121 DATA (DL(K),K= 1276, 1360) /
23122 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23123 &0.408305E+00,0.775318E+00,0.509141E-01,0.509141E-01,0.509141E-01,
23124 &0.509141E-01,0.818839E+00,-.867362E-17,0.403619E+00,0.758058E+00,
23125 &0.502245E-01,0.502351E-01,0.502337E-01,0.502245E-01,0.795347E+00,
23126 &0.264045E-02,0.398068E+00,0.739709E+00,0.493454E-01,0.493661E-01,
23127 &0.493626E-01,0.493454E-01,0.764942E+00,0.491508E-02,0.391719E+00,
23128 &0.720394E+00,0.482952E-01,0.483253E-01,0.483192E-01,0.482952E-01,
23129 &0.729624E+00,0.685202E-02,0.384627E+00,0.700222E+00,0.470896E-01,
23130 &0.471285E-01,0.471194E-01,0.470896E-01,0.690906E+00,0.847433E-02,
23131 &0.376851E+00,0.679300E+00,0.457475E-01,0.457946E-01,0.457822E-01,
23132 &0.457475E-01,0.650078E+00,0.980774E-02,0.368452E+00,0.657739E+00,
23133 &0.442875E-01,0.443419E-01,0.443261E-01,0.442875E-01,0.608239E+00,
23134 &0.108769E-01,0.359490E+00,0.635646E+00,0.427281E-01,0.427892E-01,
23135 &0.427698E-01,0.427281E-01,0.566280E+00,0.117061E-01,0.350026E+00,
23136 &0.613128E+00,0.410878E-01,0.411549E-01,0.411320E-01,0.410878E-01,
23137 &0.524918E+00,0.123191E-01,0.340122E+00,0.590292E+00,0.393848E-01,
23138 &0.394571E-01,0.394308E-01,0.393848E-01,0.484713E+00,0.127393E-01/
23139 DATA (DL(K),K= 1361, 1445) /
23140 &0.329838E+00,0.567240E+00,0.376363E-01,0.377132E-01,0.376836E-01,
23141 &0.376363E-01,0.446084E+00,0.129888E-01,0.319236E+00,0.544074E+00,
23142 &0.358589E-01,0.359396E-01,0.359068E-01,0.358589E-01,0.409328E+00,
23143 &0.130888E-01,0.308374E+00,0.520890E+00,0.340678E-01,0.341517E-01,
23144 &0.341160E-01,0.340678E-01,0.374641E+00,0.130594E-01,0.297312E+00,
23145 &0.497781E+00,0.322772E-01,0.323636E-01,0.323253E-01,0.322772E-01,
23146 &0.342135E+00,0.129195E-01,0.286106E+00,0.474837E+00,0.304999E-01,
23147 &0.305882E-01,0.305474E-01,0.304999E-01,0.311854E+00,0.126863E-01,
23148 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23149 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23150 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23151 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23152 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23153 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23154 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23155 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23156 &0.407248E+00,0.746438E+00,0.335640E-01,0.335640E-01,0.335640E-01/
23157 DATA (DL(K),K= 1446, 1530) /
23158 &0.335640E-01,0.573540E+00,0.173472E-16,0.397516E+00,0.719825E+00,
23159 &0.324649E-01,0.324735E-01,0.324698E-01,0.324649E-01,0.540770E+00,
23160 &0.147177E-02,0.387197E+00,0.692869E+00,0.312911E-01,0.313075E-01,
23161 &0.313000E-01,0.312911E-01,0.505972E+00,0.269995E-02,0.376365E+00,
23162 &0.665689E+00,0.300576E-01,0.300811E-01,0.300699E-01,0.300576E-01,
23163 &0.470389E+00,0.371147E-02,0.365085E+00,0.638387E+00,0.287770E-01,
23164 &0.288070E-01,0.287922E-01,0.287770E-01,0.434885E+00,0.452768E-02,
23165 &0.353423E+00,0.611066E+00,0.274623E-01,0.274980E-01,0.274797E-01,
23166 &0.274623E-01,0.400103E+00,0.516996E-02,0.341442E+00,0.583823E+00,
23167 &0.261256E-01,0.261663E-01,0.261448E-01,0.261256E-01,0.366541E+00,
23168 &0.565807E-02,0.329207E+00,0.556753E+00,0.247782E-01,0.248234E-01,
23169 &0.247989E-01,0.247782E-01,0.334555E+00,0.601048E-02,0.316777E+00,
23170 &0.529946E+00,0.234308E-01,0.234798E-01,0.234525E-01,0.234308E-01,
23171 &0.304384E+00,0.624451E-02,0.304214E+00,0.503489E+00,0.220932E-01,
23172 &0.221452E-01,0.221155E-01,0.220932E-01,0.276170E+00,0.637618E-02,
23173 &0.291575E+00,0.477462E+00,0.207739E-01,0.208286E-01,0.207966E-01,
23174 &0.207739E-01,0.249976E+00,0.642028E-02,0.278917E+00,0.451941E+00/
23175 DATA (DL(K),K= 1531, 1615) /
23176 &0.194809E-01,0.195376E-01,0.195037E-01,0.194809E-01,0.225809E+00,
23177 &0.639038E-02,0.266293E+00,0.426995E+00,0.182209E-01,0.182791E-01,
23178 &0.182436E-01,0.182209E-01,0.203629E+00,0.629880E-02,0.253754E+00,
23179 &0.402686E+00,0.169996E-01,0.170587E-01,0.170219E-01,0.169996E-01,
23180 &0.183361E+00,0.615665E-02,0.241347E+00,0.379071E+00,0.158217E-01,
23181 &0.158814E-01,0.158436E-01,0.158217E-01,0.164907E+00,0.597385E-02,
23182 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23183 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23184 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23185 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23186 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23187 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23188 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23189 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23190 &0.395106E+00,0.689399E+00,0.218554E-01,0.218554E-01,0.218554E-01,
23191 &0.218554E-01,0.398362E+00,-.173472E-17,0.381441E+00,0.656777E+00,
23192 &0.207816E-01,0.207886E-01,0.207844E-01,0.207816E-01,0.366703E+00/
23193 DATA (DL(K),K= 1616, 1700) /
23194 &0.826643E-03,0.367505E+00,0.624578E+00,0.197001E-01,0.197133E-01,
23195 &0.197053E-01,0.197001E-01,0.335573E+00,0.149886E-02,0.353373E+00,
23196 &0.592889E+00,0.186195E-01,0.186383E-01,0.186266E-01,0.186195E-01,
23197 &0.305590E+00,0.203730E-02,0.339106E+00,0.561783E+00,0.175468E-01,
23198 &0.175705E-01,0.175555E-01,0.175468E-01,0.277136E+00,0.245817E-02,
23199 &0.324766E+00,0.531331E+00,0.164887E-01,0.165166E-01,0.164986E-01,
23200 &0.164887E-01,0.250424E+00,0.277666E-02,0.310411E+00,0.501599E+00,
23201 &0.154510E-01,0.154825E-01,0.154618E-01,0.154510E-01,0.225588E+00,
23202 &0.300658E-02,0.296100E+00,0.472648E+00,0.144390E-01,0.144735E-01,
23203 &0.144504E-01,0.144390E-01,0.202681E+00,0.316040E-02,0.281885E+00,
23204 &0.444535E+00,0.134570E-01,0.134940E-01,0.134689E-01,0.134570E-01,
23205 &0.181693E+00,0.324944E-02,0.267820E+00,0.417309E+00,0.125091E-01,
23206 &0.125481E-01,0.125212E-01,0.125091E-01,0.162572E+00,0.328396E-02,
23207 &0.253953E+00,0.391017E+00,0.115984E-01,0.116389E-01,0.116106E-01,
23208 &0.115984E-01,0.145235E+00,0.327313E-02,0.240328E+00,0.365695E+00,
23209 &0.107275E-01,0.107690E-01,0.107396E-01,0.107275E-01,0.129575E+00,
23210 &0.322510E-02,0.226989E+00,0.341375E+00,0.989805E-02,0.994030E-02/
23211 DATA (DL(K),K= 1701, 1785) /
23212 &0.990998E-02,0.989805E-02,0.115477E+00,0.314713E-02,0.213972E+00,
23213 &0.318081E+00,0.911149E-02,0.915408E-02,0.912316E-02,0.911149E-02,
23214 &0.102820E+00,0.304556E-02,0.201311E+00,0.295830E+00,0.836852E-02,
23215 &0.841111E-02,0.837984E-02,0.836852E-02,0.914804E-01,0.292596E-02,
23216 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23217 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23218 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23219 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23220 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23221 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23222 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23223 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23224 &0.374678E+00,0.616087E+00,0.139531E-01,0.139531E-01,0.139531E-01,
23225 &0.139531E-01,0.272491E+00,-.693889E-17,0.358052E+00,0.580345E+00,
23226 &0.130624E-01,0.130680E-01,0.130641E-01,0.130624E-01,0.245861E+00,
23227 &0.460255E-03,0.341487E+00,0.545719E+00,0.121971E-01,0.122076E-01,
23228 &0.122002E-01,0.121971E-01,0.220877E+00,0.826785E-03,0.325046E+00/
23229 DATA (DL(K),K= 1786, 1870) /
23230 &0.512244E+00,0.113599E-01,0.113748E-01,0.113641E-01,0.113599E-01,
23231 &0.197730E+00,0.111366E-02,0.308783E+00,0.479952E+00,0.105534E-01,
23232 &0.105720E-01,0.105585E-01,0.105534E-01,0.176497E+00,0.133192E-02,
23233 &0.292747E+00,0.448868E+00,0.977938E-02,0.980112E-02,0.978518E-02,
23234 &0.977938E-02,0.157150E+00,0.149139E-02,0.276986E+00,0.419015E+00,
23235 &0.903955E-02,0.906394E-02,0.904584E-02,0.903955E-02,0.139631E+00,
23236 &0.160093E-02,0.261546E+00,0.390412E+00,0.833509E-02,0.836165E-02,
23237 &0.834171E-02,0.833509E-02,0.123850E+00,0.166838E-02,0.246467E+00,
23238 &0.363074E+00,0.766687E-02,0.769516E-02,0.767369E-02,0.766687E-02,
23239 &0.109695E+00,0.170073E-02,0.231787E+00,0.337008E+00,0.703540E-02,
23240 &0.706500E-02,0.704230E-02,0.703540E-02,0.970428E-01,0.170416E-02,
23241 &0.217542E+00,0.312218E+00,0.644083E-02,0.647137E-02,0.644772E-02,
23242 &0.644083E-02,0.857658E-01,0.168409E-02,0.203759E+00,0.288701E+00,
23243 &0.588300E-02,0.591415E-02,0.588981E-02,0.588300E-02,0.757385E-01,
23244 &0.164528E-02,0.190467E+00,0.266449E+00,0.536147E-02,0.539292E-02,
23245 &0.536812E-02,0.536147E-02,0.668383E-01,0.159185E-02,0.177686E+00,
23246 &0.245447E+00,0.487551E-02,0.490698E-02,0.488195E-02,0.487551E-02/
23247 DATA (DL(K),K= 1871, 1955) /
23248 &0.589492E-01,0.152735E-02,0.165434E+00,0.225677E+00,0.442416E-02,
23249 &0.445543E-02,0.443037E-02,0.442416E-02,0.519652E-01,0.145483E-02,
23250 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23251 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23252 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23253 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23254 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23255 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23256 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23257 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23258 &0.348042E+00,0.534691E+00,0.867977E-02,0.867977E-02,0.867977E-02,
23259 &0.867977E-02,0.182547E+00,-.693889E-17,0.329349E+00,0.498248E+00,
23260 &0.800724E-02,0.801198E-02,0.800836E-02,0.800724E-02,0.161948E+00,
23261 &0.250949E-03,0.311047E+00,0.463485E+00,0.737155E-02,0.738040E-02,
23262 &0.737356E-02,0.737155E-02,0.143267E+00,0.447662E-03,0.293181E+00,
23263 &0.430377E+00,0.677169E-02,0.678409E-02,0.677441E-02,0.677169E-02,
23264 &0.126447E+00,0.598803E-03,0.275787E+00,0.398907E+00,0.620726E-02/
23265 DATA (DL(K),K= 1956, 2040) /
23266 &0.622265E-02,0.621051E-02,0.620726E-02,0.111401E+00,0.711280E-03,
23267 &0.258900E+00,0.369051E+00,0.567741E-02,0.569532E-02,0.568106E-02,
23268 &0.567741E-02,0.979944E-01,0.790986E-03,0.242550E+00,0.340785E+00,
23269 &0.518138E-02,0.520134E-02,0.518531E-02,0.518138E-02,0.860936E-01,
23270 &0.843227E-03,0.226765E+00,0.314083E+00,0.471828E-02,0.473987E-02,
23271 &0.472238E-02,0.471828E-02,0.755615E-01,0.872644E-03,0.211568E+00,
23272 &0.288916E+00,0.428714E-02,0.430998E-02,0.429133E-02,0.428714E-02,
23273 &0.662627E-01,0.883319E-03,0.196981E+00,0.265252E+00,0.388691E-02,
23274 &0.391065E-02,0.389112E-02,0.388691E-02,0.580684E-01,0.878818E-03,
23275 &0.183020E+00,0.243053E+00,0.351645E-02,0.354077E-02,0.352060E-02,
23276 &0.351645E-02,0.508578E-01,0.862228E-03,0.169696E+00,0.222280E+00,
23277 &0.317451E-02,0.319914E-02,0.317858E-02,0.317451E-02,0.445190E-01,
23278 &0.836224E-03,0.157017E+00,0.202888E+00,0.285982E-02,0.288450E-02,
23279 &0.286376E-02,0.285982E-02,0.389523E-01,0.803096E-03,0.144987E+00,
23280 &0.184832E+00,0.257101E-02,0.259553E-02,0.257480E-02,0.257101E-02,
23281 &0.340677E-01,0.764787E-03,0.133605E+00,0.168060E+00,0.230670E-02,
23282 &0.233087E-02,0.231031E-02,0.230670E-02,0.297820E-01,0.722929E-03/
23283 DATA (DL(K),K= 2041, 2125) /
23284 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23285 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23286 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23287 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23288 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23289 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23290 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23291 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23292 &0.316867E+00,0.451111E+00,0.522815E-02,0.522815E-02,0.522815E-02,
23293 &0.522815E-02,0.119118E+00,0.889046E-17,0.296950E+00,0.415915E+00,
23294 &0.475497E-02,0.475914E-02,0.475574E-02,0.475497E-02,0.104204E+00,
23295 &0.132513E-03,0.277735E+00,0.382805E+00,0.431809E-02,0.432582E-02,
23296 &0.431944E-02,0.431809E-02,0.910279E-01,0.235347E-03,0.259241E+00,
23297 &0.351694E+00,0.391455E-02,0.392531E-02,0.391637E-02,0.391455E-02,
23298 &0.794222E-01,0.313322E-03,0.241485E+00,0.322517E+00,0.354249E-02,
23299 &0.355575E-02,0.354464E-02,0.354249E-02,0.692354E-01,0.370408E-03,
23300 &0.224480E+00,0.295202E+00,0.319987E-02,0.321518E-02,0.320226E-02/
23301 DATA (DL(K),K= 2126, 2210) /
23302 &0.319987E-02,0.603106E-01,0.409866E-03,0.208235E+00,0.269681E+00,
23303 &0.288490E-02,0.290184E-02,0.288744E-02,0.288490E-02,0.525034E-01,
23304 &0.434663E-03,0.192759E+00,0.245887E+00,0.259589E-02,0.261407E-02,
23305 &0.259852E-02,0.259589E-02,0.456838E-01,0.447393E-03,0.178054E+00,
23306 &0.223752E+00,0.233123E-02,0.235033E-02,0.233390E-02,0.233123E-02,
23307 &0.397318E-01,0.450314E-03,0.164120E+00,0.203207E+00,0.208941E-02,
23308 &0.210910E-02,0.209206E-02,0.208941E-02,0.345396E-01,0.445394E-03,
23309 &0.150954E+00,0.184182E+00,0.186896E-02,0.188897E-02,0.187155E-02,
23310 &0.186896E-02,0.300131E-01,0.434333E-03,0.138548E+00,0.166608E+00,
23311 &0.166844E-02,0.168854E-02,0.167096E-02,0.166844E-02,0.260692E-01,
23312 &0.418584E-03,0.126892E+00,0.150412E+00,0.148650E-02,0.150648E-02,
23313 &0.148891E-02,0.148650E-02,0.226325E-01,0.399380E-03,0.115971E+00,
23314 &0.135523E+00,0.132180E-02,0.134148E-02,0.132409E-02,0.132180E-02,
23315 &0.196374E-01,0.377764E-03,0.105767E+00,0.121870E+00,0.117308E-02,
23316 &0.119231E-02,0.117524E-02,0.117308E-02,0.170312E-01,0.354610E-03,
23317 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23318 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23319 DATA (DL(K),K= 2211, 2295) /
23320 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23321 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23322 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23323 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23324 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23325 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23326 &0.282579E+00,0.369670E+00,0.302765E-02,0.302765E-02,0.302765E-02,
23327 &0.302765E-02,0.752529E-01,-.455365E-17,0.262229E+00,0.337209E+00,
23328 &0.271512E-02,0.271883E-02,0.271564E-02,0.271512E-02,0.651086E-01,
23329 &0.669321E-04,0.242857E+00,0.307069E+00,0.243269E-02,0.243953E-02,
23330 &0.243360E-02,0.243269E-02,0.563252E-01,0.118744E-03,0.224455E+00,
23331 &0.279111E+00,0.217687E-02,0.218631E-02,0.217808E-02,0.217687E-02,
23332 &0.487143E-01,0.157767E-03,0.207014E+00,0.253223E+00,0.194534E-02,
23333 &0.195689E-02,0.194675E-02,0.194534E-02,0.421227E-01,0.186063E-03,
23334 &0.190523E+00,0.229293E+00,0.173585E-02,0.174909E-02,0.173741E-02,
23335 &0.173585E-02,0.364156E-01,0.205286E-03,0.174969E+00,0.207218E+00,
23336 &0.154647E-02,0.156100E-02,0.154811E-02,0.154647E-02,0.314732E-01/
23337 DATA (DL(K),K= 2296, 2380) /
23338 &0.216964E-03,0.160335E+00,0.186895E+00,0.137545E-02,0.139092E-02,
23339 &0.137713E-02,0.137545E-02,0.271927E-01,0.222455E-03,0.146604E+00,
23340 &0.168227E+00,0.122121E-02,0.123733E-02,0.122290E-02,0.122121E-02,
23341 &0.234852E-01,0.222947E-03,0.133756E+00,0.151116E+00,0.108234E-02,
23342 &0.109881E-02,0.108400E-02,0.108234E-02,0.202747E-01,0.219474E-03,
23343 &0.121765E+00,0.135471E+00,0.957502E-03,0.974107E-03,0.959112E-03,
23344 &0.957502E-03,0.174932E-01,0.212928E-03,0.110606E+00,0.121198E+00,
23345 &0.845493E-03,0.862024E-03,0.847037E-03,0.845493E-03,0.150824E-01,
23346 &0.204075E-03,0.100250E+00,0.108210E+00,0.745196E-03,0.761482E-03,
23347 &0.746662E-03,0.745196E-03,0.129965E-01,0.193573E-03,0.906661E-01,
23348 &0.964191E-01,0.655569E-03,0.671466E-03,0.656948E-03,0.655569E-03,
23349 &0.111930E-01,0.181962E-03,0.818218E-01,0.857412E-01,0.575637E-03,
23350 &0.591030E-03,0.576925E-03,0.575637E-03,0.962922E-02,0.169687E-03,
23351 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23352 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23353 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23354 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23355 DATA (DL(K),K= 2381, 2465) /
23356 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23357 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23358 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23359 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23360 &0.246444E+00,0.293515E+00,0.167124E-02,0.167124E-02,0.167124E-02,
23361 &0.167124E-02,0.456929E-01,-.260209E-17,0.226393E+00,0.264836E+00,
23362 &0.147748E-02,0.148085E-02,0.147783E-02,0.147748E-02,0.392393E-01,
23363 &0.318190E-04,0.207552E+00,0.238550E+00,0.130596E-02,0.131212E-02,
23364 &0.130656E-02,0.130596E-02,0.337276E-01,0.566426E-04,0.189877E+00,
23365 &0.214470E+00,0.115347E-02,0.116190E-02,0.115427E-02,0.115347E-02,
23366 &0.290012E-01,0.753776E-04,0.173336E+00,0.192452E+00,0.101789E-02,
23367 &0.102811E-02,0.101881E-02,0.101789E-02,0.249381E-01,0.889466E-04,
23368 &0.157889E+00,0.172355E+00,0.897268E-03,0.908872E-03,0.898270E-03,
23369 &0.897268E-03,0.214419E-01,0.980950E-04,0.143501E+00,0.154046E+00,
23370 &0.789951E-03,0.802565E-03,0.790996E-03,0.789951E-03,0.184296E-01,
23371 &0.103536E-03,0.130132E+00,0.137402E+00,0.694510E-03,0.707811E-03,
23372 &0.695568E-03,0.694510E-03,0.158331E-01,0.105929E-03,0.117743E+00/
23373 DATA (DL(K),K= 2466, 2550) /
23374 &0.122303E+00,0.609684E-03,0.623394E-03,0.610733E-03,0.609684E-03,
23375 &0.135929E-01,0.105853E-03,0.106293E+00,0.108637E+00,0.534365E-03,
23376 &0.548244E-03,0.535386E-03,0.534365E-03,0.116583E-01,0.103825E-03,
23377 &0.957386E-01,0.962976E-01,0.467572E-03,0.481416E-03,0.468551E-03,
23378 &0.467572E-03,0.999103E-02,0.100301E-03,0.860376E-01,0.851820E-01,
23379 &0.408422E-03,0.422062E-03,0.409350E-03,0.408422E-03,0.855563E-02,
23380 &0.956675E-04,0.771455E-01,0.751930E-01,0.356117E-03,0.369416E-03,
23381 &0.356989E-03,0.356117E-03,0.731542E-02,0.902499E-04,0.690178E-01,
23382 &0.662386E-01,0.309950E-03,0.322797E-03,0.310761E-03,0.309950E-03,
23383 &0.624633E-02,0.843305E-04,0.616096E-01,0.582312E-01,0.269281E-03,
23384 &0.281590E-03,0.270030E-03,0.269281E-03,0.533230E-02,0.781441E-04,
23385 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23386 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23387 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23388 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23389 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23390 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23391 DATA (DL(K),K= 2551, 2635) /
23392 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23393 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23394 &0.209608E+00,0.224862E+00,0.869706E-03,0.869706E-03,0.869706E-03,
23395 &0.869706E-03,0.264204E-01,-.138236E-17,0.190523E+00,0.200603E+00,
23396 &0.757542E-03,0.760626E-03,0.757768E-03,0.757542E-03,0.226261E-01,
23397 &0.138827E-04,0.172819E+00,0.178656E+00,0.660281E-03,0.665837E-03,
23398 &0.660670E-03,0.660281E-03,0.194018E-01,0.249832E-04,0.156420E+00,
23399 &0.158805E+00,0.575414E-03,0.582918E-03,0.575917E-03,0.575414E-03,
23400 &0.166434E-01,0.334851E-04,0.141265E+00,0.140883E+00,0.501258E-03,
23401 &0.510252E-03,0.501836E-03,0.501258E-03,0.142710E-01,0.397017E-04,
23402 &0.127291E+00,0.124732E+00,0.436386E-03,0.446473E-03,0.437008E-03,
23403 &0.436386E-03,0.122297E-01,0.439154E-04,0.114437E+00,0.110205E+00,
23404 &0.379575E-03,0.390415E-03,0.380217E-03,0.379575E-03,0.104701E-01,
23405 &0.464110E-04,0.102644E+00,0.971655E-01,0.329805E-03,0.341109E-03,
23406 &0.330448E-03,0.329805E-03,0.895086E-02,0.474758E-04,0.918521E-01,
23407 &0.854876E-01,0.286206E-03,0.297729E-03,0.286836E-03,0.286206E-03,
23408 &0.764249E-02,0.473771E-04,0.820032E-01,0.750529E-01,0.248027E-03/
23409 DATA (DL(K),K= 2636, 2720) /
23410 &0.259564E-03,0.248633E-03,0.248027E-03,0.651744E-02,0.463561E-04,
23411 &0.730394E-01,0.657510E-01,0.214611E-03,0.225995E-03,0.215186E-03,
23412 &0.214611E-03,0.554573E-02,0.446239E-04,0.649040E-01,0.574789E-01,
23413 &0.185396E-03,0.196491E-03,0.185935E-03,0.185396E-03,0.470938E-02,
23414 &0.423722E-04,0.575411E-01,0.501405E-01,0.159891E-03,0.170590E-03,
23415 &0.160391E-03,0.159891E-03,0.399752E-02,0.397689E-04,0.508960E-01,
23416 &0.436466E-01,0.137650E-03,0.147874E-03,0.138111E-03,0.137650E-03,
23417 &0.338807E-02,0.369434E-04,0.449157E-01,0.379141E-01,0.118285E-03,
23418 &0.127973E-03,0.118705E-03,0.118285E-03,0.286125E-02,0.340035E-04,
23419 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23420 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23421 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23422 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23423 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23424 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23425 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23426 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23427 DATA (DL(K),K= 2721, 2805) /
23428 &0.173133E+00,0.165162E+00,0.420483E-03,0.420483E-03,0.420483E-03,
23429 &0.420483E-03,0.143704E-01,0.418773E-17,0.155600E+00,0.145586E+00,
23430 &0.360490E-03,0.363140E-03,0.360629E-03,0.360490E-03,0.123560E-01,
23431 &0.533279E-05,0.139551E+00,0.128113E+00,0.309555E-03,0.314310E-03,
23432 &0.309792E-03,0.309555E-03,0.106262E-01,0.982612E-05,0.124876E+00,
23433 &0.112516E+00,0.265952E-03,0.272344E-03,0.266256E-03,0.265952E-03,
23434 &0.913151E-02,0.133834E-04,0.111490E+00,0.986188E-01,0.228522E-03,
23435 &0.236138E-03,0.228869E-03,0.228522E-03,0.783135E-02,0.160429E-04,
23436 &0.993081E-01,0.862590E-01,0.196336E-03,0.204821E-03,0.196706E-03,
23437 &0.196336E-03,0.670031E-02,0.178799E-04,0.882484E-01,0.752883E-01,
23438 &0.168604E-03,0.177655E-03,0.168981E-03,0.168604E-03,0.572016E-02,
23439 &0.189837E-04,0.782334E-01,0.655714E-01,0.144684E-03,0.154047E-03,
23440 &0.145058E-03,0.144684E-03,0.487276E-02,0.194655E-04,0.691885E-01,
23441 &0.569841E-01,0.124035E-03,0.133497E-03,0.124397E-03,0.124035E-03,
23442 &0.413648E-02,0.194296E-04,0.610420E-01,0.494128E-01,0.106203E-03,
23443 &0.115592E-03,0.106548E-03,0.106203E-03,0.350042E-02,0.189800E-04,
23444 &0.537249E-01,0.427533E-01,0.908141E-04,0.999895E-04,0.911377E-04/
23445 DATA (DL(K),K= 2806, 2890) /
23446 &0.908141E-04,0.295961E-02,0.182192E-04,0.471713E-01,0.369100E-01,
23447 &0.775359E-04,0.863895E-04,0.778360E-04,0.775359E-04,0.249629E-02,
23448 &0.172287E-04,0.413182E-01,0.317957E-01,0.660857E-04,0.745356E-04,
23449 &0.663611E-04,0.660857E-04,0.209482E-02,0.160791E-04,0.361056E-01,
23450 &0.273306E-01,0.562298E-04,0.642173E-04,0.564804E-04,0.562298E-04,
23451 &0.175588E-02,0.148407E-04,0.314766E-01,0.234421E-01,0.477598E-04,
23452 &0.552457E-04,0.479859E-04,0.477598E-04,0.147398E-02,0.135653E-04,
23453 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23454 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23455 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23456 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23457 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23458 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23459 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23460 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23461 &0.138007E+00,0.115214E+00,0.185072E-03,0.185072E-03,0.185072E-03,
23462 &0.185072E-03,0.722856E-02,-.380826E-17,0.122517E+00,0.100251E+00/
23463 DATA (DL(K),K= 2891, 2975) /
23464 &0.155814E-03,0.158287E-03,0.155901E-03,0.155814E-03,0.630580E-02,
23465 &0.155371E-05,0.108535E+00,0.870870E-01,0.131535E-03,0.135909E-03,
23466 &0.131680E-03,0.131535E-03,0.547867E-02,0.304952E-05,0.959260E-01,
23467 &0.754985E-01,0.111183E-03,0.116980E-03,0.111366E-03,0.111183E-03,
23468 &0.473794E-02,0.433106E-05,0.845828E-01,0.653163E-01,0.940433E-04,
23469 &0.100851E-03,0.942493E-04,0.940433E-04,0.407647E-02,0.533613E-05,
23470 &0.744017E-01,0.563870E-01,0.795843E-04,0.870596E-04,0.798007E-04,
23471 &0.795843E-04,0.349165E-02,0.606691E-05,0.652864E-01,0.485720E-01,
23472 &0.673476E-04,0.752069E-04,0.675656E-04,0.673476E-04,0.297273E-02,
23473 &0.652898E-05,0.571466E-01,0.417472E-01,0.569700E-04,0.649812E-04,
23474 &0.571831E-04,0.569700E-04,0.251732E-02,0.675028E-05,0.498975E-01,
23475 &0.358008E-01,0.481618E-04,0.561391E-04,0.483654E-04,0.481618E-04,
23476 &0.212754E-02,0.677236E-05,0.434594E-01,0.306320E-01,0.406746E-04,
23477 &0.484724E-04,0.408657E-04,0.406746E-04,0.179059E-02,0.662814E-05,
23478 &0.377578E-01,0.261500E-01,0.343050E-04,0.418123E-04,0.344818E-04,
23479 &0.343050E-04,0.149563E-02,0.635273E-05,0.327229E-01,0.222734E-01,
23480 &0.288923E-04,0.360279E-04,0.290540E-04,0.288923E-04,0.124695E-02/
23481 DATA (DL(K),K= 2976, 3060) /
23482 &0.598767E-05,0.282894E-01,0.189287E-01,0.242960E-04,0.310036E-04,
23483 &0.244423E-04,0.242960E-04,0.104112E-02,0.556344E-05,0.243968E-01,
23484 &0.160504E-01,0.203920E-04,0.266363E-04,0.205232E-04,0.203920E-04,
23485 &0.863677E-03,0.510070E-05,0.209890E-01,0.135797E-01,0.170822E-04,
23486 &0.228449E-04,0.171989E-04,0.170822E-04,0.711641E-03,0.462338E-05,
23487 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23488 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23489 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23490 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23491 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23492 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23493 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23494 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23495 &0.105155E+00,0.752467E-01,0.719932E-04,0.719932E-04,0.719932E-04,
23496 &0.719932E-04,0.328057E-02,-.758942E-18,0.920856E-01,0.645455E-01,
23497 &0.592305E-04,0.615087E-04,0.592802E-04,0.592305E-04,0.295327E-02,
23498 &0.945234E-07,0.804695E-01,0.552770E-01,0.489125E-04,0.528632E-04/
23499 DATA (DL(K),K= 3061, 3145) /
23500 &0.489946E-04,0.489125E-04,0.261804E-02,0.365139E-06,0.701499E-01,
23501 &0.472409E-01,0.404786E-04,0.456186E-04,0.405807E-04,0.404786E-04,
23502 &0.229460E-02,0.686912E-06,0.610049E-01,0.402864E-01,0.335367E-04,
23503 &0.394631E-04,0.336495E-04,0.335367E-04,0.198445E-02,0.981070E-06,
23504 &0.529201E-01,0.342803E-01,0.278134E-04,0.342044E-04,0.279301E-04,
23505 &0.278134E-04,0.169772E-02,0.122521E-05,0.457907E-01,0.291037E-01,
23506 &0.230821E-04,0.296833E-04,0.231978E-04,0.230821E-04,0.144575E-02,
23507 &0.140819E-05,0.395205E-01,0.246522E-01,0.191553E-04,0.257661E-04,
23508 &0.192666E-04,0.191553E-04,0.122125E-02,0.152152E-05,0.340212E-01,
23509 &0.208330E-01,0.158874E-04,0.223546E-04,0.159921E-04,0.158874E-04,
23510 &0.101912E-02,0.156880E-05,0.292116E-01,0.175644E-01,0.131678E-04,
23511 &0.193783E-04,0.132645E-04,0.131678E-04,0.847586E-03,0.156432E-05,
23512 &0.250173E-01,0.147740E-01,0.109029E-04,0.167762E-04,0.109910E-04,
23513 &0.109029E-04,0.705515E-03,0.151845E-05,0.213702E-01,0.123979E-01,
23514 &0.901273E-05,0.144953E-04,0.909200E-05,0.901273E-05,0.581767E-03,
23515 &0.143817E-05,0.182083E-01,0.103797E-01,0.743733E-05,0.124978E-04,
23516 &0.750792E-05,0.743733E-05,0.475483E-03,0.133574E-05,0.154751E-01/
23517 DATA (DL(K),K= 3146, 3230) /
23518 &0.867011E-02,0.612722E-05,0.107517E-04,0.618950E-05,0.612722E-05,
23519 &0.390116E-03,0.122183E-05,0.131193E-01,0.722560E-02,0.503734E-05,
23520 &0.922584E-05,0.509185E-05,0.503734E-05,0.319980E-03,0.110130E-05,
23521 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23522 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23523 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23524 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23525 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23526 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23527 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23528 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23529 &0.754424E-01,0.449848E-01,0.236444E-04,0.236444E-04,0.236444E-04,
23530 &0.236444E-04,0.129291E-02,0.113079E-17,0.650429E-01,0.379660E-01,
23531 &0.187739E-04,0.207130E-04,0.187990E-04,0.187739E-04,0.124038E-02,
23532 &-.327995E-06,0.559588E-01,0.319936E-01,0.149625E-04,0.182671E-04,
23533 &0.150033E-04,0.149625E-04,0.113497E-02,-.464337E-06,0.480234E-01,
23534 &0.269030E-01,0.119484E-04,0.161746E-04,0.119982E-04,0.119484E-04/
23535 DATA (DL(K),K= 3231, 3315) /
23536 &0.100877E-02,-.490618E-06,0.411091E-01,0.225716E-01,0.954833E-05,
23537 &0.143391E-04,0.960250E-05,0.954833E-05,0.883852E-03,-.461770E-06,
23538 &0.350995E-01,0.188947E-01,0.763738E-05,0.127129E-04,0.769248E-05,
23539 &0.763738E-05,0.760077E-03,-.403363E-06,0.298897E-01,0.157798E-01,
23540 &0.611070E-05,0.112548E-04,0.616439E-05,0.611070E-05,0.639505E-03,
23541 &-.335607E-06,0.253856E-01,0.131470E-01,0.488993E-05,0.994021E-05,
23542 &0.494070E-05,0.488993E-05,0.534131E-03,-.267652E-06,0.215026E-01,
23543 &0.109271E-01,0.391276E-05,0.875190E-05,0.395967E-05,0.391276E-05,
23544 &0.445478E-03,-.205292E-06,0.181648E-01,0.906007E-02,0.312720E-05,
23545 &0.767418E-05,0.316978E-05,0.312720E-05,0.366232E-03,-.154024E-06,
23546 &0.153041E-01,0.749382E-02,0.249633E-05,0.670002E-05,0.253440E-05,
23547 &0.249633E-05,0.297435E-03,-.112673E-06,0.128596E-01,0.618334E-02,
23548 &0.199074E-05,0.582360E-05,0.202435E-05,0.199074E-05,0.242305E-03,
23549 &-.794410E-07,0.107770E-01,0.508977E-02,0.158457E-05,0.503733E-05,
23550 &0.161393E-05,0.158457E-05,0.196927E-03,-.546702E-07,0.900806E-02,
23551 &0.417964E-02,0.125888E-05,0.433619E-05,0.128428E-05,0.125888E-05,
23552 &0.158171E-03,-.364714E-07,0.751006E-02,0.342418E-02,0.998674E-06/
23553 DATA (DL(K),K= 3316, 3400) /
23554 &0.371518E-05,0.102046E-05,0.998674E-06,0.126865E-03,-.228706E-07,
23555 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23556 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23557 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23558 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23559 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23560 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23561 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23562 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23563 &0.496787E-01,0.236961E-01,0.607312E-05,0.607312E-05,0.607312E-05,
23564 &0.607312E-05,0.415108E-03,-.140523E-17,0.420445E-01,0.196196E-01,
23565 &0.443589E-05,0.603481E-05,0.444683E-05,0.443589E-05,0.444425E-03,
23566 &-.375397E-06,0.355108E-01,0.162223E-01,0.321766E-05,0.587645E-05,
23567 &0.323504E-05,0.321766E-05,0.432635E-03,-.593989E-06,0.299148E-01,
23568 &0.133836E-01,0.231504E-05,0.562250E-05,0.233581E-05,0.231504E-05,
23569 &0.395801E-03,-.699904E-06,0.251339E-01,0.110157E-01,0.164651E-05,
23570 &0.526880E-05,0.166853E-05,0.164651E-05,0.344925E-03,-.733095E-06/
23571 DATA (DL(K),K= 3401, 3485) /
23572 &0.210605E-01,0.904539E-02,0.115940E-05,0.485739E-05,0.118122E-05,
23573 &0.115940E-05,0.294439E-03,-.715193E-06,0.175989E-01,0.740944E-02,
23574 &0.808365E-06,0.441709E-05,0.829075E-06,0.808365E-06,0.249093E-03,
23575 &-.665420E-06,0.146656E-01,0.605433E-02,0.555563E-06,0.396078E-05,
23576 &0.574607E-06,0.555563E-06,0.205675E-03,-.600648E-06,0.121872E-01,
23577 &0.493466E-02,0.375914E-06,0.350822E-05,0.393011E-06,0.375914E-06,
23578 &0.166757E-03,-.529210E-06,0.100993E-01,0.401191E-02,0.250032E-06,
23579 &0.307359E-05,0.265094E-06,0.250032E-06,0.135196E-03,-.456996E-06,
23580 &0.834582E-02,0.325348E-02,0.162261E-06,0.266488E-05,0.175325E-06,
23581 &0.162261E-06,0.108862E-03,-.388821E-06,0.687767E-02,0.263179E-02,
23582 &0.102273E-06,0.228913E-05,0.113453E-06,0.102273E-06,0.865539E-04,
23583 &-.326325E-06,0.565221E-02,0.212357E-02,0.620694E-07,0.194975E-05,
23584 &0.715290E-07,0.620694E-07,0.687156E-04,-.270547E-06,0.463248E-02,
23585 &0.170926E-02,0.351992E-07,0.164711E-05,0.431226E-07,0.351992E-07,
23586 &0.543744E-04,-.222379E-06,0.378655E-02,0.137242E-02,0.178902E-07,
23587 &0.138124E-05,0.244675E-07,0.178902E-07,0.426626E-04,-.181158E-06,
23588 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23589 DATA (DL(K),K= 3486, 3570) /
23590 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23591 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23592 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23593 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23594 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23595 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23596 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23597 &0.286141E-01,0.102357E-01,0.105702E-05,0.105702E-05,0.105702E-05,
23598 &0.105702E-05,0.963318E-04,0.591070E-18,0.236608E-01,0.827483E-02,
23599 &0.548552E-06,0.163293E-05,0.551993E-06,0.548552E-06,0.133058E-03,
23600 &-.268677E-06,0.195282E-01,0.668247E-02,0.238780E-06,0.183459E-05,
23601 &0.243802E-06,0.238780E-06,0.135119E-03,-.393414E-06,0.160742E-01,
23602 &0.538444E-02,0.599864E-07,0.183277E-05,0.655085E-07,0.599864E-07,
23603 &0.124554E-03,-.428349E-06,0.131940E-01,0.432750E-02,-.392825E-07,
23604 &0.172071E-05,-.338391E-07,-.392825E-07,0.111121E-03,-.415550E-06,
23605 &0.107996E-01,0.346954E-02,-.875089E-07,0.154604E-05,-.824926E-07,
23606 &-.875089E-07,0.941854E-04,-.376855E-06,0.881435E-02,0.277463E-02/
23607 DATA (DL(K),K= 3571, 3655) /
23608 &-.103962E-06,0.135013E-05,-.995446E-07,-.103962E-06,0.772195E-04,
23609 &-.326008E-06,0.717317E-02,0.221313E-02,-.102844E-06,0.115335E-05,
23610 &-.990733E-07,-.102844E-06,0.626565E-04,-.272858E-06,0.582050E-02,
23611 &0.176061E-02,-.929503E-07,0.967229E-06,-.898064E-07,-.929503E-07,
23612 &0.499930E-04,-.222828E-06,0.470908E-02,0.139692E-02,-.791495E-07,
23613 &0.800414E-06,-.765797E-07,-.791495E-07,0.394181E-04,-.178141E-06,
23614 &0.379875E-02,0.110542E-02,-.647230E-07,0.655119E-06,-.626567E-07,
23615 &-.647230E-07,0.309999E-04,-.140000E-06,0.305549E-02,0.872447E-03,
23616 &-.515215E-07,0.530834E-06,-.498829E-07,-.515215E-07,0.240354E-04,
23617 &-.108633E-06,0.245058E-02,0.686769E-03,-.400234E-07,0.426835E-06,
23618 &-.387401E-07,-.400234E-07,0.184613E-04,-.832544E-07,0.195984E-02,
23619 &0.539209E-03,-.304312E-07,0.341169E-06,-.294373E-07,-.304312E-07,
23620 &0.143512E-04,-.630818E-07,0.156297E-02,0.422273E-03,-.228633E-07,
23621 &0.271199E-06,-.221014E-07,-.228633E-07,0.110898E-04,-.474683E-07,
23622 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23623 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23624 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23625 DATA (DL(K),K= 3656, 3740) /
23626 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23627 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23628 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23629 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23630 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23631 &0.129345E-01,0.308444E-02,0.903693E-07,0.903693E-07,0.903693E-07,
23632 &0.903693E-07,0.123538E-04,-.166230E-18,0.103598E-01,0.241354E-02,
23633 &0.155648E-06,-.205296E-06,0.154889E-06,0.155648E-06,0.267249E-04,
23634 &0.880707E-07,0.828507E-02,0.188764E-02,0.176333E-06,-.341498E-06,
23635 &0.175220E-06,0.176333E-06,0.306432E-04,0.125718E-06,0.660736E-02,
23636 &0.147304E-02,0.173444E-06,-.383695E-06,0.172215E-06,0.173444E-06,
23637 &0.280787E-04,0.135578E-06,0.525320E-02,0.114618E-02,0.158651E-06,
23638 &-.373371E-06,0.157437E-06,0.158651E-06,0.243526E-04,0.130412E-06,
23639 &0.416429E-02,0.889584E-03,0.137131E-06,-.333468E-06,0.136012E-06,
23640 &0.137131E-06,0.203463E-04,0.116115E-06,0.329102E-02,0.688580E-03,
23641 &0.113839E-06,-.280874E-06,0.112853E-06,0.113839E-06,0.161038E-04,
23642 &0.982305E-07,0.259282E-02,0.531508E-03,0.914374E-07,-.225427E-06/
23643 DATA (DL(K),K= 3741, 3825) /
23644 &0.905971E-07,0.914374E-07,0.125639E-04,0.798741E-07,0.203641E-02,
23645 &0.409120E-03,0.709595E-07,-.173123E-06,0.702607E-07,0.709595E-07,
23646 &0.979247E-05,0.624138E-07,0.159441E-02,0.314027E-03,0.532256E-07,
23647 &-.127272E-06,0.526566E-07,0.532256E-07,0.741899E-05,0.469253E-07,
23648 &0.124447E-02,0.240357E-03,0.385509E-07,-.888851E-07,0.380956E-07,
23649 &0.385509E-07,0.554070E-05,0.339174E-07,0.968328E-03,0.183454E-03,
23650 &0.267272E-07,-.580277E-07,0.263687E-07,0.267272E-07,0.420032E-05,
23651 &0.233280E-07,0.751159E-03,0.139632E-03,0.174605E-07,-.342016E-07,
23652 &0.171822E-07,0.174605E-07,0.315522E-05,0.149727E-07,0.580936E-03,
23653 &0.105986E-03,0.104515E-07,-.164567E-07,0.102383E-07,0.104515E-07,
23654 &0.230829E-05,0.863527E-08,0.447955E-03,0.802293E-04,0.531954E-08,
23655 &-.376312E-08,0.515829E-08,0.531954E-08,0.170771E-05,0.399662E-08,
23656 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23657 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23658 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23659 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23660 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23661 DATA (DL(K),K= 3826, 3910) /
23662 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23663 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23664 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23665 &0.324478E-02,0.386879E-03,0.135983E-08,0.135983E-08,0.135983E-08,
23666 &0.135983E-08,0.371787E-06,-.274599E-19,0.246219E-02,0.286505E-03,
23667 &-.106852E-06,0.327611E-06,-.106589E-06,-.106852E-06,0.231631E-05,
23668 &-.107814E-06,0.186777E-02,0.212413E-03,-.161566E-06,0.492001E-06,
23669 &-.161179E-06,-.161566E-06,0.311589E-05,-.162249E-06,0.141322E-02,
23670 &0.157212E-03,-.183398E-06,0.557106E-06,-.182972E-06,-.183398E-06,
23671 &0.267943E-05,-.183884E-06,0.106518E-02,0.115892E-03,-.185231E-06,
23672 &0.562185E-06,-.184809E-06,-.185231E-06,0.203027E-05,-.185573E-06,
23673 &0.800350E-03,0.851995E-04,-.174680E-06,0.530096E-06,-.174290E-06,
23674 &-.174680E-06,0.165870E-05,-.174922E-06,0.599444E-03,0.624676E-04,
23675 &-.157644E-06,0.478420E-06,-.157300E-06,-.157644E-06,0.130112E-05,
23676 &-.157815E-06,0.447433E-03,0.456556E-04,-.137838E-06,0.418429E-06,
23677 &-.137543E-06,-.137838E-06,0.903220E-06,-.137958E-06,0.332836E-03,
23678 &0.332643E-04,-.117616E-06,0.357179E-06,-.117368E-06,-.117616E-06/
23679 DATA (DL(K),K= 3911, 3995) /
23680 &0.636187E-06,-.117699E-06,0.246754E-03,0.241622E-04,-.984560E-07,
23681 &0.299077E-06,-.982529E-07,-.984560E-07,0.481221E-06,-.985144E-07,
23682 &0.182315E-03,0.174961E-04,-.811089E-07,0.246465E-06,-.809446E-07,
23683 &-.811089E-07,0.342859E-06,-.811495E-07,0.134250E-03,0.126299E-04,
23684 &-.659052E-07,0.200354E-06,-.657742E-07,-.659052E-07,0.227840E-06,
23685 &-.659334E-07,0.985288E-04,0.908931E-05,-.529252E-07,0.160947E-06,
23686 &-.528218E-07,-.529252E-07,0.161641E-06,-.529447E-07,0.720750E-04,
23687 &0.652153E-05,-.420621E-07,0.127943E-06,-.419814E-07,-.420621E-07,
23688 &0.119540E-06,-.420756E-07,0.525538E-04,0.466527E-05,-.331141E-07,
23689 &0.100758E-06,-.330516E-07,-.331141E-07,0.808991E-07,-.331233E-07,
23690 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23691 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23692 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23693 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23694 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23695 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23696 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23697 DATA (DL(K),K= 3996, 4000) /
23698 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23699C
23700 ANS = 0.
23701 IF (X.GT.0.9985) RETURN
23702 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
23703C
23704 IS = S/DELTA+1
23705 IS1 = IS+1
23706 DO 1 L=1,25
23707 KL = L+NDRV*25
23708 F1(L) = GF(I,IS,KL)
23709 F2(L) = GF(I,IS1,KL)
23710 1 CONTINUE
23711 A1 = DT_CKMTFF(X,F1)
23712 A2 = DT_CKMTFF(X,F2)
23713C A1=ALOG(A1)
23714C A2=ALOG(A2)
23715 S1 = (IS-1)*DELTA
23716 S2 = S1+DELTA
23717 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
23718C ANS=EXP(ANS)
23719 RETURN
23720 END
23721C
23722C
23723
23724*$ CREATE DT_CKMTPR.FOR
23725*COPY DT_CKMTPR
23726 SUBROUTINE DT_CKMTPR(I,NDRV,X,S,ANS)
23727C
23728C**********************************************************************
23729C Proton - PDFs
23730C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
23731C ANS = PDF(I)
23732C This version by S. Roesler, 31.01.96
23733C**********************************************************************
23734
23735 SAVE
23736 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
23737 EQUIVALENCE (GF(1,1,1),DL(1))
23738 DATA DELTA/.10/
23739C
23740 DATA (DL(K),K= 1, 85) /
23741 &0.367759E+00,0.350609E+00,0.325356E+00,0.325356E+00,0.325356E+00,
23742 &0.325356E+00,0.533117E+01,0.138778E-16,0.427988E+00,0.409718E+00,
23743 &0.382948E+00,0.382920E+00,0.382933E+00,0.382948E+00,0.686279E+01,
23744 &0.611113E-01,0.494752E+00,0.475328E+00,0.447011E+00,0.446959E+00,
23745 &0.446984E+00,0.447011E+00,0.855688E+01,0.128659E+00,0.568248E+00,
23746 &0.547637E+00,0.517743E+00,0.517671E+00,0.517705E+00,0.517743E+00,
23747 &0.104074E+02,0.202846E+00,0.648622E+00,0.626792E+00,0.595289E+00,
23748 &0.595201E+00,0.595244E+00,0.595289E+00,0.124065E+02,0.283819E+00,
23749 &0.735974E+00,0.712890E+00,0.679748E+00,0.679648E+00,0.679696E+00,
23750 &0.679748E+00,0.145441E+02,0.371679E+00,0.830359E+00,0.805987E+00,
23751 &0.771173E+00,0.771066E+00,0.771119E+00,0.771173E+00,0.168081E+02,
23752 &0.466485E+00,0.931778E+00,0.906084E+00,0.869566E+00,0.869456E+00,
23753 &0.869511E+00,0.869566E+00,0.191850E+02,0.568240E+00,0.104018E+01,
23754 &0.101313E+01,0.974873E+00,0.974763E+00,0.974819E+00,0.974873E+00,
23755 &0.216593E+02,0.676890E+00,0.115544E+01,0.112700E+01,0.108698E+01,
23756 &0.108687E+01,0.108693E+01,0.108698E+01,0.242146E+02,0.792321E+00,
23757 &0.127738E+01,0.124751E+01,0.120570E+01,0.120560E+01,0.120565E+01/
23758 DATA (DL(K),K= 86, 170) /
23759 &0.120570E+01,0.268333E+02,0.914356E+00,0.140577E+01,0.137444E+01,
23760 &0.133079E+01,0.133070E+01,0.133075E+01,0.133079E+01,0.294970E+02,
23761 &0.104275E+01,0.154028E+01,0.150745E+01,0.146194E+01,0.146187E+01,
23762 &0.146192E+01,0.146194E+01,0.321867E+02,0.117720E+01,0.168054E+01,
23763 &0.164619E+01,0.159879E+01,0.159874E+01,0.159877E+01,0.159879E+01,
23764 &0.348836E+02,0.131732E+01,0.182613E+01,0.179020E+01,0.174088E+01,
23765 &0.174086E+01,0.174088E+01,0.174088E+01,0.375685E+02,0.146269E+01,
23766 &0.197653E+01,0.193901E+01,0.188774E+01,0.188774E+01,0.188775E+01,
23767 &0.188774E+01,0.402228E+02,0.161282E+01,0.213121E+01,0.209205E+01,
23768 &0.203880E+01,0.203884E+01,0.203884E+01,0.203880E+01,0.428285E+02,
23769 &0.176714E+01,0.228955E+01,0.224873E+01,0.219348E+01,0.219355E+01,
23770 &0.219353E+01,0.219348E+01,0.453682E+02,0.192507E+01,0.245093E+01,
23771 &0.240840E+01,0.235113E+01,0.235123E+01,0.235120E+01,0.235113E+01,
23772 &0.478258E+02,0.208597E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23773 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23774 &0.349839E+00,0.324128E+00,0.286363E+00,0.286363E+00,0.286363E+00,
23775 &0.286363E+00,0.469694E+01,0.000000E+00,0.398361E+00,0.371065E+00/
23776 DATA (DL(K),K= 171, 255) /
23777 &0.331239E+00,0.331213E+00,0.331227E+00,0.331239E+00,0.586152E+01,
23778 &0.481683E-01,0.451010E+00,0.422096E+00,0.380182E+00,0.380137E+00,
23779 &0.380161E+00,0.380182E+00,0.711349E+01,0.100378E+00,0.507782E+00,
23780 &0.477215E+00,0.433187E+00,0.433128E+00,0.433160E+00,0.433187E+00,
23781 &0.844371E+01,0.156627E+00,0.568644E+00,0.536390E+00,0.490220E+00,
23782 &0.490152E+00,0.490190E+00,0.490220E+00,0.984291E+01,0.216886E+00,
23783 &0.633517E+00,0.599543E+00,0.551204E+00,0.551133E+00,0.551174E+00,
23784 &0.551204E+00,0.113005E+02,0.281079E+00,0.702295E+00,0.666565E+00,
23785 &0.616031E+00,0.615963E+00,0.616004E+00,0.616031E+00,0.128050E+02,
23786 &0.349101E+00,0.774832E+00,0.737311E+00,0.684556E+00,0.684495E+00,
23787 &0.684535E+00,0.684556E+00,0.143447E+02,0.420809E+00,0.850945E+00,
23788 &0.811598E+00,0.756596E+00,0.756547E+00,0.756583E+00,0.756596E+00,
23789 &0.159073E+02,0.496022E+00,0.930413E+00,0.889207E+00,0.831933E+00,
23790 &0.831901E+00,0.831931E+00,0.831933E+00,0.174801E+02,0.574524E+00,
23791 &0.101298E+01,0.969882E+00,0.910312E+00,0.910301E+00,0.910324E+00,
23792 &0.910312E+00,0.190508E+02,0.656061E+00,0.109836E+01,0.105333E+01,
23793 &0.991445E+00,0.991459E+00,0.991471E+00,0.991445E+00,0.206070E+02/
23794 DATA (DL(K),K= 256, 340) /
23795 &0.740345E+00,0.118622E+01,0.113923E+01,0.107501E+01,0.107505E+01,
23796 &0.107505E+01,0.107501E+01,0.221368E+02,0.827056E+00,0.127622E+01,
23797 &0.122724E+01,0.116065E+01,0.116073E+01,0.116072E+01,0.116065E+01,
23798 &0.236287E+02,0.915845E+00,0.136797E+01,0.131696E+01,0.124800E+01,
23799 &0.124812E+01,0.124809E+01,0.124800E+01,0.250721E+02,0.100634E+01,
23800 &0.146107E+01,0.140801E+01,0.133666E+01,0.133681E+01,0.133677E+01,
23801 &0.133666E+01,0.264571E+02,0.109813E+01,0.155511E+01,0.149996E+01,
23802 &0.142621E+01,0.142641E+01,0.142634E+01,0.142621E+01,0.277747E+02,
23803 &0.119081E+01,0.164964E+01,0.159239E+01,0.151622E+01,0.151646E+01,
23804 &0.151638E+01,0.151622E+01,0.290168E+02,0.128396E+01,0.174424E+01,
23805 &0.168485E+01,0.160626E+01,0.160655E+01,0.160645E+01,0.160626E+01,
23806 &0.301765E+02,0.137713E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23807 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23808 &0.345345E+00,0.306823E+00,0.250518E+00,0.250518E+00,0.250518E+00,
23809 &0.250518E+00,0.411726E+01,-.138778E-16,0.384210E+00,0.343514E+00,
23810 &0.284500E+00,0.284487E+00,0.284496E+00,0.284500E+00,0.496835E+01,
23811 &0.371582E-01,0.425419E+00,0.382518E+00,0.320782E+00,0.320762E+00/
23812 DATA (DL(K),K= 341, 425) /
23813 &0.320777E+00,0.320782E+00,0.585504E+01,0.765988E-01,0.468853E+00,
23814 &0.423717E+00,0.359246E+00,0.359226E+00,0.359243E+00,0.359246E+00,
23815 &0.676824E+01,0.118207E+00,0.514392E+00,0.466990E+00,0.399771E+00,
23816 &0.399758E+00,0.399775E+00,0.399771E+00,0.769967E+01,0.161865E+00,
23817 &0.561883E+00,0.512186E+00,0.442209E+00,0.442208E+00,0.442222E+00,
23818 &0.442209E+00,0.864071E+01,0.207426E+00,0.611162E+00,0.559140E+00,
23819 &0.486395E+00,0.486411E+00,0.486420E+00,0.486395E+00,0.958280E+01,
23820 &0.254727E+00,0.662044E+00,0.607667E+00,0.532145E+00,0.532185E+00,
23821 &0.532185E+00,0.532145E+00,0.105176E+02,0.303587E+00,0.714325E+00,
23822 &0.657566E+00,0.579261E+00,0.579328E+00,0.579318E+00,0.579261E+00,
23823 &0.114370E+02,0.353808E+00,0.767786E+00,0.708618E+00,0.627526E+00,
23824 &0.627625E+00,0.627603E+00,0.627526E+00,0.123333E+02,0.405174E+00,
23825 &0.822195E+00,0.760591E+00,0.676711E+00,0.676846E+00,0.676810E+00,
23826 &0.676711E+00,0.131994E+02,0.457458E+00,0.877307E+00,0.813242E+00,
23827 &0.726575E+00,0.726750E+00,0.726697E+00,0.726575E+00,0.140286E+02,
23828 &0.510420E+00,0.932865E+00,0.866317E+00,0.776867E+00,0.777085E+00,
23829 &0.777015E+00,0.776867E+00,0.148150E+02,0.563809E+00,0.988608E+00/
23830 DATA (DL(K),K= 426, 510) /
23831 &0.919556E+00,0.827330E+00,0.827594E+00,0.827505E+00,0.827330E+00,
23832 &0.155533E+02,0.617368E+00,0.104427E+01,0.972694E+00,0.877703E+00,
23833 &0.878016E+00,0.877907E+00,0.877703E+00,0.162391E+02,0.670837E+00,
23834 &0.109958E+01,0.102547E+01,0.927723E+00,0.928088E+00,0.927957E+00,
23835 &0.927723E+00,0.168687E+02,0.723954E+00,0.115428E+01,0.107761E+01,
23836 &0.977132E+00,0.977550E+00,0.977397E+00,0.977132E+00,0.174391E+02,
23837 &0.776458E+00,0.120809E+01,0.112886E+01,0.102567E+01,0.102615E+01,
23838 &0.102597E+01,0.102567E+01,0.179481E+02,0.828097E+00,0.126078E+01,
23839 &0.117898E+01,0.107310E+01,0.107363E+01,0.107343E+01,0.107310E+01,
23840 &0.183942E+02,0.878621E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23841 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23842 &0.357586E+00,0.299938E+00,0.216504E+00,0.216504E+00,0.216504E+00,
23843 &0.216504E+00,0.357260E+01,-.277556E-16,0.388529E+00,0.327984E+00,
23844 &0.241161E+00,0.241168E+00,0.241168E+00,0.241161E+00,0.415893E+01,
23845 &0.278429E-01,0.420472E+00,0.357015E+00,0.266823E+00,0.266844E+00,
23846 &0.266842E+00,0.266823E+00,0.474689E+01,0.566783E-01,0.453271E+00,
23847 &0.386886E+00,0.293349E+00,0.293389E+00,0.293381E+00,0.293349E+00/
23848 DATA (DL(K),K= 511, 595) /
23849 &0.532982E+01,0.863668E-01,0.486793E+00,0.417464E+00,0.320608E+00,
23850 &0.320673E+00,0.320657E+00,0.320608E+00,0.590219E+01,0.116779E+00,
23851 &0.520887E+00,0.448601E+00,0.348454E+00,0.348549E+00,0.348523E+00,
23852 &0.348454E+00,0.645868E+01,0.147773E+00,0.555403E+00,0.480149E+00,
23853 &0.376740E+00,0.376870E+00,0.376831E+00,0.376740E+00,0.699440E+01,
23854 &0.179201E+00,0.590183E+00,0.511950E+00,0.405314E+00,0.405482E+00,
23855 &0.405429E+00,0.405314E+00,0.750493E+01,0.210912E+00,0.625064E+00,
23856 &0.543845E+00,0.434019E+00,0.434229E+00,0.434159E+00,0.434019E+00,
23857 &0.798636E+01,0.242750E+00,0.659882E+00,0.575673E+00,0.462696E+00,
23858 &0.462952E+00,0.462864E+00,0.462696E+00,0.843528E+01,0.274558E+00,
23859 &0.694472E+00,0.607271E+00,0.491188E+00,0.491492E+00,0.491385E+00,
23860 &0.491188E+00,0.884885E+01,0.306178E+00,0.728669E+00,0.638478E+00,
23861 &0.519337E+00,0.519690E+00,0.519563E+00,0.519337E+00,0.922480E+01,
23862 &0.337451E+00,0.762311E+00,0.669133E+00,0.546987E+00,0.547392E+00,
23863 &0.547244E+00,0.546987E+00,0.956139E+01,0.368224E+00,0.795240E+00,
23864 &0.699084E+00,0.573988E+00,0.574447E+00,0.574277E+00,0.573988E+00,
23865 &0.985744E+01,0.398346E+00,0.827302E+00,0.728181E+00,0.600196E+00/
23866 DATA (DL(K),K= 596, 680) /
23867 &0.600710E+00,0.600518E+00,0.600196E+00,0.101123E+02,0.427671E+00,
23868 &0.858354E+00,0.756282E+00,0.625475E+00,0.626044E+00,0.625829E+00,
23869 &0.625475E+00,0.103258E+02,0.456064E+00,0.888257E+00,0.783256E+00,
23870 &0.649696E+00,0.650321E+00,0.650083E+00,0.649696E+00,0.104982E+02,
23871 &0.483395E+00,0.916887E+00,0.808981E+00,0.672742E+00,0.673422E+00,
23872 &0.673161E+00,0.672742E+00,0.106303E+02,0.509546E+00,0.944126E+00,
23873 &0.833345E+00,0.694506E+00,0.695243E+00,0.694958E+00,0.694506E+00,
23874 &0.107231E+02,0.534410E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23875 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23876 &0.390721E+00,0.304671E+00,0.182562E+00,0.182562E+00,0.182562E+00,
23877 &0.182562E+00,0.303699E+01,0.693889E-17,0.414806E+00,0.325059E+00,
23878 &0.199103E+00,0.199133E+00,0.199124E+00,0.199103E+00,0.339971E+01,
23879 &0.198528E-01,0.438929E+00,0.345508E+00,0.215797E+00,0.215862E+00,
23880 &0.215842E+00,0.215797E+00,0.374624E+01,0.398420E-01,0.462973E+00,
23881 &0.365903E+00,0.232531E+00,0.232635E+00,0.232601E+00,0.232531E+00,
23882 &0.407322E+01,0.598565E-01,0.486835E+00,0.386142E+00,0.249208E+00,
23883 &0.249352E+00,0.249304E+00,0.249208E+00,0.437817E+01,0.797987E-01/
23884 DATA (DL(K),K= 681, 765) /
23885 &0.510407E+00,0.406123E+00,0.265725E+00,0.265913E+00,0.265849E+00,
23886 &0.265725E+00,0.465901E+01,0.995694E-01,0.533588E+00,0.425746E+00,
23887 &0.281986E+00,0.282220E+00,0.282139E+00,0.281986E+00,0.491410E+01,
23888 &0.119072E+00,0.556274E+00,0.444912E+00,0.297897E+00,0.298178E+00,
23889 &0.298079E+00,0.297897E+00,0.514220E+01,0.138212E+00,0.578369E+00,
23890 &0.463528E+00,0.313366E+00,0.313696E+00,0.313578E+00,0.313366E+00,
23891 &0.534249E+01,0.156900E+00,0.599777E+00,0.481503E+00,0.328308E+00,
23892 &0.328688E+00,0.328549E+00,0.328308E+00,0.551456E+01,0.175048E+00,
23893 &0.620409E+00,0.498752E+00,0.342642E+00,0.343071E+00,0.342913E+00,
23894 &0.342642E+00,0.565833E+01,0.192575E+00,0.640181E+00,0.515196E+00,
23895 &0.356292E+00,0.356770E+00,0.356592E+00,0.356292E+00,0.577410E+01,
23896 &0.209407E+00,0.659017E+00,0.530764E+00,0.369190E+00,0.369718E+00,
23897 &0.369519E+00,0.369190E+00,0.586243E+01,0.225474E+00,0.676845E+00,
23898 &0.545389E+00,0.381275E+00,0.381852E+00,0.381633E+00,0.381275E+00,
23899 &0.592421E+01,0.240714E+00,0.693604E+00,0.559015E+00,0.392493E+00,
23900 &0.393118E+00,0.392880E+00,0.392493E+00,0.596052E+01,0.255072E+00,
23901 &0.709239E+00,0.571593E+00,0.402799E+00,0.403472E+00,0.403213E+00/
23902 DATA (DL(K),K= 766, 850) /
23903 &0.402799E+00,0.597267E+01,0.268502E+00,0.723703E+00,0.583081E+00,
23904 &0.412157E+00,0.412875E+00,0.412597E+00,0.412157E+00,0.596211E+01,
23905 &0.280966E+00,0.736960E+00,0.593447E+00,0.420536E+00,0.421299E+00,
23906 &0.421002E+00,0.420536E+00,0.593045E+01,0.292434E+00,0.748980E+00,
23907 &0.602669E+00,0.427918E+00,0.428723E+00,0.428408E+00,0.427918E+00,
23908 &0.587934E+01,0.302884E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23909 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23910 &0.448390E+00,0.320678E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23911 &0.146415E+00,0.247594E+01,0.000000E+00,0.465760E+00,0.333734E+00,
23912 &0.155974E+00,0.156013E+00,0.156000E+00,0.155974E+00,0.265633E+01,
23913 &0.130329E-01,0.482525E+00,0.346293E+00,0.165233E+00,0.165311E+00,
23914 &0.165285E+00,0.165233E+00,0.281612E+01,0.257304E-01,0.498626E+00,
23915 &0.358294E+00,0.174131E+00,0.174249E+00,0.174209E+00,0.174131E+00,
23916 &0.295484E+01,0.380345E-01,0.514008E+00,0.369688E+00,0.182622E+00,
23917 &0.182779E+00,0.182724E+00,0.182622E+00,0.307242E+01,0.498976E-01,
23918 &0.528624E+00,0.380432E+00,0.190660E+00,0.190856E+00,0.190786E+00,
23919 &0.190660E+00,0.316911E+01,0.612760E-01,0.542428E+00,0.390485E+00/
23920 DATA (DL(K),K= 851, 935) /
23921 &0.198205E+00,0.198441E+00,0.198356E+00,0.198205E+00,0.324538E+01,
23922 &0.721303E-01,0.555382E+00,0.399810E+00,0.205224E+00,0.205498E+00,
23923 &0.205398E+00,0.205224E+00,0.330192E+01,0.824256E-01,0.567448E+00,
23924 &0.408377E+00,0.211687E+00,0.211997E+00,0.211882E+00,0.211687E+00,
23925 &0.333960E+01,0.921319E-01,0.578597E+00,0.416159E+00,0.217568E+00,
23926 &0.217915E+00,0.217784E+00,0.217568E+00,0.335945E+01,0.101224E+00,
23927 &0.588802E+00,0.423136E+00,0.222847E+00,0.223229E+00,0.223084E+00,
23928 &0.222847E+00,0.336262E+01,0.109681E+00,0.598043E+00,0.429293E+00,
23929 &0.227512E+00,0.227928E+00,0.227768E+00,0.227512E+00,0.335036E+01,
23930 &0.117489E+00,0.606305E+00,0.434619E+00,0.231551E+00,0.232000E+00,
23931 &0.231826E+00,0.231551E+00,0.332398E+01,0.124636E+00,0.613579E+00,
23932 &0.439110E+00,0.234962E+00,0.235442E+00,0.235254E+00,0.234962E+00,
23933 &0.328483E+01,0.131119E+00,0.619860E+00,0.442766E+00,0.237745E+00,
23934 &0.238254E+00,0.238053E+00,0.237745E+00,0.323429E+01,0.136936E+00,
23935 &0.625150E+00,0.445594E+00,0.239905E+00,0.240441E+00,0.240228E+00,
23936 &0.239905E+00,0.317371E+01,0.142091E+00,0.629453E+00,0.447603E+00,
23937 &0.241452E+00,0.242014E+00,0.241788E+00,0.241452E+00,0.310443E+01/
23938 DATA (DL(K),K= 936, 1020) /
23939 &0.146594E+00,0.632782E+00,0.448808E+00,0.242400E+00,0.242987E+00,
23940 &0.242749E+00,0.242400E+00,0.302775E+01,0.150456E+00,0.635151E+00,
23941 &0.449228E+00,0.242767E+00,0.243376E+00,0.243127E+00,0.242767E+00,
23942 &0.294491E+01,0.153694E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23943 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23944 &0.528765E+00,0.341825E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23945 &0.105823E+00,0.185069E+01,-.138778E-16,0.538124E+00,0.347118E+00,
23946 &0.109762E+00,0.109780E+00,0.109774E+00,0.109762E+00,0.189644E+01,
23947 &0.738880E-02,0.546541E+00,0.351712E+00,0.113300E+00,0.113336E+00,
23948 &0.113324E+00,0.113300E+00,0.192700E+01,0.143076E-01,0.554014E+00,
23949 &0.355607E+00,0.116431E+00,0.116485E+00,0.116466E+00,0.116431E+00,
23950 &0.194356E+01,0.207515E-01,0.560546E+00,0.358805E+00,0.119150E+00,
23951 &0.119222E+00,0.119196E+00,0.119150E+00,0.194722E+01,0.267179E-01,
23952 &0.566139E+00,0.361311E+00,0.121459E+00,0.121549E+00,0.121515E+00,
23953 &0.121459E+00,0.193921E+01,0.322084E-01,0.570802E+00,0.363134E+00,
23954 &0.123359E+00,0.123467E+00,0.123426E+00,0.123359E+00,0.192071E+01,
23955 &0.372262E-01,0.574542E+00,0.364286E+00,0.124858E+00,0.124983E+00/
23956 DATA (DL(K),K= 1021, 1105) /
23957 &0.124933E+00,0.124858E+00,0.189295E+01,0.417774E-01,0.577372E+00,
23958 &0.364779E+00,0.125961E+00,0.126103E+00,0.126046E+00,0.125961E+00,
23959 &0.185710E+01,0.458703E-01,0.579307E+00,0.364629E+00,0.126681E+00,
23960 &0.126839E+00,0.126774E+00,0.126681E+00,0.181432E+01,0.495154E-01,
23961 &0.580363E+00,0.363857E+00,0.127029E+00,0.127202E+00,0.127130E+00,
23962 &0.127029E+00,0.176571E+01,0.527252E-01,0.580561E+00,0.362483E+00,
23963 &0.127020E+00,0.127208E+00,0.127128E+00,0.127020E+00,0.171231E+01,
23964 &0.555142E-01,0.579923E+00,0.360529E+00,0.126670E+00,0.126872E+00,
23965 &0.126785E+00,0.126670E+00,0.165511E+01,0.578985E-01,0.578474E+00,
23966 &0.358021E+00,0.125998E+00,0.126213E+00,0.126119E+00,0.125998E+00,
23967 &0.159501E+01,0.598958E-01,0.576241E+00,0.354987E+00,0.125022E+00,
23968 &0.125249E+00,0.125148E+00,0.125022E+00,0.153284E+01,0.615248E-01,
23969 &0.573252E+00,0.351453E+00,0.123762E+00,0.124000E+00,0.123893E+00,
23970 &0.123762E+00,0.146934E+01,0.628056E-01,0.569539E+00,0.347450E+00,
23971 &0.122240E+00,0.122488E+00,0.122375E+00,0.122240E+00,0.140517E+01,
23972 &0.637587E-01,0.565134E+00,0.343008E+00,0.120476E+00,0.120733E+00,
23973 &0.120615E+00,0.120476E+00,0.134093E+01,0.644054E-01,0.560071E+00/
23974 DATA (DL(K),K= 1106, 1190) /
23975 &0.338158E+00,0.118493E+00,0.118758E+00,0.118635E+00,0.118493E+00,
23976 &0.127712E+01,0.647671E-01,0.000000E+00,0.000000E+00,0.000000E+00,
23977 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23978 &0.584093E+00,0.349173E+00,0.772117E-01,0.772117E-01,0.772117E-01,
23979 &0.772117E-01,0.140433E+01,0.346945E-17,0.586736E+00,0.349017E+00,
23980 &0.785355E-01,0.785519E-01,0.785448E-01,0.785355E-01,0.139434E+01,
23981 &0.447504E-02,0.588402E+00,0.348237E+00,0.795437E-01,0.795759E-01,
23982 &0.795617E-01,0.795437E-01,0.137550E+01,0.854114E-02,0.589124E+00,
23983 &0.346861E+00,0.802498E-01,0.802970E-01,0.802758E-01,0.802498E-01,
23984 &0.134918E+01,0.122148E-01,0.588930E+00,0.344912E+00,0.806656E-01,
23985 &0.807271E-01,0.806990E-01,0.806656E-01,0.131652E+01,0.155101E-01,
23986 &0.587849E+00,0.342417E+00,0.808055E-01,0.808805E-01,0.808457E-01,
23987 &0.808055E-01,0.127862E+01,0.184435E-01,0.585912E+00,0.339402E+00,
23988 &0.806843E-01,0.807718E-01,0.807306E-01,0.806843E-01,0.123648E+01,
23989 &0.210315E-01,0.583151E+00,0.335894E+00,0.803173E-01,0.804166E-01,
23990 &0.803692E-01,0.803173E-01,0.119104E+01,0.232909E-01,0.579599E+00,
23991 &0.331923E+00,0.797205E-01,0.798308E-01,0.797775E-01,0.797205E-01/
23992 DATA (DL(K),K= 1191, 1275) /
23993 &0.114317E+01,0.252394E-01,0.575288E+00,0.327516E+00,0.789107E-01,
23994 &0.790310E-01,0.789721E-01,0.789107E-01,0.109362E+01,0.268946E-01,
23995 &0.570253E+00,0.322704E+00,0.779045E-01,0.780341E-01,0.779698E-01,
23996 &0.779045E-01,0.104307E+01,0.282745E-01,0.564530E+00,0.317515E+00,
23997 &0.767190E-01,0.768570E-01,0.767878E-01,0.767190E-01,0.992143E+00,
23998 &0.293974E-01,0.558155E+00,0.311981E+00,0.753713E-01,0.755169E-01,
23999 &0.754432E-01,0.753713E-01,0.941341E+00,0.302812E-01,0.551166E+00,
24000 &0.306131E+00,0.738784E-01,0.740308E-01,0.739528E-01,0.738784E-01,
24001 &0.891113E+00,0.309441E-01,0.543599E+00,0.299995E+00,0.722571E-01,
24002 &0.724154E-01,0.723336E-01,0.722571E-01,0.841829E+00,0.314037E-01,
24003 &0.535494E+00,0.293603E+00,0.705237E-01,0.706871E-01,0.706019E-01,
24004 &0.705237E-01,0.793794E+00,0.316774E-01,0.526888E+00,0.286986E+00,
24005 &0.686941E-01,0.688619E-01,0.687736E-01,0.686941E-01,0.747249E+00,
24006 &0.317823E-01,0.517822E+00,0.280172E+00,0.667836E-01,0.669551E-01,
24007 &0.668640E-01,0.667836E-01,0.702381E+00,0.317346E-01,0.508333E+00,
24008 &0.273189E+00,0.648068E-01,0.649814E-01,0.648879E-01,0.648068E-01,
24009 &0.659330E+00,0.315501E-01,0.000000E+00,0.000000E+00,0.000000E+00/
24010 DATA (DL(K),K= 1276, 1360) /
24011 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24012 &0.622739E+00,0.340676E+00,0.509141E-01,0.509141E-01,0.509141E-01,
24013 &0.509141E-01,0.980502E+00,-.173472E-17,0.617764E+00,0.335457E+00,
24014 &0.507607E-01,0.507701E-01,0.507651E-01,0.507607E-01,0.944375E+00,
24015 &0.242386E-02,0.611957E+00,0.329837E+00,0.504236E-01,0.504417E-01,
24016 &0.504321E-01,0.504236E-01,0.905225E+00,0.455851E-02,0.605372E+00,
24017 &0.323853E+00,0.499207E-01,0.499471E-01,0.499328E-01,0.499207E-01,
24018 &0.864035E+00,0.642656E-02,0.598052E+00,0.317537E+00,0.492668E-01,
24019 &0.493008E-01,0.492822E-01,0.492668E-01,0.821557E+00,0.804638E-02,
24020 &0.590044E+00,0.310919E+00,0.484772E-01,0.485183E-01,0.484955E-01,
24021 &0.484772E-01,0.778444E+00,0.943663E-02,0.581391E+00,0.304033E+00,
24022 &0.475665E-01,0.476142E-01,0.475874E-01,0.475665E-01,0.735263E+00,
24023 &0.106150E-01,0.572137E+00,0.296908E+00,0.465487E-01,0.466024E-01,
24024 &0.465720E-01,0.465487E-01,0.692487E+00,0.115984E-01,0.562326E+00,
24025 &0.289573E+00,0.454376E-01,0.454968E-01,0.454629E-01,0.454376E-01,
24026 &0.650510E+00,0.124032E-01,0.552003E+00,0.282060E+00,0.442463E-01,
24027 &0.443103E-01,0.442733E-01,0.442463E-01,0.609652E+00,0.130451E-01/
24028 DATA (DL(K),K= 1361, 1445) /
24029 &0.541210E+00,0.274395E+00,0.429871E-01,0.430555E-01,0.430156E-01,
24030 &0.429871E-01,0.570164E+00,0.135389E-01,0.529991E+00,0.266608E+00,
24031 &0.416720E-01,0.417443E-01,0.417018E-01,0.416720E-01,0.532237E+00,
24032 &0.138989E-01,0.518389E+00,0.258725E+00,0.403123E-01,0.403879E-01,
24033 &0.403431E-01,0.403123E-01,0.496010E+00,0.141386E-01,0.506446E+00,
24034 &0.250772E+00,0.389186E-01,0.389971E-01,0.389501E-01,0.389186E-01,
24035 &0.461573E+00,0.142708E-01,0.494204E+00,0.242775E+00,0.375006E-01,
24036 &0.375815E-01,0.375327E-01,0.375006E-01,0.428979E+00,0.143074E-01,
24037 &0.481705E+00,0.234757E+00,0.360674E-01,0.361503E-01,0.361000E-01,
24038 &0.360674E-01,0.398246E+00,0.142598E-01,0.468990E+00,0.226741E+00,
24039 &0.346276E-01,0.347120E-01,0.346605E-01,0.346276E-01,0.369363E+00,
24040 &0.141385E-01,0.456098E+00,0.218750E+00,0.331887E-01,0.332743E-01,
24041 &0.332216E-01,0.331887E-01,0.342300E+00,0.139532E-01,0.443068E+00,
24042 &0.210804E+00,0.317576E-01,0.318440E-01,0.317905E-01,0.317576E-01,
24043 &0.317005E+00,0.137130E-01,0.000000E+00,0.000000E+00,0.000000E+00,
24044 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24045 &0.631458E+00,0.318714E+00,0.335640E-01,0.335640E-01,0.335640E-01/
24046 DATA (DL(K),K= 1446, 1530) /
24047 &0.335640E-01,0.686773E+00,0.346945E-17,0.620274E+00,0.310241E+00,
24048 &0.329311E-01,0.329377E-01,0.329337E-01,0.329311E-01,0.646559E+00,
24049 &0.135960E-02,0.608504E+00,0.301610E+00,0.322083E-01,0.322210E-01,
24050 &0.322133E-01,0.322083E-01,0.606503E+00,0.252820E-02,0.596205E+00,
24051 &0.292854E+00,0.314099E-01,0.314281E-01,0.314169E-01,0.314099E-01,
24052 &0.567134E+00,0.352543E-02,0.583429E+00,0.284002E+00,0.305470E-01,
24053 &0.305704E-01,0.305558E-01,0.305470E-01,0.528824E+00,0.436693E-02,
24054 &0.570223E+00,0.275080E+00,0.296307E-01,0.296586E-01,0.296411E-01,
24055 &0.296307E-01,0.491848E+00,0.506768E-02,0.556637E+00,0.266115E+00,
24056 &0.286709E-01,0.287030E-01,0.286827E-01,0.286709E-01,0.456422E+00,
24057 &0.564157E-02,0.542717E+00,0.257131E+00,0.276770E-01,0.277128E-01,
24058 &0.276900E-01,0.276770E-01,0.422697E+00,0.610148E-02,0.528511E+00,
24059 &0.248154E+00,0.266578E-01,0.266968E-01,0.266718E-01,0.266578E-01,
24060 &0.390771E+00,0.645942E-02,0.514062E+00,0.239205E+00,0.256210E-01,
24061 &0.256629E-01,0.256359E-01,0.256210E-01,0.360700E+00,0.672653E-02,
24062 &0.499417E+00,0.230307E+00,0.245741E-01,0.246185E-01,0.245896E-01,
24063 &0.245741E-01,0.332498E+00,0.691312E-02,0.484617E+00,0.221480E+00/
24064 DATA (DL(K),K= 1531, 1615) /
24065 &0.235237E-01,0.235701E-01,0.235397E-01,0.235237E-01,0.306153E+00,
24066 &0.702875E-02,0.469706E+00,0.212745E+00,0.224757E-01,0.225238E-01,
24067 &0.224921E-01,0.224757E-01,0.281624E+00,0.708222E-02,0.454725E+00,
24068 &0.204118E+00,0.214355E-01,0.214850E-01,0.214522E-01,0.214355E-01,
24069 &0.258855E+00,0.708159E-02,0.439713E+00,0.195618E+00,0.204079E-01,
24070 &0.204586E-01,0.204249E-01,0.204079E-01,0.237774E+00,0.703428E-02,
24071 &0.424709E+00,0.187259E+00,0.193972E-01,0.194486E-01,0.194142E-01,
24072 &0.193972E-01,0.218298E+00,0.694702E-02,0.409750E+00,0.179057E+00,
24073 &0.184069E-01,0.184588E-01,0.184239E-01,0.184069E-01,0.200339E+00,
24074 &0.682594E-02,0.394870E+00,0.171023E+00,0.174402E-01,0.174924E-01,
24075 &0.174571E-01,0.174402E-01,0.183804E+00,0.667657E-02,0.380104E+00,
24076 &0.163171E+00,0.164997E-01,0.165519E-01,0.165164E-01,0.164997E-01,
24077 &0.168600E+00,0.650389E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24078 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24079 &0.619056E+00,0.288873E+00,0.218554E-01,0.218554E-01,0.218554E-01,
24080 &0.218554E-01,0.477010E+00,-.867362E-17,0.602890E+00,0.278444E+00,
24081 &0.211480E-01,0.211530E-01,0.211497E-01,0.211480E-01,0.440877E+00/
24082 DATA (DL(K),K= 1616, 1700) /
24083 &0.767466E-03,0.586431E+00,0.268081E+00,0.204081E-01,0.204175E-01,
24084 &0.204113E-01,0.204081E-01,0.406417E+00,0.141432E-02,0.569736E+00,
24085 &0.257807E+00,0.196446E-01,0.196581E-01,0.196491E-01,0.196446E-01,
24086 &0.373808E+00,0.195508E-02,0.552853E+00,0.247642E+00,0.188646E-01,
24087 &0.188816E-01,0.188701E-01,0.188646E-01,0.343145E+00,0.240123E-02,
24088 &0.535829E+00,0.237603E+00,0.180743E-01,0.180945E-01,0.180808E-01,
24089 &0.180743E-01,0.314460E+00,0.276332E-02,0.518710E+00,0.227710E+00,
24090 &0.172796E-01,0.173025E-01,0.172868E-01,0.172796E-01,0.287750E+00,
24091 &0.305100E-02,0.501539E+00,0.217977E+00,0.164854E-01,0.165108E-01,
24092 &0.164933E-01,0.164854E-01,0.262983E+00,0.327305E-02,0.484360E+00,
24093 &0.208420E+00,0.156964E-01,0.157239E-01,0.157049E-01,0.156964E-01,
24094 &0.240098E+00,0.343744E-02,0.467213E+00,0.199053E+00,0.149165E-01,
24095 &0.149457E-01,0.149254E-01,0.149165E-01,0.219021E+00,0.355144E-02,
24096 &0.450140E+00,0.189889E+00,0.141493E-01,0.141800E-01,0.141586E-01,
24097 &0.141493E-01,0.199660E+00,0.362164E-02,0.433177E+00,0.180939E+00,
24098 &0.133978E-01,0.134297E-01,0.134073E-01,0.133978E-01,0.181918E+00,
24099 &0.365401E-02,0.416362E+00,0.172214E+00,0.126646E-01,0.126974E-01/
24100 DATA (DL(K),K= 1701, 1785) /
24101 &0.126742E-01,0.126646E-01,0.165692E+00,0.365394E-02,0.399729E+00,
24102 &0.163725E+00,0.119518E-01,0.119853E-01,0.119615E-01,0.119518E-01,
24103 &0.150875E+00,0.362628E-02,0.383310E+00,0.155477E+00,0.112613E-01,
24104 &0.112952E-01,0.112711E-01,0.112613E-01,0.137364E+00,0.357539E-02,
24105 &0.367138E+00,0.147479E+00,0.105945E-01,0.106287E-01,0.106042E-01,
24106 &0.105945E-01,0.125056E+00,0.350515E-02,0.351239E+00,0.139737E+00,
24107 &0.995250E-02,0.998673E-02,0.996211E-02,0.995250E-02,0.113852E+00,
24108 &0.341903E-02,0.335641E+00,0.132253E+00,0.933610E-02,0.937024E-02,
24109 &0.934557E-02,0.933610E-02,0.103659E+00,0.332009E-02,0.320367E+00,
24110 &0.125033E+00,0.874584E-02,0.877973E-02,0.875514E-02,0.874584E-02,
24111 &0.943886E-01,0.321106E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24112 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24113 &0.591114E+00,0.254807E+00,0.139531E-01,0.139531E-01,0.139531E-01,
24114 &0.139531E-01,0.326288E+00,0.000000E+00,0.571121E+00,0.243424E+00,
24115 &0.133325E-01,0.133362E-01,0.133336E-01,0.133325E-01,0.296956E+00,
24116 &0.429082E-03,0.551151E+00,0.232297E+00,0.127105E-01,0.127175E-01,
24117 &0.127126E-01,0.127105E-01,0.269811E+00,0.785137E-03,0.531253E+00/
24118 DATA (DL(K),K= 1786, 1870) /
24119 &0.221436E+00,0.120916E-01,0.121015E-01,0.120945E-01,0.120916E-01,
24120 &0.244803E+00,0.107790E-02,0.511467E+00,0.210850E+00,0.114794E-01,
24121 &0.114918E-01,0.114829E-01,0.114794E-01,0.221863E+00,0.131504E-02,
24122 &0.491833E+00,0.200545E+00,0.108767E-01,0.108913E-01,0.108808E-01,
24123 &0.108767E-01,0.200886E+00,0.150337E-02,0.472388E+00,0.190531E+00,
24124 &0.102861E-01,0.103027E-01,0.102907E-01,0.102861E-01,0.181762E+00,
24125 &0.164910E-02,0.453170E+00,0.180812E+00,0.970979E-02,0.972799E-02,
24126 &0.971477E-02,0.970979E-02,0.164371E+00,0.175777E-02,0.434213E+00,
24127 &0.171394E+00,0.914959E-02,0.916916E-02,0.915488E-02,0.914959E-02,
24128 &0.148589E+00,0.183434E-02,0.415548E+00,0.162282E+00,0.860700E-02,
24129 &0.862770E-02,0.861252E-02,0.860700E-02,0.134293E+00,0.188328E-02,
24130 &0.397208E+00,0.153479E+00,0.808323E-02,0.810484E-02,0.808891E-02,
24131 &0.808323E-02,0.121361E+00,0.190856E-02,0.379220E+00,0.144989E+00,
24132 &0.757922E-02,0.760152E-02,0.758501E-02,0.757922E-02,0.109676E+00,
24133 &0.191374E-02,0.361611E+00,0.136811E+00,0.709565E-02,0.711846E-02,
24134 &0.710150E-02,0.709565E-02,0.991261E-01,0.190199E-02,0.344406E+00,
24135 &0.128948E+00,0.663300E-02,0.665614E-02,0.663885E-02,0.663300E-02/
24136 DATA (DL(K),K= 1871, 1955) /
24137 &0.896059E-01,0.187610E-02,0.327627E+00,0.121398E+00,0.619152E-02,
24138 &0.621484E-02,0.619734E-02,0.619152E-02,0.810177E-01,0.183856E-02,
24139 &0.311292E+00,0.114161E+00,0.577130E-02,0.579466E-02,0.577706E-02,
24140 &0.577130E-02,0.732709E-01,0.179155E-02,0.295421E+00,0.107235E+00,
24141 &0.537228E-02,0.539554E-02,0.537794E-02,0.537228E-02,0.662824E-01,
24142 &0.173700E-02,0.280026E+00,0.100616E+00,0.499423E-02,0.501728E-02,
24143 &0.499977E-02,0.499423E-02,0.599766E-01,0.167658E-02,0.265121E+00,
24144 &0.943000E-01,0.463683E-02,0.465958E-02,0.464223E-02,0.463683E-02,
24145 &0.542848E-01,0.161174E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24146 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24147 &0.551659E+00,0.219084E+00,0.867977E-02,0.867977E-02,0.867977E-02,
24148 &0.867977E-02,0.218587E+00,-.173472E-16,0.528947E+00,0.207536E+00,
24149 &0.819621E-02,0.819909E-02,0.819696E-02,0.819621E-02,0.196367E+00,
24150 &0.234843E-03,0.506575E+00,0.196391E+00,0.772540E-02,0.773082E-02,
24151 &0.772680E-02,0.772540E-02,0.176280E+00,0.427503E-03,0.484579E+00,
24152 &0.185646E+00,0.726876E-02,0.727639E-02,0.727069E-02,0.726876E-02,
24153 &0.158158E+00,0.583933E-03,0.462988E+00,0.175298E+00,0.682746E-02/
24154 DATA (DL(K),K= 1956, 2040) /
24155 &0.683702E-02,0.682985E-02,0.682746E-02,0.141851E+00,0.708874E-03,
24156 &0.441830E+00,0.165345E+00,0.640226E-02,0.641347E-02,0.640502E-02,
24157 &0.640226E-02,0.127203E+00,0.806409E-03,0.421129E+00,0.155783E+00,
24158 &0.599380E-02,0.600641E-02,0.599686E-02,0.599380E-02,0.114065E+00,
24159 &0.880249E-03,0.400912E+00,0.146609E+00,0.560252E-02,0.561629E-02,
24160 &0.560581E-02,0.560252E-02,0.102296E+00,0.933676E-03,0.381199E+00,
24161 &0.137819E+00,0.522870E-02,0.524342E-02,0.523217E-02,0.522870E-02,
24162 &0.917608E-01,0.969607E-03,0.362011E+00,0.129407E+00,0.487247E-02,
24163 &0.488796E-02,0.487607E-02,0.487247E-02,0.823356E-01,0.990632E-03,
24164 &0.343367E+00,0.121370E+00,0.453385E-02,0.454992E-02,0.453753E-02,
24165 &0.453385E-02,0.739054E-01,0.999042E-03,0.325282E+00,0.113700E+00,
24166 &0.421272E-02,0.422921E-02,0.421644E-02,0.421272E-02,0.663651E-01,
24167 &0.996863E-03,0.307770E+00,0.106393E+00,0.390887E-02,0.392563E-02,
24168 &0.391260E-02,0.390887E-02,0.596195E-01,0.985881E-03,0.290841E+00,
24169 &0.994399E-01,0.362199E-02,0.363889E-02,0.362570E-02,0.362199E-02,
24170 &0.535826E-01,0.967664E-03,0.274506E+00,0.928343E-01,0.335170E-02,
24171 &0.336862E-02,0.335536E-02,0.335170E-02,0.481769E-01,0.943587E-03/
24172 DATA (DL(K),K= 2041, 2125) /
24173 &0.258771E+00,0.865679E-01,0.309756E-02,0.311439E-02,0.310114E-02,
24174 &0.309756E-02,0.433336E-01,0.914850E-03,0.243639E+00,0.806321E-01,
24175 &0.285905E-02,0.287571E-02,0.286255E-02,0.285905E-02,0.389912E-01,
24176 &0.882497E-03,0.229113E+00,0.750177E-01,0.263565E-02,0.265205E-02,
24177 &0.263905E-02,0.263565E-02,0.350948E-01,0.847432E-03,0.215193E+00,
24178 &0.697152E-01,0.242677E-02,0.244285E-02,0.243005E-02,0.242677E-02,
24179 &0.315960E-01,0.810432E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24180 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24181 &0.503850E+00,0.183581E+00,0.522815E-02,0.522815E-02,0.522815E-02,
24182 &0.522815E-02,0.142635E+00,0.123599E-16,0.479478E+00,0.172477E+00,
24183 &0.488093E-02,0.488328E-02,0.488147E-02,0.488093E-02,0.126767E+00,
24184 &0.124505E-03,0.455750E+00,0.161879E+00,0.455054E-02,0.455493E-02,
24185 &0.455153E-02,0.455054E-02,0.112695E+00,0.225968E-03,0.432681E+00,
24186 &0.151771E+00,0.423664E-02,0.424278E-02,0.423800E-02,0.423664E-02,
24187 &0.100212E+00,0.307702E-03,0.410286E+00,0.142140E+00,0.393907E-02,
24188 &0.394671E-02,0.394073E-02,0.393907E-02,0.891488E-01,0.372395E-03,
24189 &0.388577E+00,0.132974E+00,0.365743E-02,0.366634E-02,0.365934E-02/
24190 DATA (DL(K),K= 2126, 2210) /
24191 &0.365743E-02,0.793490E-01,0.422302E-03,0.367563E+00,0.124259E+00,
24192 &0.339138E-02,0.340133E-02,0.339347E-02,0.339138E-02,0.706688E-01,
24193 &0.459484E-03,0.347256E+00,0.115984E+00,0.314049E-02,0.315129E-02,
24194 &0.314273E-02,0.314049E-02,0.629792E-01,0.485762E-03,0.327660E+00,
24195 &0.108136E+00,0.290433E-02,0.291580E-02,0.290667E-02,0.290433E-02,
24196 &0.561642E-01,0.502744E-03,0.308782E+00,0.100701E+00,0.268243E-02,
24197 &0.269440E-02,0.268483E-02,0.268243E-02,0.501207E-01,0.511853E-03,
24198 &0.290625E+00,0.936693E-01,0.247429E-02,0.248663E-02,0.247672E-02,
24199 &0.247429E-02,0.447569E-01,0.514346E-03,0.273189E+00,0.870261E-01,
24200 &0.227939E-02,0.229197E-02,0.228184E-02,0.227939E-02,0.399920E-01,
24201 &0.511328E-03,0.256475E+00,0.807592E-01,0.209722E-02,0.210991E-02,
24202 &0.209965E-02,0.209722E-02,0.357547E-01,0.503769E-03,0.240478E+00,
24203 &0.748555E-01,0.192721E-02,0.193992E-02,0.192961E-02,0.192721E-02,
24204 &0.319825E-01,0.492518E-03,0.225194E+00,0.693019E-01,0.176883E-02,
24205 &0.178147E-02,0.177117E-02,0.176883E-02,0.286209E-01,0.478318E-03,
24206 &0.210615E+00,0.640851E-01,0.162151E-02,0.163400E-02,0.162379E-02,
24207 &0.162151E-02,0.256219E-01,0.461813E-03,0.196733E+00,0.591917E-01/
24208 DATA (DL(K),K= 2211, 2295) /
24209 &0.148471E-02,0.149698E-02,0.148691E-02,0.148471E-02,0.229436E-01,
24210 &0.443561E-03,0.183536E+00,0.546085E-01,0.135786E-02,0.136986E-02,
24211 &0.135998E-02,0.135786E-02,0.205496E-01,0.424043E-03,0.171011E+00,
24212 &0.503219E-01,0.124042E-02,0.125211E-02,0.124246E-02,0.124042E-02,
24213 &0.184079E-01,0.403672E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24214 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24215 &0.450310E+00,0.149685E+00,0.302765E-02,0.302765E-02,0.302765E-02,
24216 &0.302765E-02,0.901099E-01,-.108420E-17,0.425282E+00,0.139479E+00,
24217 &0.279499E-02,0.279691E-02,0.279537E-02,0.279499E-02,0.794239E-01,
24218 &0.632140E-04,0.401169E+00,0.129837E+00,0.257801E-02,0.258157E-02,
24219 &0.257870E-02,0.257801E-02,0.700941E-01,0.114711E-03,0.377966E+00,
24220 &0.120733E+00,0.237556E-02,0.238052E-02,0.237650E-02,0.237556E-02,
24221 &0.619270E-01,0.156107E-03,0.355668E+00,0.112145E+00,0.218688E-02,
24222 &0.219301E-02,0.218802E-02,0.218688E-02,0.547717E-01,0.188777E-03,
24223 &0.334269E+00,0.104052E+00,0.201113E-02,0.201823E-02,0.201243E-02,
24224 &0.201113E-02,0.484974E-01,0.213848E-03,0.313762E+00,0.964335E-01,
24225 &0.184758E-02,0.185546E-02,0.184900E-02,0.184758E-02,0.429879E-01/
24226 DATA (DL(K),K= 2296, 2380) /
24227 &0.232367E-03,0.294139E+00,0.892696E-01,0.169553E-02,0.170402E-02,
24228 &0.169703E-02,0.169553E-02,0.381432E-01,0.245270E-03,0.275389E+00,
24229 &0.825414E-01,0.155431E-02,0.156326E-02,0.155586E-02,0.155431E-02,
24230 &0.338762E-01,0.253383E-03,0.257502E+00,0.762303E-01,0.142329E-02,
24231 &0.143258E-02,0.142487E-02,0.142329E-02,0.301119E-01,0.257441E-03,
24232 &0.240464E+00,0.703180E-01,0.130188E-02,0.131138E-02,0.130347E-02,
24233 &0.130188E-02,0.267853E-01,0.258098E-03,0.224262E+00,0.647867E-01,
24234 &0.118950E-02,0.119912E-02,0.119108E-02,0.118950E-02,0.238409E-01,
24235 &0.255929E-03,0.208879E+00,0.596190E-01,0.108562E-02,0.109526E-02,
24236 &0.108717E-02,0.108562E-02,0.212308E-01,0.251442E-03,0.194298E+00,
24237 &0.547975E-01,0.989698E-03,0.999283E-03,0.991221E-03,0.989698E-03,
24238 &0.189136E-01,0.245082E-03,0.180499E+00,0.503054E-01,0.901248E-03,
24239 &0.910711E-03,0.902726E-03,0.901248E-03,0.168537E-01,0.237238E-03,
24240 &0.167463E+00,0.461263E-01,0.819789E-03,0.829074E-03,0.821215E-03,
24241 &0.819789E-03,0.150206E-01,0.228250E-03,0.155167E+00,0.422438E-01,
24242 &0.744866E-03,0.753925E-03,0.746234E-03,0.744866E-03,0.133878E-01,
24243 &0.218412E-03,0.143590E+00,0.386421E-01,0.676043E-03,0.684836E-03/
24244 DATA (DL(K),K= 2381, 2465) /
24245 &0.677349E-03,0.676043E-03,0.119320E-01,0.207976E-03,0.132706E+00,
24246 &0.353058E-01,0.612907E-03,0.621403E-03,0.614147E-03,0.612907E-03,
24247 &0.106334E-01,0.197159E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24248 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24249 &0.393307E+00,0.118409E+00,0.167124E-02,0.167124E-02,0.167124E-02,
24250 &0.167124E-02,0.547140E-01,0.433681E-17,0.368555E+00,0.109414E+00,
24251 &0.152547E-02,0.152705E-02,0.152573E-02,0.152547E-02,0.479708E-01,
24252 &0.303147E-04,0.344946E+00,0.101001E+00,0.139202E-02,0.139494E-02,
24253 &0.139249E-02,0.139202E-02,0.421517E-01,0.552185E-04,0.322450E+00,
24254 &0.931345E-01,0.126960E-02,0.127363E-02,0.127024E-02,0.126960E-02,
24255 &0.371043E-01,0.753524E-04,0.301043E+00,0.857854E-01,0.115731E-02,
24256 &0.116225E-02,0.115808E-02,0.115731E-02,0.327131E-01,0.913172E-04,
24257 &0.280698E+00,0.789267E-01,0.105427E-02,0.105995E-02,0.105514E-02,
24258 &0.105427E-02,0.288844E-01,0.103605E-03,0.261390E+00,0.725323E-01,
24259 &0.959726E-03,0.965979E-03,0.960659E-03,0.959726E-03,0.255366E-01,
24260 &0.112688E-03,0.243091E+00,0.665774E-01,0.872987E-03,0.879676E-03,
24261 &0.873966E-03,0.872987E-03,0.226017E-01,0.119000E-03,0.225775E+00/
24262 DATA (DL(K),K= 2466, 2550) /
24263 &0.610385E-01,0.793435E-03,0.800438E-03,0.794441E-03,0.793435E-03,
24264 &0.200219E-01,0.122931E-03,0.209414E+00,0.558928E-01,0.720508E-03,
24265 &0.727716E-03,0.721524E-03,0.720508E-03,0.177490E-01,0.124835E-03,
24266 &0.193979E+00,0.511187E-01,0.653691E-03,0.661011E-03,0.654703E-03,
24267 &0.653691E-03,0.157425E-01,0.125031E-03,0.179441E+00,0.466950E-01,
24268 &0.592513E-03,0.599863E-03,0.593511E-03,0.592513E-03,0.139674E-01,
24269 &0.123805E-03,0.165770E+00,0.426018E-01,0.536539E-03,0.543850E-03,
24270 &0.537513E-03,0.536539E-03,0.123945E-01,0.121411E-03,0.152935E+00,
24271 &0.388195E-01,0.485370E-03,0.492584E-03,0.486314E-03,0.485370E-03,
24272 &0.109993E-01,0.118076E-03,0.140905E+00,0.353295E-01,0.438636E-03,
24273 &0.445702E-03,0.439543E-03,0.438636E-03,0.976027E-02,0.113999E-03,
24274 &0.129648E+00,0.321137E-01,0.395992E-03,0.402871E-03,0.396859E-03,
24275 &0.395992E-03,0.865895E-02,0.109353E-03,0.119131E+00,0.291550E-01,
24276 &0.357120E-03,0.363779E-03,0.357945E-03,0.357120E-03,0.767960E-02,
24277 &0.104292E-03,0.109323E+00,0.264366E-01,0.321725E-03,0.328139E-03,
24278 &0.322505E-03,0.321725E-03,0.680866E-02,0.989468E-04,0.100191E+00,
24279 &0.239428E-01,0.289531E-03,0.295679E-03,0.290266E-03,0.289531E-03/
24280 DATA (DL(K),K= 2551, 2635) /
24281 &0.603390E-02,0.934295E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24282 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24283 &0.334851E+00,0.904666E-01,0.869706E-03,0.869706E-03,0.869706E-03,
24284 &0.869706E-03,0.316365E-01,-.311708E-17,0.311223E+00,0.828706E-01,
24285 &0.784673E-03,0.785968E-03,0.784847E-03,0.784673E-03,0.277037E-01,
24286 &0.134749E-04,0.288910E+00,0.758361E-01,0.708234E-03,0.710597E-03,
24287 &0.708543E-03,0.708234E-03,0.243298E-01,0.247881E-04,0.267855E+00,
24288 &0.693222E-01,0.639256E-03,0.642491E-03,0.639671E-03,0.639256E-03,
24289 &0.214125E-01,0.340882E-04,0.248015E+00,0.632964E-01,0.576953E-03,
24290 &0.580887E-03,0.577448E-03,0.576953E-03,0.188764E-01,0.415701E-04,
24291 &0.229343E+00,0.577274E-01,0.520615E-03,0.525096E-03,0.521167E-03,
24292 &0.520615E-03,0.166642E-01,0.474027E-04,0.211794E+00,0.525860E-01,
24293 &0.469624E-03,0.474520E-03,0.470215E-03,0.469624E-03,0.147265E-01,
24294 &0.517615E-04,0.195325E+00,0.478447E-01,0.423445E-03,0.428640E-03,
24295 &0.424060E-03,0.423445E-03,0.130234E-01,0.548213E-04,0.179891E+00,
24296 &0.434776E-01,0.381606E-03,0.387001E-03,0.382232E-03,0.381606E-03,
24297 &0.115226E-01,0.567474E-04,0.165449E+00,0.394601E-01,0.343691E-03/
24298 DATA (DL(K),K= 2636, 2720) /
24299 &0.349200E-03,0.344317E-03,0.343691E-03,0.101965E-01,0.576952E-04,
24300 &0.151958E+00,0.357691E-01,0.309329E-03,0.314879E-03,0.309948E-03,
24301 &0.309329E-03,0.902217E-02,0.578101E-04,0.139374E+00,0.323826E-01,
24302 &0.278192E-03,0.283721E-03,0.278796E-03,0.278192E-03,0.798131E-02,
24303 &0.572266E-04,0.127655E+00,0.292797E-01,0.249984E-03,0.255440E-03,
24304 &0.250569E-03,0.249984E-03,0.705796E-02,0.560672E-04,0.116760E+00,
24305 &0.264406E-01,0.224440E-03,0.229782E-03,0.225002E-03,0.224440E-03,
24306 &0.623793E-02,0.544420E-04,0.106647E+00,0.238467E-01,0.201321E-03,
24307 &0.206513E-03,0.201856E-03,0.201321E-03,0.550962E-02,0.524504E-04,
24308 &0.972762E-01,0.214802E-01,0.180411E-03,0.185425E-03,0.180918E-03,
24309 &0.180411E-03,0.486321E-02,0.501804E-04,0.886073E-01,0.193242E-01,
24310 &0.161512E-03,0.166328E-03,0.161990E-03,0.161512E-03,0.428946E-02,
24311 &0.477087E-04,0.806013E-01,0.173629E-01,0.144446E-03,0.149048E-03,
24312 &0.144894E-03,0.144446E-03,0.378030E-02,0.451020E-04,0.732197E-01,
24313 &0.155814E-01,0.129049E-03,0.133425E-03,0.129467E-03,0.129049E-03,
24314 &0.332897E-02,0.424179E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24315 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24316 DATA (DL(K),K= 2721, 2805) /
24317 &0.276761E+00,0.663170E-01,0.420483E-03,0.420483E-03,0.420483E-03,
24318 &0.420483E-03,0.172075E-01,0.418773E-17,0.255003E+00,0.601925E-01,
24319 &0.374768E-03,0.375776E-03,0.374876E-03,0.374768E-03,0.151410E-01,
24320 &0.540038E-05,0.234664E+00,0.545789E-01,0.334420E-03,0.336252E-03,
24321 &0.334612E-03,0.334420E-03,0.133594E-01,0.101360E-04,0.215665E+00,
24322 &0.494328E-01,0.298611E-03,0.301108E-03,0.298867E-03,0.298611E-03,
24323 &0.118079E-01,0.141555E-04,0.197941E+00,0.447203E-01,0.266766E-03,
24324 &0.269787E-03,0.267068E-03,0.266766E-03,0.104461E-01,0.174750E-04,
24325 &0.181428E+00,0.404089E-01,0.238391E-03,0.241815E-03,0.238726E-03,
24326 &0.238391E-03,0.924609E-02,0.201244E-04,0.166064E+00,0.364687E-01,
24327 &0.213061E-03,0.216782E-03,0.213417E-03,0.213061E-03,0.818507E-02,
24328 &0.221467E-04,0.151790E+00,0.328719E-01,0.190418E-03,0.194343E-03,
24329 &0.190785E-03,0.190418E-03,0.724366E-02,0.235974E-04,0.138548E+00,
24330 &0.295925E-01,0.170150E-03,0.174202E-03,0.170521E-03,0.170150E-03,
24331 &0.640614E-02,0.245354E-04,0.126282E+00,0.266063E-01,0.151991E-03,
24332 &0.156104E-03,0.152359E-03,0.151991E-03,0.566089E-02,0.250221E-04,
24333 &0.114939E+00,0.238907E-01,0.135710E-03,0.139827E-03,0.136071E-03/
24334 DATA (DL(K),K= 2806, 2890) /
24335 &0.135710E-03,0.499773E-02,0.251191E-04,0.104465E+00,0.214245E-01,
24336 &0.121106E-03,0.125180E-03,0.121455E-03,0.121106E-03,0.440691E-02,
24337 &0.248850E-04,0.948101E-01,0.191879E-01,0.108002E-03,0.111994E-03,
24338 &0.108337E-03,0.108002E-03,0.388094E-02,0.243760E-04,0.859247E-01,
24339 &0.171625E-01,0.962435E-04,0.100124E-03,0.965624E-04,0.962435E-04,
24340 &0.341379E-02,0.236445E-04,0.777613E-01,0.153309E-01,0.856948E-04,
24341 &0.894394E-04,0.859960E-04,0.856948E-04,0.299910E-02,0.227378E-04,
24342 &0.702736E-01,0.136770E-01,0.762337E-04,0.798235E-04,0.765166E-04,
24343 &0.762337E-04,0.263116E-02,0.216984E-04,0.634174E-01,0.121859E-01,
24344 &0.677528E-04,0.711742E-04,0.680169E-04,0.677528E-04,0.230551E-02,
24345 &0.205642E-04,0.571500E-01,0.108434E-01,0.601554E-04,0.633990E-04,
24346 &0.604008E-04,0.601554E-04,0.201791E-02,0.193681E-04,0.514305E-01,
24347 &0.963651E-02,0.533545E-04,0.564148E-04,0.535814E-04,0.533545E-04,
24348 &0.176404E-02,0.181381E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24349 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24350 &0.220700E+00,0.461964E-01,0.185072E-03,0.185072E-03,0.185072E-03,
24351 &0.185072E-03,0.865568E-02,-.294090E-17,0.201438E+00,0.415162E-01/
24352 DATA (DL(K),K= 2891, 2975) /
24353 &0.162774E-03,0.163610E-03,0.162842E-03,0.162774E-03,0.772611E-02,
24354 &0.184134E-05,0.183625E+00,0.372730E-01,0.143469E-03,0.144974E-03,
24355 &0.143588E-03,0.143469E-03,0.690038E-02,0.359959E-05,0.167162E+00,
24356 &0.334245E-01,0.126634E-03,0.128666E-03,0.126791E-03,0.126634E-03,
24357 &0.616000E-02,0.518075E-05,0.151966E+00,0.299378E-01,0.111904E-03,
24358 &0.114340E-03,0.112088E-03,0.111904E-03,0.549219E-02,0.654232E-05,
24359 &0.137959E+00,0.267821E-01,0.989836E-04,0.101716E-03,0.991845E-04,
24360 &0.989836E-04,0.488896E-02,0.767008E-05,0.125065E+00,0.239289E-01,
24361 &0.876157E-04,0.905559E-04,0.878269E-04,0.876157E-04,0.434253E-02,
24362 &0.855860E-05,0.113213E+00,0.213524E-01,0.775899E-04,0.806611E-04,
24363 &0.778055E-04,0.775899E-04,0.384886E-02,0.921640E-05,0.102335E+00,
24364 &0.190285E-01,0.687292E-04,0.718676E-04,0.689446E-04,0.687292E-04,
24365 &0.340422E-02,0.965961E-05,0.923671E-01,0.169353E-01,0.608829E-04,
24366 &0.640353E-04,0.610944E-04,0.608829E-04,0.300332E-02,0.990752E-05,
24367 &0.832476E-01,0.150523E-01,0.539242E-04,0.570473E-04,0.541291E-04,
24368 &0.539242E-04,0.264288E-02,0.998320E-05,0.749179E-01,0.133608E-01,
24369 &0.477459E-04,0.508046E-04,0.479422E-04,0.477459E-04,0.232088E-02/
24370 DATA (DL(K),K= 2976, 3060) /
24371 &0.991147E-05,0.673221E-01,0.118435E-01,0.422554E-04,0.452220E-04,
24372 &0.424417E-04,0.422554E-04,0.203376E-02,0.971603E-05,0.604073E-01,
24373 &0.104845E-01,0.373730E-04,0.402263E-04,0.375483E-04,0.373730E-04,
24374 &0.177791E-02,0.941959E-05,0.541231E-01,0.926900E-02,0.330304E-04,
24375 &0.357544E-04,0.331943E-04,0.330304E-04,0.155117E-02,0.904408E-05,
24376 &0.484216E-01,0.818347E-02,0.291681E-04,0.317517E-04,0.293202E-04,
24377 &0.291681E-04,0.135108E-02,0.860921E-05,0.432578E-01,0.721549E-02,
24378 &0.257333E-04,0.281694E-04,0.258738E-04,0.257333E-04,0.117463E-02,
24379 &0.813214E-05,0.385889E-01,0.635362E-02,0.226802E-04,0.249648E-04,
24380 &0.228093E-04,0.226802E-04,0.101941E-02,0.762814E-05,0.343746E-01,
24381 &0.558739E-02,0.199682E-04,0.221003E-04,0.200863E-04,0.199682E-04,
24382 &0.883469E-03,0.711035E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24383 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24384 &0.168205E+00,0.301419E-01,0.719932E-04,0.719932E-04,0.719932E-04,
24385 &0.719932E-04,0.392825E-02,-.205998E-17,0.151922E+00,0.267932E-01,
24386 &0.623634E-04,0.630456E-04,0.624028E-04,0.623634E-04,0.361412E-02,
24387 &0.457084E-06,0.137042E+00,0.237932E-01,0.541981E-04,0.554098E-04/
24388 DATA (DL(K),K= 3061, 3145) /
24389 &0.542663E-04,0.541981E-04,0.330342E-02,0.989813E-06,0.123446E+00,
24390 &0.211038E-01,0.472163E-04,0.488314E-04,0.473050E-04,0.472163E-04,
24391 &0.300140E-02,0.152631E-05,0.111042E+00,0.186954E-01,0.412159E-04,
24392 &0.431273E-04,0.413184E-04,0.412159E-04,0.270826E-02,0.202092E-05,
24393 &0.997395E-01,0.165410E-01,0.360433E-04,0.381615E-04,0.361542E-04,
24394 &0.360433E-04,0.242968E-02,0.245400E-05,0.894558E-01,0.146159E-01,
24395 &0.315670E-04,0.338178E-04,0.316822E-04,0.315670E-04,0.216928E-02,
24396 &0.281218E-05,0.801130E-01,0.128978E-01,0.276779E-04,0.300002E-04,
24397 &0.277940E-04,0.276779E-04,0.192603E-02,0.308878E-05,0.716379E-01,
24398 &0.113663E-01,0.242878E-04,0.266317E-04,0.244024E-04,0.242878E-04,
24399 &0.170100E-02,0.328451E-05,0.639623E-01,0.100031E-01,0.213246E-04,
24400 &0.236502E-04,0.214357E-04,0.213246E-04,0.149649E-02,0.340483E-05,
24401 &0.570222E-01,0.879131E-02,0.187277E-04,0.210033E-04,0.188341E-04,
24402 &0.187277E-04,0.131163E-02,0.345656E-05,0.507574E-01,0.771565E-02,
24403 &0.164465E-04,0.186476E-04,0.165471E-04,0.164465E-04,0.114469E-02,
24404 &0.344782E-05,0.451118E-01,0.676223E-02,0.144396E-04,0.165480E-04,
24405 &0.145339E-04,0.144396E-04,0.995649E-03,0.338831E-05,0.400330E-01/
24406 DATA (DL(K),K= 3146, 3230) /
24407 &0.591841E-02,0.126720E-04,0.146744E-04,0.127597E-04,0.126720E-04,
24408 &0.863829E-03,0.328754E-05,0.354720E-01,0.517273E-02,0.111137E-04,
24409 &0.130013E-04,0.111946E-04,0.111137E-04,0.747293E-03,0.315403E-05,
24410 &0.313830E-01,0.451477E-02,0.973915E-05,0.115067E-04,0.981339E-05,
24411 &0.973915E-05,0.644664E-03,0.299600E-05,0.277237E-01,0.393511E-02,
24412 &0.852687E-05,0.101721E-04,0.859457E-05,0.852687E-05,0.555034E-03,
24413 &0.282099E-05,0.244545E-01,0.342521E-02,0.745784E-05,0.898076E-05,
24414 &0.751926E-05,0.745784E-05,0.476998E-03,0.263530E-05,0.215390E-01,
24415 &0.297737E-02,0.651555E-05,0.791817E-05,0.657100E-05,0.651555E-05,
24416 &0.409096E-03,0.244427E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24417 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24418 &0.120694E+00,0.180081E-01,0.236444E-04,0.236444E-04,0.236444E-04,
24419 &0.236444E-04,0.154817E-02,0.416656E-17,0.107713E+00,0.158098E-01,
24420 &0.200945E-04,0.206098E-04,0.201146E-04,0.200945E-04,0.151249E-02,
24421 &0.192118E-07,0.960063E-01,0.138667E-01,0.171552E-04,0.180593E-04,
24422 &0.171894E-04,0.171552E-04,0.143574E-02,0.116516E-06,0.854477E-01,
24423 &0.121473E-01,0.146986E-04,0.158894E-04,0.147425E-04,0.146986E-04/
24424 DATA (DL(K),K= 3231, 3315) /
24425 &0.133744E-02,0.251060E-06,0.759386E-01,0.106275E-01,0.126329E-04,
24426 &0.140252E-04,0.126830E-04,0.126329E-04,0.122900E-02,0.395272E-06,
24427 &0.673865E-01,0.928577E-02,0.108901E-04,0.124142E-04,0.109436E-04,
24428 &0.108901E-04,0.111367E-02,0.535145E-06,0.597062E-01,0.810254E-02,
24429 &0.941160E-05,0.110108E-04,0.946648E-05,0.941160E-05,0.996785E-03,
24430 &0.659421E-06,0.528194E-01,0.706039E-02,0.815165E-05,0.978016E-05,
24431 &0.820627E-05,0.815165E-05,0.885152E-03,0.762600E-06,0.466540E-01,
24432 &0.614371E-02,0.707299E-05,0.869464E-05,0.712616E-05,0.707299E-05,
24433 &0.780484E-03,0.842072E-06,0.411433E-01,0.533850E-02,0.614470E-05,
24434 &0.773135E-05,0.619559E-05,0.614470E-05,0.682563E-03,0.896683E-06,
24435 &0.362261E-01,0.463223E-02,0.534297E-05,0.687330E-05,0.539102E-05,
24436 &0.534297E-05,0.593317E-03,0.928176E-06,0.318459E-01,0.401364E-02,
24437 &0.464848E-05,0.610690E-05,0.469333E-05,0.464848E-05,0.513720E-03,
24438 &0.939174E-06,0.279510E-01,0.347266E-02,0.404483E-05,0.542054E-05,
24439 &0.408628E-05,0.404483E-05,0.442713E-03,0.932117E-06,0.244935E-01,
24440 &0.300029E-02,0.351893E-05,0.480507E-05,0.355692E-05,0.351893E-05,
24441 &0.379744E-03,0.910085E-06,0.214299E-01,0.258845E-02,0.306021E-05/
24442 DATA (DL(K),K= 3316, 3400) /
24443 &0.425313E-05,0.309476E-05,0.306021E-05,0.324785E-03,0.876365E-06,
24444 &0.187200E-01,0.222996E-02,0.265958E-05,0.375823E-05,0.269081E-05,
24445 &0.265958E-05,0.277080E-03,0.833755E-06,0.163273E-01,0.191840E-02,
24446 &0.230942E-05,0.331477E-05,0.233747E-05,0.230942E-05,0.235661E-03,
24447 &0.784780E-06,0.142185E-01,0.164805E-02,0.200337E-05,0.291797E-05,
24448 &0.202844E-05,0.200337E-05,0.199949E-03,0.731774E-06,0.123631E-01,
24449 &0.141382E-02,0.173596E-05,0.256351E-05,0.175824E-05,0.173596E-05,
24450 &0.169376E-03,0.676674E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24451 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24452 &0.794823E-01,0.948208E-02,0.607312E-05,0.607312E-05,0.607312E-05,
24453 &0.607312E-05,0.497062E-03,-.140523E-17,0.699344E-01,0.820355E-02,
24454 &0.500852E-05,0.538347E-05,0.501731E-05,0.500852E-05,0.542262E-03,
24455 &-.714686E-07,0.614560E-01,0.709106E-02,0.415227E-05,0.479898E-05,
24456 &0.416702E-05,0.415227E-05,0.549985E-03,-.960102E-07,0.539240E-01,
24457 &0.612155E-02,0.345977E-05,0.429563E-05,0.347839E-05,0.345977E-05,
24458 &0.531288E-03,-.894946E-07,0.472426E-01,0.527757E-02,0.289508E-05,
24459 &0.385164E-05,0.291595E-05,0.289508E-05,0.495120E-03,-.668594E-07/
24460 DATA (DL(K),K= 3401, 3485) /
24461 &0.413245E-01,0.454380E-02,0.243524E-05,0.345851E-05,0.245713E-05,
24462 &0.243524E-05,0.452156E-03,-.338861E-07,0.360903E-01,0.390658E-02,
24463 &0.205923E-05,0.310726E-05,0.208123E-05,0.205923E-05,0.406686E-03,
24464 &0.329349E-08,0.314681E-01,0.335393E-02,0.174861E-05,0.278918E-05,
24465 &0.177007E-05,0.174861E-05,0.359402E-03,0.387747E-07,0.273932E-01,
24466 &0.287528E-02,0.149082E-05,0.250013E-05,0.151127E-05,0.149082E-05,
24467 &0.313779E-03,0.705560E-07,0.238068E-01,0.246132E-02,0.127582E-05,
24468 &0.223699E-05,0.129498E-05,0.127582E-05,0.272195E-03,0.975744E-07,
24469 &0.206558E-01,0.210383E-02,0.109488E-05,0.199657E-05,0.111257E-05,
24470 &0.109488E-05,0.234227E-03,0.118651E-06,0.178921E-01,0.179558E-02,
24471 &0.941584E-06,0.177694E-05,0.957733E-06,0.941584E-06,0.199907E-03,
24472 &0.133780E-06,0.154726E-01,0.153020E-02,0.811157E-06,0.157680E-05,
24473 &0.825743E-06,0.811157E-06,0.169849E-03,0.143581E-06,0.133582E-01,
24474 &0.130209E-02,0.699567E-06,0.139481E-05,0.712624E-06,0.699567E-06,
24475 &0.143794E-03,0.148591E-06,0.115137E-01,0.110634E-02,0.603631E-06,
24476 &0.122977E-05,0.615228E-06,0.603631E-06,0.121163E-03,0.149477E-06,
24477 &0.990774E-02,0.938615E-03,0.520920E-06,0.108072E-05,0.531148E-06/
24478 DATA (DL(K),K= 3486, 3570) /
24479 &0.520920E-06,0.101725E-03,0.147055E-06,0.851194E-02,0.795146E-03,
24480 &0.449441E-06,0.946634E-06,0.458405E-06,0.449441E-06,0.852238E-04,
24481 &0.142064E-06,0.730103E-02,0.672622E-03,0.387542E-06,0.826497E-06,
24482 &0.395353E-06,0.387542E-06,0.712290E-04,0.135149E-06,0.625244E-02,
24483 &0.568155E-03,0.333888E-06,0.719316E-06,0.340658E-06,0.333888E-06,
24484 &0.593824E-04,0.126902E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24485 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24486 &0.457819E-01,0.409492E-02,0.105702E-05,0.105702E-05,0.105702E-05,
24487 &0.105702E-05,0.115350E-03,0.265810E-18,0.395724E-01,0.347873E-02,
24488 &0.812397E-06,0.103880E-05,0.815187E-06,0.812397E-06,0.160406E-03,
24489 &-.555147E-07,0.341639E-01,0.295295E-02,0.627904E-06,0.987449E-06,
24490 &0.632305E-06,0.627904E-06,0.174490E-03,-.847266E-07,0.294481E-01,
24491 &0.250329E-02,0.490075E-06,0.920197E-06,0.495305E-06,0.490075E-06,
24492 &0.174490E-03,-.944763E-07,0.253423E-01,0.211912E-02,0.387225E-06,
24493 &0.845257E-06,0.392760E-06,0.387225E-06,0.167111E-03,-.916775E-07,
24494 &0.217735E-01,0.179138E-02,0.309989E-06,0.766697E-06,0.315473E-06,
24495 &0.309989E-06,0.152540E-03,-.819158E-07,0.186760E-01,0.151211E-02/
24496 DATA (DL(K),K= 3571, 3655) /
24497 &0.252109E-06,0.688927E-06,0.257316E-06,0.252109E-06,0.135295E-03,
24498 &-.682145E-07,0.159921E-01,0.127447E-02,0.208612E-06,0.614302E-06,
24499 &0.213410E-06,0.208612E-06,0.118648E-03,-.528734E-07,0.136704E-01,
24500 &0.107254E-02,0.175203E-06,0.543807E-06,0.179526E-06,0.175203E-06,
24501 &0.102484E-03,-.379748E-07,0.116656E-01,0.901214E-03,0.149064E-06,
24502 &0.478363E-06,0.152890E-06,0.149064E-06,0.871530E-04,-.245007E-07,
24503 &0.993760E-02,0.756074E-03,0.128274E-06,0.418496E-06,0.131610E-06,
24504 &0.128274E-06,0.735682E-04,-.128491E-07,0.845081E-02,0.633315E-03,
24505 &0.111313E-06,0.364260E-06,0.114187E-06,0.111313E-06,0.617706E-04,
24506 &-.327698E-08,0.717398E-02,0.529654E-03,0.971373E-07,0.315568E-06,
24507 &0.995871E-07,0.971373E-07,0.514764E-04,0.421954E-08,0.607950E-02,
24508 &0.442265E-03,0.850687E-07,0.272228E-06,0.871375E-07,0.850687E-07,
24509 &0.426580E-04,0.982709E-08,0.514311E-02,0.368716E-03,0.746164E-07,
24510 &0.233927E-06,0.763489E-07,0.746164E-07,0.352463E-04,0.137715E-07,
24511 &0.434349E-02,0.306920E-03,0.654439E-07,0.200291E-06,0.668838E-07,
24512 &0.654439E-07,0.290260E-04,0.163078E-07,0.366196E-02,0.255085E-03,
24513 &0.573307E-07,0.170932E-06,0.585192E-07,0.573307E-07,0.238196E-04/
24514 DATA (DL(K),K= 3656, 3740) /
24515 &0.177037E-07,0.308217E-02,0.211681E-03,0.501185E-07,0.145441E-06,
24516 &0.510931E-07,0.501185E-07,0.195033E-04,0.182028E-07,0.258987E-02,
24517 &0.175396E-03,0.436915E-07,0.123415E-06,0.444860E-07,0.436915E-07,
24518 &0.159423E-04,0.180204E-07,0.000000E+00,0.000000E+00,0.000000E+00,
24519 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24520 &0.206951E-01,0.123383E-02,0.903693E-07,0.903693E-07,0.903693E-07,
24521 &0.903693E-07,0.147928E-04,0.131925E-18,0.174566E-01,0.102241E-02,
24522 &0.892028E-07,0.129792E-07,0.885875E-07,0.892028E-07,0.328931E-04,
24523 &0.168541E-07,0.147092E-01,0.846741E-03,0.841992E-07,-.346085E-07,
24524 &0.832249E-07,0.841992E-07,0.410825E-04,0.262547E-07,0.123736E-01,
24525 &0.700287E-03,0.769173E-07,-.620958E-07,0.757563E-07,0.769173E-07,
24526 &0.418512E-04,0.305542E-07,0.103910E-01,0.578275E-03,0.688622E-07,
24527 &-.753692E-07,0.676306E-07,0.688622E-07,0.392599E-04,0.318183E-07,
24528 &0.871109E-02,0.476815E-03,0.611778E-07,-.782788E-07,0.599557E-07,
24529 &0.611778E-07,0.356221E-04,0.316149E-07,0.728984E-02,0.392546E-03,
24530 &0.537256E-07,-.749101E-07,0.525642E-07,0.537256E-07,0.312295E-04,
24531 &0.301630E-07,0.608951E-02,0.322656E-03,0.466227E-07,-.678673E-07/
24532 DATA (DL(K),K= 3741, 3825) /
24533 &0.455521E-07,0.466227E-07,0.265816E-04,0.278681E-07,0.507758E-02,
24534 &0.264779E-03,0.400790E-07,-.588670E-07,0.391148E-07,0.400790E-07,
24535 &0.223044E-04,0.251720E-07,0.422604E-02,0.216927E-03,0.341205E-07,
24536 &-.492124E-07,0.332680E-07,0.341205E-07,0.185283E-04,0.222885E-07,
24537 &0.351082E-02,0.177427E-03,0.287480E-07,-.397442E-07,0.280058E-07,
24538 &0.287480E-07,0.152122E-04,0.193702E-07,0.291126E-02,0.144878E-03,
24539 &0.239699E-07,-.309608E-07,0.233320E-07,0.239699E-07,0.123840E-04,
24540 &0.165481E-07,0.240962E-02,0.118102E-03,0.197695E-07,-.231453E-07,
24541 &0.192276E-07,0.197695E-07,0.100316E-04,0.139043E-07,0.199075E-02,
24542 &0.961132E-04,0.161186E-07,-.164194E-07,0.156628E-07,0.161186E-07,
24543 &0.808648E-05,0.114903E-07,0.164168E-02,0.780880E-04,0.129826E-07,
24544 &-.107955E-07,0.126029E-07,0.129826E-07,0.648861E-05,0.933575E-08,
24545 &0.135135E-02,0.633381E-04,0.103192E-07,-.622051E-08,0.100055E-07,
24546 &0.103192E-07,0.519042E-05,0.744979E-08,0.111036E-02,0.512898E-04,
24547 &0.808255E-08,-.260101E-08,0.782557E-08,0.808255E-08,0.414192E-05,
24548 &0.582811E-08,0.910718E-03,0.414657E-04,0.622640E-08,0.177583E-09,
24549 &0.601750E-08,0.622640E-08,0.329729E-05,0.445766E-08,0.745657E-03/
24550 DATA (DL(K),K= 3826, 3910) /
24551 &0.334694E-04,0.470431E-08,0.223586E-08,0.453577E-08,0.470431E-08,
24552 &0.261981E-05,0.331859E-08,0.000000E+00,0.000000E+00,0.000000E+00,
24553 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24554 &0.519165E-02,0.154752E-03,0.135983E-08,0.135983E-08,0.135983E-08,
24555 &0.135983E-08,0.445189E-06,0.165858E-19,0.420352E-02,0.123002E-03,
24556 &-.202651E-07,0.730203E-07,-.200511E-07,-.202651E-07,0.358557E-05,
24557 &-.213089E-07,0.340143E-02,0.977718E-04,-.356451E-07,0.114908E-06,
24558 &-.353066E-07,-.356451E-07,0.384652E-05,-.364475E-07,0.274771E-02,
24559 &0.776124E-04,-.435588E-07,0.139200E-06,-.431556E-07,-.435588E-07,
24560 &0.404834E-05,-.441752E-07,0.221524E-02,0.614950E-04,-.471629E-07,
24561 &0.150069E-06,-.467352E-07,-.471629E-07,0.391615E-05,-.476355E-07,
24562 &0.178268E-02,0.486476E-04,-.477545E-07,0.151420E-06,-.473296E-07,
24563 &-.477545E-07,0.334100E-05,-.481163E-07,0.143185E-02,0.384202E-04,
24564 &-.462359E-07,0.146515E-06,-.458316E-07,-.462359E-07,0.275426E-05,
24565 &-.465126E-07,0.114781E-02,0.302894E-04,-.434031E-07,0.137587E-06,
24566 &-.430295E-07,-.434031E-07,0.226010E-05,-.436143E-07,0.918288E-03,
24567 &0.238367E-04,-.398089E-07,0.126321E-06,-.394715E-07,-.398089E-07/
24568 DATA (DL(K),K= 3911, 3995) /
24569 &0.180947E-05,-.399700E-07,0.733193E-03,0.187249E-04,-.358525E-07,
24570 &0.113940E-06,-.355529E-07,-.358525E-07,0.142045E-05,-.359751E-07,
24571 &0.584227E-03,0.146823E-04,-.318183E-07,0.101291E-06,-.315563E-07,
24572 &-.318183E-07,0.110919E-05,-.319115E-07,0.464586E-03,0.114914E-04,
24573 &-.278936E-07,0.889550E-07,-.276671E-07,-.278936E-07,0.860964E-06,
24574 &-.279643E-07,0.368700E-03,0.897731E-05,-.241972E-07,0.773096E-07,
24575 &-.240033E-07,-.241972E-07,0.662825E-06,-.242508E-07,0.292013E-03,
24576 &0.700034E-05,-.208001E-07,0.665779E-07,-.206356E-07,-.208001E-07,
24577 &0.508061E-06,-.208406E-07,0.230814E-03,0.544870E-05,-.177366E-07,
24578 &0.568734E-07,-.175982E-07,-.177366E-07,0.388493E-06,-.177672E-07,
24579 &0.182078E-03,0.423324E-05,-.150157E-07,0.482316E-07,-.149000E-07,
24580 &-.150157E-07,0.296111E-06,-.150387E-07,0.143349E-03,0.328297E-05,
24581 &-.126295E-07,0.406343E-07,-.125335E-07,-.126295E-07,0.225104E-06,
24582 &-.126468E-07,0.112639E-03,0.254145E-05,-.105595E-07,0.340280E-07,
24583 &-.104803E-07,-.105595E-07,0.170871E-06,-.105726E-07,0.883377E-04,
24584 &0.196395E-05,-.878062E-08,0.283380E-07,-.871555E-08,-.878062E-08,
24585 &0.129517E-06,-.879039E-08,0.000000E+00,0.000000E+00,0.000000E+00/
24586 DATA (DL(K),K= 3996, 4000) /
24587 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24588C
24589 ANS = 0.
24590 IF (X.GT.0.9985) RETURN
24591 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
24592C
24593 IS = S/DELTA+1
24594 IS1 = IS+1
24595 DO 1 L=1,25
24596 KL = L+NDRV*25
24597 F1(L) = GF(I,IS,KL)
24598 F2(L) = GF(I,IS1,KL)
24599 1 CONTINUE
24600 A1 = DT_CKMTFF(X,F1)
24601 A2 = DT_CKMTFF(X,F2)
24602C A1=ALOG(A1)
24603C A2=ALOG(A2)
24604 S1 = (IS-1)*DELTA
24605 S2 = S1+DELTA
24606 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
24607C ANS=EXP(ANS)
24608 RETURN
24609 END
24610C
24611
24612*$ CREATE DT_CKMTFF.FOR
24613*COPY DT_CKMTFF
24614 FUNCTION DT_CKMTFF(X,FVL)
24615C**********************************************************************
24616C
24617C LOGARITHMIC INTERPOLATOR - WATCH OUT FOR NEGATIVE
24618C FUNCTIONS AND/OR X VALUES OUTSIDE THE RANGE 0 TO 1.
24619C NOTE: DIMENSION OF FVL IS OVERWRITTEN BY VALUE USED
24620C IN MAIN ROUTINE.
24621C
24622C**********************************************************************
24623
24624 SAVE
24625 DIMENSION FVL(25),XGRID(25)
24626 DATA NX,XGRID/25,.001,.002,.004,.008,.016,.032,.064,.1,.15,
24627 *.2,.25,.3,.35,.4,.45,.5,.55,.6,.65,.7,.75,.8,.85,.9,.95/
24628C
24629 DT_CKMTFF=0.
24630 DO 1 I=1,NX
24631 IF(X.LT.XGRID(I)) GO TO 2
24632 1 CONTINUE
24633 2 I=I-1
24634 IF(I.EQ.0) THEN
24635 I=I+1
24636 ELSE IF(I.GT.23) THEN
24637 I=23
24638 ENDIF
24639 J=I+1
24640 K=J+1
24641 AXI=LOG(XGRID(I))
24642 BXI=LOG(1.-XGRID(I))
24643 AXJ=LOG(XGRID(J))
24644 BXJ=LOG(1.-XGRID(J))
24645 AXK=LOG(XGRID(K))
24646 BXK=LOG(1.-XGRID(K))
24647 FI=LOG(ABS(FVL(I)) +1.E-15)
24648 FJ=LOG(ABS(FVL(J)) +1.E-16)
24649 FK=LOG(ABS(FVL(K)) +1.E-17)
24650 DET=AXI*(BXJ-BXK)+AXJ*(BXK-BXI)+AXK*(BXI-BXJ)
24651 ALOGA=(FI*(AXJ*BXK-AXK*BXJ)+FJ*(AXK*BXI-AXI*BXK)+FK*(AXI*BXJ-AXJ*
24652 $ BXI))/DET
24653 ALPHA=(FI*(BXJ-BXK)+FJ*(BXK-BXI)+FK*(BXI-BXJ))/DET
24654 BETA=(FI*(AXK-AXJ)+FJ*(AXI-AXK)+FK*(AXJ-AXI))/DET
24655 IF(ABS(ALPHA).GT.99..OR.ABS(BETA).GT.99..OR.ABS(ALOGA).GT.99.)
24656 1RETURN
24657C IF(ALPHA.GT.50..OR.BETA.GT.50.) THEN
24658C WRITE(6,2001) X,FVL
24659C 2001 FORMAT(8E12.4)
24660C WRITE(6,2001) ALPHA,BETA,ALOGA,DET
24661C ENDIF
24662 DT_CKMTFF=EXP(ALOGA)*X**ALPHA*(1.-X)**BETA
24663 RETURN
24664 END
24665
24666*$ CREATE DT_FLUINI.FOR
24667*COPY DT_FLUINI
24668*
24669*===fluini=============================================================*
24670*
24671 SUBROUTINE DT_FLUINI
24672
24673************************************************************************
24674* Initialisation of the nucleon-nucleon cross section fluctuation *
24675* treatment. The original version by J. Ranft. *
24676* This version dated 21.04.95 is revised by S. Roesler. *
24677************************************************************************
24678
24679 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24680 SAVE
24681 PARAMETER ( LINP = 10 ,
24682 & LOUT = 6 ,
24683 & LDAT = 9 )
24684 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
24685
24686 PARAMETER ( A = 0.1D0,
24687 & B = 0.893D0,
24688 & OM = 1.1D0,
24689 & N = 6,
24690 & DX = 0.003D0)
24691
24692* n-n cross section fluctuations
24693 PARAMETER (NBINS = 1000)
24694 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
24695 DIMENSION FLUSI(NBINS),FLUIX(NBINS)
24696
24697 WRITE(LOUT,1000)
24698 1000 FORMAT(/,1X,'FLUINI: hadronic cross section fluctuations ',
24699 & 'treated')
24700
24701 FLUSU = ZERO
24702 FLUSUU = ZERO
24703
24704 DO 1 I=1,NBINS
24705 X = DBLE(I)*DX
24706 FLUIX(I) = X
24707 FLUS = ((X-B)/(OM*B))**N
24708 IF (FLUS.LE.20.0D0) THEN
24709 FLUSI(I) = (X/B)*EXP(-FLUS)/(X/B+A)
24710 ELSE
24711 FLUSI(I) = ZERO
24712 ENDIF
24713 FLUSU = FLUSU+FLUSI(I)
24714 1 CONTINUE
24715 DO 2 I=1,NBINS
24716 FLUSUU = FLUSUU+FLUSI(I)/FLUSU
24717 FLUSI(I) = FLUSUU
24718 2 CONTINUE
24719
24720C WRITE(LOUT,1001)
24721C1001 FORMAT(1X,'FLUCTUATIONS')
24722C CALL PLOT(FLUIX,FLUSI,1000,1,1000,0.0D0,0.06D0,0.0D0,0.01D0)
24723
24724 DO 3 I=1,NBINS
24725 AF = DBLE(I)*0.001D0
24726 DO 4 J=1,NBINS
24727 IF (AF.LE.FLUSI(J)) THEN
24728 FLUIXX(I) = FLUIX(J)
24729 GOTO 5
24730 ENDIF
24731 4 CONTINUE
24732 5 CONTINUE
24733 3 CONTINUE
24734 FLUIXX(1) = FLUIX(1)
24735 FLUIXX(NBINS) = FLUIX(NBINS)
24736
24737 RETURN
24738 END
24739
24740*$ CREATE DT_SIGTBL.FOR
24741*COPY DT_SIGTBL
24742*
24743*===sigtab=============================================================*
24744*
24745 SUBROUTINE DT_SIGTBL(JP,JT,PTOT,SIGE,MODE)
24746
24747************************************************************************
24748* This version dated 18.11.95 is written by S. Roesler *
24749************************************************************************
24750
24751 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24752 SAVE
24753 PARAMETER ( LINP = 10 ,
24754 & LOUT = 6 ,
24755 & LDAT = 9 )
24756
24757 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24758 & OHALF=0.5D0,ONE=1.0D0)
24759 PARAMETER (PLO=0.01D0,PHI=20.0D0,NBINS=150)
24760
24761 LOGICAL LINIT
24762
24763* particle properties (BAMJET index convention)
24764 CHARACTER*8 ANAME
24765 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24766 & IICH(210),IIBAR(210),K1(210),K2(210)
24767
24768 DIMENSION SIGEP(5,NBINS+1),SIGEN(5,NBINS+1),IDSIG(23)
24769 DATA IDSIG / 1, 0, 0, 0, 0, 0, 0, 2, 0, 0,
24770 & 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
24771 & 0, 0, 5/
24772 DATA LINIT /.FALSE./
24773
24774* precalculation and tabulation of elastic cross sections
24775 IF (ABS(MODE).EQ.1) THEN
24776 IF (MODE.EQ.1)
24777 & OPEN(LDAT,FILE='outdata0/sigtab.out',STATUS='UNKNOWN')
24778 PLABLX = LOG10(PLO)
24779 PLABHX = LOG10(PHI)
24780 DPLAB = (PLABHX-PLABLX)/DBLE(NBINS)
24781 DO 1 I=1,NBINS+1
24782 PLAB = PLABLX+DBLE(I-1)*DPLAB
24783 PLAB = 10**PLAB
24784 DO 2 IPROJ=1,23
24785 IDX = IDSIG(IPROJ)
24786 IF (IDX.GT.0) THEN
24787C CALL DT_SIHNEL(IPROJ,1,PLAB,SIGEP(IDX,I))
24788C CALL DT_SIHNEL(IPROJ,8,PLAB,SIGEN(IDX,I))
24789 DUMZER = ZERO
24790 CALL DT_XSHN(IPROJ,1,PLAB,DUMZER,SIGTOT,SIGEP(IDX,I))
24791 CALL DT_XSHN(IPROJ,8,PLAB,DUMZER,SIGTOT,SIGEN(IDX,I))
24792 ENDIF
24793 2 CONTINUE
24794 IF (MODE.EQ.1) THEN
24795 WRITE(LDAT,1000) PLAB,(SIGEP(IDX,I),IDX=1,5),
24796 & (SIGEN(IDX,I),IDX=1,5)
24797 1000 FORMAT(F5.1,10F7.2)
24798 ENDIF
24799 1 CONTINUE
24800 IF (MODE.EQ.1) CLOSE(LDAT)
24801 LINIT = .TRUE.
24802 ELSE
24803 SIGE = -ONE
24804 IF (LINIT.AND.(JP.LE.23).AND.(PTOT.GE.PLO)
24805 & .AND.(PTOT.LE.PHI) ) THEN
24806 IDX = IDSIG(JP)
24807 IF ( (IDX.GT.0).AND.((JT.EQ.1).OR.(JT.EQ.8)) ) THEN
24808 PLABX = LOG10(PTOT)
24809 IF (PLABX.LE.PLABLX) THEN
24810 I1 = 1
24811 I2 = 1
24812 ELSEIF (PLABX.GE.PLABHX) THEN
24813 I1 = NBINS+1
24814 I2 = NBINS+1
24815 ELSE
24816 I1 = INT((PLABX-PLABLX)/DPLAB)+1
24817 I2 = I1+1
24818 ENDIF
24819 PLAB1X = PLABLX+DBLE(I1-1)*DPLAB
24820 PLAB2X = PLABLX+DBLE(I2-1)*DPLAB
24821 PBIN = PLAB2X-PLAB1X
24822 IF (PBIN.GT.TINY10) THEN
24823 RATX = (PLABX-PLAB1X)/(PLAB2X-PLAB1X)
24824 ELSE
24825 RATX = ZERO
24826 ENDIF
24827 IF (JT.EQ.1) THEN
24828 SIG1 = SIGEP(IDX,I1)
24829 SIG2 = SIGEP(IDX,I2)
24830 ELSE
24831 SIG1 = SIGEN(IDX,I1)
24832 SIG2 = SIGEN(IDX,I2)
24833 ENDIF
24834 SIGE = SIG1+RATX*(SIG2-SIG1)
24835 ENDIF
24836 ENDIF
24837 ENDIF
24838
24839 RETURN
24840 END
24841
24842*$ CREATE DT_XSTABL.FOR
24843*COPY DT_XSTABL
24844*
24845*===xstabl=============================================================*
24846*
24847 SUBROUTINE DT_XSTABL(WHAT,IXSQEL,IRATIO)
24848
24849 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24850 SAVE
24851 PARAMETER ( LINP = 10 ,
24852 & LOUT = 6 ,
24853 & LDAT = 9 )
24854 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24855 & OHALF=0.5D0,ONE=1.0D0,TWO=2.0D0)
24856 LOGICAL LLAB,LELOG,LQLOG
24857
24858* particle properties (BAMJET index convention)
24859 CHARACTER*8 ANAME
24860 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24861 & IICH(210),IIBAR(210),K1(210),K2(210)
24862* properties of interacting particles
24863 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
24864 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
24865* Glauber formalism: cross sections
24866 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
24867 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
24868 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
24869 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
24870 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
24871 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
24872 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
24873 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
24874 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
24875 & BSLOPE,NEBINI,NQBINI
24876* emulsion treatment
24877 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
24878 & NCOMPO,IEMUL
24879
24880 DIMENSION WHAT(6)
24881
24882 LLAB = (WHAT(1).GT.ZERO).OR.(WHAT(2).GT.ZERO)
24883 ELO = ABS(WHAT(1))
24884 EHI = ABS(WHAT(2))
24885 IF (ELO.GT.EHI) ELO = EHI
24886 LELOG = WHAT(3).LT.ZERO
24887 NEBINS = MAX(INT(ABS(WHAT(3))),1)
24888 DEBINS = (EHI-ELO)/DBLE(NEBINS)
24889 IF (LELOG) THEN
24890 AELO = LOG10(ELO)
24891 AEHI = LOG10(EHI)
24892 ADEBIN = (AEHI-AELO)/DBLE(NEBINS)
24893 ENDIF
24894 Q2LO = WHAT(4)
24895 Q2HI = WHAT(5)
24896 IF (Q2LO.GT.Q2HI) Q2LO = Q2HI
24897 LQLOG = WHAT(6).LT.ZERO
24898 NQBINS = MAX(INT(ABS(WHAT(6))),1)
24899 DQBINS = (Q2HI-Q2LO)/DBLE(NQBINS)
24900 IF (LQLOG) THEN
24901 AQ2LO = LOG10(Q2LO)
24902 AQ2HI = LOG10(Q2HI)
24903 ADQBIN = (AQ2HI-AQ2LO)/DBLE(NQBINS)
24904 ENDIF
24905
24906 IF ( ELO.EQ. EHI) NEBINS = 0
24907 IF (Q2LO.EQ.Q2HI) NQBINS = 0
24908
24909 WRITE(LOUT,1000) ELO,EHI,LLAB,IXSQEL,Q2LO,Q2HI,IJPROJ,IP,IT
24910 1000 FORMAT(/,1X,'XSTABL: E_lo =',E10.3,' GeV E_hi =',E10.3,
24911 & ' GeV Lab = ',L1,' qel: ',I2,/,10X,'Q2_lo =',F10.5,
24912 & ' GeV^2 Q2_hi =',F10.5,' GeV^2',/,10X,'id_p = ',I2,
24913 & ' A_p = ',I3,' A_t = ',I3,/)
24914
24915C IF (IJPROJ.NE.7) THEN
24916 WRITE(LOUT,'(1X,A,/)')'(E,STOT,SELA,SQEP,SQET,SQE2,SINE,SPROD)'
24917* normalize fractions of emulsion components
24918 IF (NCOMPO.GT.0) THEN
24919 SUMFRA = ZERO
24920 DO 10 I=1,NCOMPO
24921 SUMFRA = SUMFRA+EMUFRA(I)
24922 10 CONTINUE
24923 IF (SUMFRA.GT.ZERO) THEN
24924 DO 11 I=1,NCOMPO
24925 EMUFRA(I) = EMUFRA(I)/SUMFRA
24926 11 CONTINUE
24927 ENDIF
24928 ENDIF
24929C ELSE
24930C WRITE(LOUT,'(1X,A,/)') '(Q2,E,STOT,ETOT,SIN,EIN,STOT0)'
24931C ENDIF
24932 DO 1 I=1,NEBINS+1
24933 IF (LELOG) THEN
24934 E = 10**(AELO+DBLE(I-1)*ADEBIN)
24935 ELSE
24936 E = ELO+DBLE(I-1)*DEBINS
24937 ENDIF
24938 DO 2 J=1,NQBINS+1
24939 IF (LQLOG) THEN
24940 Q2 = 10**(AQ2LO+DBLE(J-1)*ADQBIN)
24941 ELSE
24942 Q2 = Q2LO+DBLE(J-1)*DQBINS
24943 ENDIF
24944c IF (IJPROJ.NE.7) THEN
24945 IF (LLAB) THEN
24946 PLAB = ZERO
24947 ECM = ZERO
24948 CALL DT_LTINI(IJPROJ,1,E,PPN0,ECM,0)
24949 ELSE
24950 ECM = E
24951 ENDIF
24952 XI = ZERO
24953 Q2I = ZERO
24954 IF (IJPROJ.EQ.7) Q2I = Q2
24955 IF (NCOMPO.GT.0) THEN
24956 DO 20 IC=1,NCOMPO
24957 IIT = IEMUMA(IC)
24958 CALL DT_XSGLAU(IP,IIT,IJPROJ,XI,Q2I,ECM,1,1,-IC)
24959 20 CONTINUE
24960 ELSE
24961 CALL DT_XSGLAU(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,-1)
24962C CALL AMPLIT(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,1)
24963 ENDIF
24964 IF (NCOMPO.GT.0) THEN
24965 XTOT = ZERO
24966 ETOT = ZERO
24967 XELA = ZERO
24968 EELA = ZERO
24969 XQEP = ZERO
24970 EQEP = ZERO
24971 XQET = ZERO
24972 EQET = ZERO
24973 XQE2 = ZERO
24974 EQE2 = ZERO
24975 XPRO = ZERO
24976 EPRO = ZERO
24977 XPRO1= ZERO
24978 XDEL = ZERO
24979 EDEL = ZERO
24980 XDQE = ZERO
24981 EDQE = ZERO
24982 DO 21 IC=1,NCOMPO
24983 XTOT = XTOT+EMUFRA(IC)*XSTOT(1,1,IC)
24984 ETOT = ETOT+EMUFRA(IC)*XETOT(1,1,IC)**2
24985 XELA = XELA+EMUFRA(IC)*XSELA(1,1,IC)
24986 EELA = EELA+EMUFRA(IC)*XEELA(1,1,IC)**2
24987 XQEP = XQEP+EMUFRA(IC)*XSQEP(1,1,IC)
24988 EQEP = EQEP+EMUFRA(IC)*XEQEP(1,1,IC)**2
24989 XQET = XQET+EMUFRA(IC)*XSQET(1,1,IC)
24990 EQET = EQET+EMUFRA(IC)*XEQET(1,1,IC)**2
24991 XQE2 = XQE2+EMUFRA(IC)*XSQE2(1,1,IC)
24992 EQE2 = EQE2+EMUFRA(IC)*XEQE2(1,1,IC)**2
24993 XPRO = XPRO+EMUFRA(IC)*XSPRO(1,1,IC)
24994 EPRO = EPRO+EMUFRA(IC)*XEPRO(1,1,IC)**2
24995 XDEL = XDEL+EMUFRA(IC)*XSDEL(1,1,IC)
24996 EDEL = EDEL+EMUFRA(IC)*XEDEL(1,1,IC)**2
24997 XDQE = XDQE+EMUFRA(IC)*XSDQE(1,1,IC)
24998 EDQE = EDQE+EMUFRA(IC)*XEDQE(1,1,IC)**2
24999 YPRO = XSTOT(1,1,IC)-XSELA(1,1,IC)
25000 & -XSQEP(1,1,IC)-XSQET(1,1,IC)
25001 & -XSQE2(1,1,IC)
25002 XPRO1= XPRO1+EMUFRA(IC)*YPRO
25003 21 CONTINUE
25004 ETOT = SQRT(ETOT)
25005 EELA = SQRT(EELA)
25006 EQEP = SQRT(EQEP)
25007 EQET = SQRT(EQET)
25008 EQE2 = SQRT(EQE2)
25009 EPRO = SQRT(EPRO)
25010 EDEL = SQRT(EDEL)
25011 EDQE = SQRT(EDQE)
25012 WRITE(LOUT,'(8E9.3)')
25013 & E,XTOT,XELA,XQEP,XQET,XQE2,XPRO,XPRO1
25014C WRITE(LOUT,'(4E9.3)')
25015C & E,XDEL,XDQE,XDEL+XDQE
25016 ELSE
25017 WRITE(LOUT,'(11E10.3)')
25018 & E,
25019 & XSTOT(1,1,1),XSELA(1,1,1),XSQEP(1,1,1),XSQET(1,1,1),
25020 & XSQE2(1,1,1),XSPRO(1,1,1),
25021 & XSTOT(1,1,1)-XSELA(1,1,1)-XSQEP(1,1,1)-XSQET(1,1,1)
25022 & -XSQE2(1,1,1),XSDEL(1,1,1),XSDQE(1,1,1),
25023 & XSDEL(1,1,1)+XSDQE(1,1,1)
25024C WRITE(LOUT,'(4E9.3)') E,XSDEL(1,1,1),XSDQE(1,1,1),
25025C & XSDEL(1,1,1)+XSDQE(1,1,1)
25026 ENDIF
25027c ELSE
25028c IF (LLAB) THEN
25029c IF (IT.GT.1) THEN
25030c IF (IXSQEL.EQ.0) THEN
25031cC CALL DT_SIGGA(IT, Q2, E,ZERO,ZERO,
25032cC CALL DT_SIGGA(IT, E,Q2,ZERO,ZERO,
25033c CALL DT_SIGGA(IT,ZERO,Q2,ZERO,E,
25034c & STOT,ETOT,SIN,EIN,STOT0)
25035c IF (IRATIO.EQ.1) THEN
25036c CALL DT_SIGGP( Q2, E,ZERO,ZERO,STGP,SIGP,SDGP)
25037cC CALL DT_SIGGP( E,Q2,ZERO,ZERO,STGP,SIGP,SDGP)
25038cC CALL DT_SIGGP(ZERO,Q2,ZERO,E,STGP,SIGP,SDGP)
25039c*!! save cross sections
25040c STOTA = STOT
25041c ETOTA = ETOT
25042c STOTP = STGP
25043c*!!
25044c STOT = STOT/(DBLE(IT)*STGP)
25045c SIN = SIN/(DBLE(IT)*SIGP)
25046c STOT0 = STGP
25047c ETOT = ZERO
25048c EIN = ZERO
25049c ENDIF
25050c ELSE
25051c WRITE(LOUT,*)
25052c & ' XSTABL: qel. xs. not implemented for nuclei'
25053c STOP
25054c ENDIF
25055c ELSE
25056c ETOT = ZERO
25057c EIN = ZERO
25058c STOT0= ZERO
25059c IF (IXSQEL.EQ.0) THEN
25060c CALL DT_SIGGP(ZERO,Q2,ZERO,E,STOT,SIN,SDIR)
25061c ELSE
25062c SIN = ZERO
25063c CALL DT_SIGVEL(ZERO,Q2,ZERO,E,IXSQEL,STOT,SIN,STOT0)
25064c ENDIF
25065c ENDIF
25066c ELSE
25067c IF (IT.GT.1) THEN
25068c IF (IXSQEL.EQ.0) THEN
25069c CALL DT_SIGGA(IT,ZERO,Q2,E,ZERO,
25070c & STOT,ETOT,SIN,EIN,STOT0)
25071c IF (IRATIO.EQ.1) THEN
25072c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STGP,SIGP,SDGP)
25073c*!! save cross sections
25074c STOTA = STOT
25075c ETOTA = ETOT
25076c STOTP = STGP
25077c*!!
25078c STOT = STOT/(DBLE(IT)*STGP)
25079c SIN = SIN/(DBLE(IT)*SIGP)
25080c STOT0 = STGP
25081c ETOT = ZERO
25082c EIN = ZERO
25083c ENDIF
25084c ELSE
25085c WRITE(LOUT,*)
25086c & ' XSTABL: qel. xs. not implemented for nuclei'
25087c STOP
25088c ENDIF
25089c ELSE
25090c ETOT = ZERO
25091c EIN = ZERO
25092c STOT0= ZERO
25093c IF (IXSQEL.EQ.0) THEN
25094c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STOT,SIN,SDIR)
25095c ELSE
25096c SIN = ZERO
25097c CALL DT_SIGVEL(ZERO,Q2,E,ZERO,IXSQEL,STOT,SIN,STOT0)
25098c ENDIF
25099c ENDIF
25100c ENDIF
25101cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,STOTA,ETOTA,STOTP,ZERO
25102cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,SDIR
25103cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,STOT0
25104c WRITE(LOUT,'(1X,6E10.3)')Q2,E,STOT,ETOT,SIN,EIN
25105c ENDIF
25106 2 CONTINUE
25107 1 CONTINUE
25108
25109 RETURN
25110 END
25111
25112*$ CREATE DT_TESTXS.FOR
25113*COPY DT_TESTXS
25114*
25115*===testxs=============================================================*
25116*
25117 SUBROUTINE DT_TESTXS
25118
25119 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25120 SAVE
25121
25122 DIMENSION XSTOT(26,2),XSELA(26,2)
25123
25124 OPEN(10,FILE='testxs_ptot.out',STATUS='UNKNOWN')
25125 OPEN(11,FILE='testxs_pela.out',STATUS='UNKNOWN')
25126 OPEN(12,FILE='testxs_ntot.out',STATUS='UNKNOWN')
25127 OPEN(13,FILE='testxs_nela.out',STATUS='UNKNOWN')
25128 DUMECM = 0.0D0
25129 PLABL = 0.01D0
25130 PLABH = 10000.0D0
25131 NBINS = 120
25132 APLABL = LOG10(PLABL)
25133 APLABH = LOG10(PLABH)
25134 ADPLAB = (APLABH-APLABL)/DBLE(NBINS)
25135 DO 1 I=1,NBINS+1
25136 ADP = APLABL+DBLE(I-1)*ADPLAB
25137 P = 10.0D0**ADP
25138 DO 2 J=1,26
25139 CALL DT_XSHN(J,1,P,DUMECM,XSTOT(J,1),XSELA(J,1))
25140 CALL DT_XSHN(J,8,P,DUMECM,XSTOT(J,2),XSELA(J,2))
25141 2 CONTINUE
25142 WRITE(10,1000) P,(XSTOT(K,1),K=1,26)
25143 WRITE(11,1000) P,(XSELA(K,1),K=1,26)
25144 WRITE(12,1000) P,(XSTOT(K,2),K=1,26)
25145 WRITE(13,1000) P,(XSELA(K,2),K=1,26)
25146 1 CONTINUE
25147 1000 FORMAT(F8.3,26F9.3)
25148
25149 RETURN
25150 END
25151
25152************************************************************************
25153* *
25154* DTUNUC 2.0: library routines *
25155* processed by S. Roesler, 6.5.95 *
25156* *
25157************************************************************************
25158*
25159* 1) Handling of parton momenta
25160* SUBROUTINE MASHEL
25161* SUBROUTINE DFERMI
25162*
25163* 2) Handling of parton flavors and particle indices
25164* INTEGER FUNCTION IPDG2B
25165* INTEGER FUNCTION IB2PDG
25166* INTEGER FUNCTION IQUARK
25167* INTEGER FUNCTION IBJQUA
25168* INTEGER FUNCTION ICIHAD
25169* INTEGER FUNCTION IPDGHA
25170* INTEGER FUNCTION MCHAD
25171* SUBROUTINE FLAHAD
25172*
25173* 3) Energy-momentum and quantum number conservation check routines
25174* SUBROUTINE EMC1
25175* SUBROUTINE EMC2
25176* SUBROUTINE EVTEMC
25177* SUBROUTINE EVTFLC
25178* SUBROUTINE EVTCHG
25179*
25180* 4) Transformations
25181* SUBROUTINE LTINI
25182* SUBROUTINE LTRANS
25183* SUBROUTINE LTNUC
25184* SUBROUTINE DALTRA
25185* SUBROUTINE DTRAFO
25186* SUBROUTINE STTRAN
25187* SUBROUTINE MYTRAN
25188* SUBROUTINE LT2LAO
25189* SUBROUTINE LT2LAB
25190*
25191* 5) Sampling from distributions
25192* INTEGER FUNCTION NPOISS
25193* DOUBLE PRECISION FUNCTION SAMPXB
25194* DOUBLE PRECISION FUNCTION SAMPEX
25195* DOUBLE PRECISION FUNCTION SAMSQX
25196* DOUBLE PRECISION FUNCTION BETREJ
25197* DOUBLE PRECISION FUNCTION DGAMRN
25198* DOUBLE PRECISION FUNCTION DBETAR
25199* SUBROUTINE RANNOR
25200* SUBROUTINE DPOLI
25201* SUBROUTINE DSFECF
25202* SUBROUTINE RACO
25203*
25204* 6) Special functions, algorithms and service routines
25205* DOUBLE PRECISION FUNCTION YLAMB
25206* SUBROUTINE SORT
25207* SUBROUTINE SORT1
25208* SUBROUTINE DT_XTIME
25209*
25210* 7) Random number generator package
25211* DOUBLE PRECISION FUNCTION DT_RNDM
25212* SUBROUTINE DT_RNDMST
25213* SUBROUTINE DT_RNDMIN
25214* SUBROUTINE DT_RNDMOU
25215* SUBROUTINE DT_RNDMTE
25216*
25217************************************************************************
25218* *
25219* 1) Handling of parton momenta *
25220* *
25221************************************************************************
25222*$ CREATE DT_MASHEL.FOR
25223*COPY DT_MASHEL
25224*
25225*===mashel=============================================================*
25226*
25227 SUBROUTINE DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ)
25228
25229************************************************************************
25230* *
25231* rescaling of momenta of two partons to put both *
25232* on mass shell *
25233* *
25234* input: PA1,PA2 input momentum vectors *
25235* XM1,2 desired masses of particles afterwards *
25236* P1,P2 changed momentum vectors *
25237* *
25238* The original version is written by R. Engel. *
25239* This version dated 12.12.94 is modified by S. Roesler. *
25240************************************************************************
25241
25242 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25243 SAVE
25244 PARAMETER ( LINP = 10 ,
25245 & LOUT = 6 ,
25246 & LDAT = 9 )
25247 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
25248
25249 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
25250
25251 IREJ = 0
25252
25253* Lorentz transformation into system CMS
25254 PX = PA1(1)+PA2(1)
25255 PY = PA1(2)+PA2(2)
25256 PZ = PA1(3)+PA2(3)
25257 EE = PA1(4)+PA2(4)
25258 XPTOT = SQRT(PX**2+PY**2+PZ**2)
25259 XMS = (EE-XPTOT)*(EE+XPTOT)
25260 IF(XMS.LT.(XM1+XM2)**2) THEN
25261C WRITE(LOUT,'(3E12.4)')XMS,XM1,XM2
25262 GOTO 9999
25263 ENDIF
25264 XMS = SQRT(XMS)
25265 BGX = PX/XMS
25266 BGY = PY/XMS
25267 BGZ = PZ/XMS
25268 GAM = EE/XMS
25269 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,PA1(1),PA1(2),PA1(3),
25270 & PA1(4),PTOT1,P1(1),P1(2),P1(3),P1(4))
25271* rotation angles
25272 COD = P1(3)/PTOT1
25273C SID = SQRT((ONE-COD)*(ONE+COD))
25274 PPT = SQRT(P1(1)**2+P1(2)**2)
25275 SID = PPT/PTOT1
25276 COF = ONE
25277 SIF = ZERO
25278 IF(PTOT1*SID.GT.TINY10) THEN
25279 COF = P1(1)/(SID*PTOT1)
25280 SIF = P1(2)/(SID*PTOT1)
25281 ANORF = SQRT(COF*COF+SIF*SIF)
25282 COF = COF/ANORF
25283 SIF = SIF/ANORF
25284 ENDIF
25285* new CM momentum and energies (for masses XM1,XM2)
25286 XM12 = SIGN(XM1**2,XM1)
25287 XM22 = SIGN(XM2**2,XM2)
25288 SS = XMS**2
25289 PCMP = DT_YLAMB(SS,XM12,XM22)/(2.D0*XMS)
25290 EE1 = SQRT(XM12+PCMP**2)
25291 EE2 = XMS-EE1
25292* back rotation
25293 MODE = 1
25294 CALL DT_MYTRAN(MODE,ZERO,ZERO,PCMP,COD,SID,COF,SIF,XX,YY,ZZ)
25295 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE1,
25296 & PTOT1,P1(1),P1(2),P1(3),P1(4))
25297 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,-XX,-YY,-ZZ,EE2,
25298 & PTOT2,P2(1),P2(2),P2(3),P2(4))
25299* check consistency
25300 DEL = XMS*0.0001D0
25301 IF (ABS(PX-P1(1)-P2(1)).GT.DEL) THEN
25302 IDEV = 1
25303 ELSEIF (ABS(PY-P1(2)-P2(2)).GT.DEL) THEN
25304 IDEV = 2
25305 ELSEIF (ABS(PZ-P1(3)-P2(3)).GT.DEL) THEN
25306 IDEV = 3
25307 ELSEIF (ABS(EE-P1(4)-P2(4)).GT.DEL) THEN
25308 IDEV = 4
25309 ELSE
25310 IDEV = 0
25311 ENDIF
25312 IF (IDEV.NE.0) THEN
25313 WRITE(LOUT,'(/1X,A,I3)')
25314 & 'MASHEL: inconsistent transformation',IDEV
25315 WRITE(LOUT,'(1X,A)') 'MASHEL: input momenta/masses:'
25316 WRITE(LOUT,'(1X,5E12.5)') (PA1(K),K=1,4),XM1
25317 WRITE(LOUT,'(1X,5E12.5)') (PA2(K),K=1,4),XM2
25318 WRITE(LOUT,'(1X,A)') 'MASHEL: output momenta:'
25319 WRITE(LOUT,'(5X,4E12.5)') (P1(K),K=1,4)
25320 WRITE(LOUT,'(5X,4E12.5)') (P2(K),K=1,4)
25321 ENDIF
25322 RETURN
25323
25324 9999 CONTINUE
25325 IREJ = 1
25326 RETURN
25327 END
25328
25329*$ CREATE DT_DFERMI.FOR
25330*COPY DT_DFERMI
25331*
25332*===dfermi=============================================================*
25333*
25334 SUBROUTINE DT_DFERMI(GPART)
25335
25336************************************************************************
25337* Find largest of three random numbers. *
25338************************************************************************
25339
25340 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25341 SAVE
25342
25343 DIMENSION G(3)
25344
25345 DO 10 I=1,3
25346 G(I)=DT_RNDM(GPART)
25347 10 CONTINUE
25348 IF (G(3).LT.G(2)) GOTO 40
25349 IF (G(3).LT.G(1)) GOTO 30
25350 GPART = G(3)
25351 20 RETURN
25352 30 GPART = G(1)
25353 GOTO 20
25354 40 IF (G(2).LT.G(1)) GOTO 30
25355 GPART = G(2)
25356 GOTO 20
25357
25358 END
25359
25360************************************************************************
25361* *
25362* 2) Handling of parton flavors and particle indices *
25363* *
25364************************************************************************
25365*$ CREATE IDT_IPDG2B.FOR
25366*COPY IDT_IPDG2B
25367*
25368*===ipdg2b=============================================================*
25369*
25370 INTEGER FUNCTION IDT_IPDG2B(ID,NN,MODE)
25371
25372************************************************************************
25373* *
25374* conversion of quark numbering scheme *
25375* *
25376* input: PDG parton numbering *
25377* for diquarks: NN number of the constituent quark *
25378* (e.g. ID=2301,NN=1 -> ICONV2=1) *
25379* *
25380* output: BAMJET particle codes *
25381* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25382* 2 d 8 a-d -2 a-d *
25383* 3 s 9 a-s -3 a-s *
25384* 4 c 10 a-c -4 a-c *
25385* *
25386* This is a modified version of ICONV2 written by R. Engel. *
25387* This version dated 13.12.94 is written by S. Roesler. *
25388************************************************************************
25389
25390 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25391 SAVE
25392 PARAMETER ( LINP = 10 ,
25393 & LOUT = 6 ,
25394 & LDAT = 9 )
25395
25396 IDA = ABS(ID)
25397* diquarks
25398 IF (IDA.GT.6) THEN
25399 KF = 3
25400 IF (IDA.GE.1000) KF = 4
25401 IDA = IDA/(10**(KF-NN))
25402 IDA = MOD(IDA,10)
25403 ENDIF
25404* exchange up and dn quarks
25405 IF (IDA.EQ.1) THEN
25406 IDA = 2
25407 ELSEIF (IDA.EQ.2) THEN
25408 IDA = 1
25409 ENDIF
25410* antiquarks
25411 IF (ID.LT.0) THEN
25412 IF (MODE.EQ.1) THEN
25413 IDA = IDA+6
25414 ELSE
25415 IDA = -IDA
25416 ENDIF
25417 ENDIF
25418 IDT_IPDG2B = IDA
25419
25420 RETURN
25421 END
25422
25423*$ CREATE IDT_IB2PDG.FOR
25424*COPY IDT_IB2PDG
25425*
25426*===ib2pdg=============================================================*
25427*
25428 INTEGER FUNCTION IDT_IB2PDG(ID1,ID2,MODE)
25429
25430************************************************************************
25431* *
25432* conversion of quark numbering scheme *
25433* *
25434* input: BAMJET particle codes *
25435* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25436* 2 d 8 a-d -2 a-d *
25437* 3 s 9 a-s -3 a-s *
25438* 4 c 10 a-c -4 a-c *
25439* *
25440* output: PDG parton numbering *
25441* *
25442* This version dated 13.12.94 is written by S. Roesler. *
25443************************************************************************
25444
25445 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25446 SAVE
25447 PARAMETER ( LINP = 10 ,
25448 & LOUT = 6 ,
25449 & LDAT = 9 )
25450
25451 DIMENSION IHKKQ(-6:6),IHKKQQ(-3:3,-3:3)
25452 DATA IHKKQ/-6,-5,-4,-3,-1,-2,0,2,1,3,4,5,6/
25453 DATA IHKKQQ/-3303,-3103,-3203,0,0,0,0, -3103,-1103,-2103,0,0,0,0,
25454 &-3203,-2103,-2203,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,2203,2103,3203,
25455 &0,0,0,0,2103,1103,3103, 0,0,0,0,3203,3103,3303/
25456
25457 IDA = ID1
25458 IDB = ID2
25459 IF (MODE.EQ.1) THEN
25460 IF (ID1.GT.6) IDA = -(ID1-6)
25461 IF (ID2.GT.6) IDB = -(ID2-6)
25462 ENDIF
25463 IF (ID2.EQ.0) THEN
25464 IDT_IB2PDG = IHKKQ(IDA)
25465 ELSE
25466 IDT_IB2PDG = IHKKQQ(IDA,IDB)
25467 ENDIF
25468
25469 RETURN
25470 END
25471
25472*$ CREATE IDT_IQUARK.FOR
25473*COPY IDT_IQUARK
25474*
25475*===ipdgqu=============================================================*
25476*
25477 INTEGER FUNCTION IDT_IQUARK(K,IDBAMJ)
25478
25479************************************************************************
25480* *
25481* quark contents according to PDG conventions *
25482* (random selection in case of quark mixing) *
25483* *
25484* input: IDBAMJ BAMJET particle code *
25485* K 1..3 quark number *
25486* *
25487* output: 1 d (anti --> neg.) *
25488* 2 u *
25489* 3 s *
25490* 4 c *
25491* *
25492* This version written by R. Engel. *
25493************************************************************************
25494
25495 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25496 SAVE
25497
25498 IQ = IDT_IBJQUA(K,IDBAMJ)
25499* quark-antiquark
25500 IF (IQ.GT.6) THEN
25501 IQ = 6-IQ
25502 ENDIF
25503* exchange of up and down
25504 IF (ABS(IQ).EQ.1) THEN
25505 IQ = SIGN(2,IQ)
25506 ELSEIF (ABS(IQ).EQ.2) THEN
25507 IQ = SIGN(1,IQ)
25508 ENDIF
25509 IDT_IQUARK = IQ
25510
25511 RETURN
25512 END
25513
25514*$ CREATE IDT_IBJQUA.FOR
25515*COPY IDT_IBJQUA
25516*
25517*===ibamq==============================================================*
25518*
25519 INTEGER FUNCTION IDT_IBJQUA(K,IDBAMJ)
25520
25521************************************************************************
25522* *
25523* quark contents according to BAMJET conventions *
25524* (random selection in case of quark mixing) *
25525* *
25526* input: IDBAMJ BAMJET particle code *
25527* K 1..3 quark number *
25528* *
25529* output: 1 u 7 u bar *
25530* 2 d 8 d bar *
25531* 3 s 9 s bar *
25532* 4 c 10 c bar *
25533* *
25534* This version written by R. Engel. *
25535************************************************************************
25536
25537 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25538 SAVE
25539
25540 DIMENSION ITAB(3,210)
25541 DATA ((ITAB(I,K),I=1,3),K=1,30) /
25542 & 1, 1, 2, 7, 7, 8, 0, 0, 0,
25543 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25544 & 0, 0, 0, 1, 2, 2, 7, 8, 8,
25545*sr 10.1.94
25546C & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25547 & 0, 0, 0, 0, 0, 0, 3, 8, 0,
25548*
25549 & 1, 8, 0, 2, 7, 0, 1, 9, 0,
25550*sr 10.1.94
25551C & 3, 7, 0, 0, 0, 0, 0, 0, 0,
25552 & 3, 7, 0, 3, 1, 2, 9, 7, 8,
25553*sr 10.1.94
25554C & 0, 0, 0, 2, 2, 3, 1, 1, 3,
25555 & 2, 9, 0, 2, 2, 3, 1, 1, 3,
25556*
25557 & 1, 2, 3, 201,202, 0, 2, 9, 0,
25558 & 3, 8, 0, 0, 0, 0, 0, 0, 0,
25559 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25560 DATA ((ITAB(I,K),I=1,3),K=31,60) /
25561 & 3, 9, 0, 1, 8, 0, 203,204, 0,
25562 & 2, 7, 0, 0, 0, 0, 1, 9, 0,
25563 & 2, 9, 0, 3, 7, 0, 3, 8, 0,
25564 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25565 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25566 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25567 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25568 & 0, 0, 0, 1, 1, 1, 1, 1, 2,
25569 & 1, 2, 2, 2, 2, 2, 0, 0, 0,
25570 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25571 DATA ((ITAB(I,K),I=1,3),K=61,90) /
25572 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25573 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25574 & 7, 7, 7, 7, 7, 8, 7, 8, 8,
25575 & 8, 8, 8, 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, 0, 0, 0, 0, 0, 0,
25580 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25581 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25582 DATA ((ITAB(I,K),I=1,3),K=91,120) /
25583 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25584 & 0, 0, 0, 0, 0, 0, 3, 9, 0,
25585 & 1, 3, 3, 2, 3, 3, 7, 7, 9,
25586 & 7, 8, 9, 8, 8, 9, 7, 9, 9,
25587 & 8, 9, 9, 1, 1, 3, 1, 2, 3,
25588 & 2, 2, 3, 1, 3, 3, 2, 3, 3,
25589 & 3, 3, 3, 7, 7, 9, 7, 8, 9,
25590 & 8, 8, 9, 7, 9, 9, 8, 9, 9,
25591 & 9, 9, 9, 4, 7, 0, 4, 8, 0,
25592 & 2, 10, 0, 1, 10, 0, 4, 9, 0 /
25593 DATA ((ITAB(I,K),I=1,3),K=121,150) /
25594 & 3, 10, 0, 4, 10, 0, 4, 7, 0,
25595 & 4, 8, 0, 2, 10, 0, 1, 10, 0,
25596 & 4, 9, 0, 3, 10, 0, 4, 10, 0,
25597 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25598 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25599 & 0, 0, 0, 1, 2, 4, 1, 3, 4,
25600 & 2, 3, 4, 1, 1, 4, 0, 0, 0,
25601 & 2, 2, 4, 0, 0, 0, 0, 0, 0,
25602 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25603 & 3, 4, 4, 7, 8, 10, 7, 9, 10 /
25604 DATA ((ITAB(I,K),I=1,3),K=151,180) /
25605 & 8, 9, 10, 7, 7, 10, 0, 0, 0,
25606 & 8, 8, 10, 0, 0, 0, 0, 0, 0,
25607 & 9, 9, 10, 7, 10, 10, 8, 10, 10,
25608 & 9, 10, 10, 1, 1, 4, 1, 2, 4,
25609 & 2, 2, 4, 1, 3, 4, 2, 3, 4,
25610 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25611 & 3, 4, 4, 4, 4, 4, 7, 7, 10,
25612 & 7, 8, 10, 8, 8, 10, 7, 9, 10,
25613 & 8, 9, 10, 9, 9, 10, 7, 10, 10,
25614 & 8, 10, 10, 9, 10, 10, 10, 10, 10 /
25615 DATA ((ITAB(I,K),I=1,3),K=181,210) /
25616 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25617 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25618 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25619 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25620 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25621 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25622 & 0, 0, 0, 0, 0, 0, 1, 7, 0,
25623 & 2, 8, 0, 1, 7, 0, 2, 8, 0,
25624 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25625 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25626 DATA IDOLD /0/
25627
25628 ONE = 1.0D0
25629 IF (ITAB(1,IDBAMJ).LE.200) THEN
25630 ID = ITAB(K,IDBAMJ)
25631 ELSE
25632 IF(IDOLD.NE.IDBAMJ) THEN
25633 IT = AINT((ITAB(2,IDBAMJ)-ITAB(1,IDBAMJ)+0.999999D0)*
25634 & DT_RNDM(ONE)+ITAB(1,IDBAMJ))
25635 ELSE
25636 IDOLD = 0
25637 ENDIF
25638 ID = ITAB(K,IT)
25639 ENDIF
25640 IDOLD = IDBAMJ
25641 IDT_IBJQUA = ID
25642
25643 RETURN
25644 END
25645
25646*$ CREATE IDT_ICIHAD.FOR
25647*COPY IDT_ICIHAD
25648*
25649*===icihad=============================================================*
25650*
25651 INTEGER FUNCTION IDT_ICIHAD(MCIND)
25652
25653************************************************************************
25654* Conversion of particle index PDG proposal --> BAMJET-index scheme *
25655* This is a completely new version dated 25.10.95. *
25656* Renamed to be not in conflict with the modified PHOJET-version *
25657************************************************************************
25658
25659 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25660 SAVE
25661
25662* hadron index conversion (BAMJET <--> PDG)
25663 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25664 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25665 & IAMCIN(210)
25666
25667 IDT_ICIHAD = 0
25668 KPDG = ABS(MCIND)
25669 IF ((KPDG.EQ.0).OR.(KPDG.GT.70000)) RETURN
25670 IF (MCIND.LT.0) THEN
25671 JSIGN = 1
25672 ELSE
25673 JSIGN = 2
25674 ENDIF
25675 IF (KPDG.GE.10000) THEN
25676 DO 1 I=1,19
25677 IDT_ICIHAD = IBAM5(JSIGN,I)
25678 IF (IPDG5(JSIGN,I).EQ.MCIND) GOTO 5
25679 IDT_ICIHAD = 0
25680 1 CONTINUE
25681 ELSEIF (KPDG.GE.1000) THEN
25682 DO 2 I=1,29
25683 IDT_ICIHAD = IBAM4(JSIGN,I)
25684 IF (IPDG4(JSIGN,I).EQ.MCIND) GOTO 5
25685 IDT_ICIHAD = 0
25686 2 CONTINUE
25687 ELSEIF (KPDG.GE.100) THEN
25688 DO 3 I=1,22
25689 IDT_ICIHAD = IBAM3(JSIGN,I)
25690 IF (IPDG3(JSIGN,I).EQ.MCIND) GOTO 5
25691 IDT_ICIHAD = 0
25692 3 CONTINUE
25693 ELSEIF (KPDG.GE.10) THEN
25694 DO 4 I=1,7
25695 IDT_ICIHAD = IBAM2(JSIGN,I)
25696 IF (IPDG2(JSIGN,I).EQ.MCIND) GOTO 5
25697 IDT_ICIHAD = 0
25698 4 CONTINUE
25699 ENDIF
25700 5 CONTINUE
25701
25702 RETURN
25703 END
25704
25705*$ CREATE IDT_IPDGHA.FOR
25706*COPY IDT_IPDGHA
25707*
25708*===ipdgha=============================================================*
25709*
25710 INTEGER FUNCTION IDT_IPDGHA(MCIND)
25711
25712************************************************************************
25713* Conversion of particle index BAMJET-index scheme --> PDG proposal *
25714* Adopted from the original by S. Roesler. This version dated 12.5.95 *
25715* Renamed to be not in conflict with the modified PHOJET-version *
25716************************************************************************
25717
25718 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25719 SAVE
25720
25721* hadron index conversion (BAMJET <--> PDG)
25722 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25723 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25724 & IAMCIN(210)
25725
25726 IDT_IPDGHA = IAMCIN(MCIND)
25727
25728 RETURN
25729 END
25730
25731*$ CREATE DT_FLAHAD.FOR
25732*COPY DT_FLAHAD
25733*
25734*===flahad=============================================================*
25735*
25736 SUBROUTINE DT_FLAHAD(ID,IF1,IF2,IF3)
25737
25738************************************************************************
25739* sampling of FLAvor composition for HADrons/photons *
25740* ID BAMJET-id of hadron *
25741* IF1,2,3 flavor content *
25742* (u,d,s: 1,2,3; au,ad,as: -1,-1,-3) *
25743* Note: - u,d numbering as in BAMJET *
25744* - ID .le. 30 !! *
25745* This version dated 12.03.96 is written by S. Roesler *
25746************************************************************************
25747
25748 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25749 SAVE
25750
25751* auxiliary common for reggeon exchange (DTUNUC 1.x)
25752 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
25753 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
25754 & IQTCHR(-6:6),MQUARK(3,39)
25755
25756 DIMENSION JSEL(3,6)
25757 DATA JSEL/ 1,2,3, 2,3,1, 3,1,2, 1,3,2, 2,1,3, 3,2,1/
25758
25759 ONE = 1.0D0
25760 IF (ID.EQ.7) THEN
25761* photon (charge dependent flavour sampling)
25762 K = INT(DT_RNDM(ONE)*6.D0+1.D0)
25763 IF (K.LE.4) THEN
25764 IF1 = 2
25765 IF2 = -2
25766 ELSE IF(K.EQ.5) THEN
25767 IF1 = 1
25768 IF2 = -1
25769 ELSE
25770 IF1 = 3
25771 IF2 = -3
25772 ENDIF
25773 IF(DT_RNDM(ONE).LT.0.5D0) THEN
25774 K = IF1
25775 IF1 = IF2
25776 IF2 = K
25777 ENDIF
25778 IF3 = 0
25779 ELSE
25780* hadron
25781 IX = INT(1.0D0+5.99999D0*DT_RNDM(ONE))
25782 IF1 = MQUARK(JSEL(1,IX),ID)
25783 IF2 = MQUARK(JSEL(2,IX),ID)
25784 IF3 = MQUARK(JSEL(3,IX),ID)
25785 IF ((IF1.EQ.0).AND.(IF3.NE.0)) THEN
25786 IF1 = IF3
25787 IF3 = 0
25788 ELSEIF ((IF2.EQ.0).AND.(IF3.NE.0)) THEN
25789 IF2 = IF3
25790 IF3 = 0
25791 ENDIF
25792 ENDIF
25793
25794 RETURN
25795 END
25796
25797*$ CREATE IDT_MCHAD.FOR
25798*COPY IDT_MCHAD
25799*
25800*===mchad==============================================================*
25801*
25802 INTEGER FUNCTION IDT_MCHAD(ITDTU)
25803
25804************************************************************************
25805* Conversion of particle index BAMJET-index scheme --> HADRIN index s. *
25806* Adopted from the original by S. Roesler. This version dated 6.5.95 *
25807* *
25808* Last change 28.12.2006 by S. Roesler. *
25809************************************************************************
25810
25811 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25812 SAVE
25813
25814 DIMENSION ITRANS(210)
25815 DATA ITRANS / 1, 2, -1, -1, -1, -1, -1, 8, 9, -1, -1, 24, 13, 14,
25816 &15, 16, 8, 9, 25, 8, 1, 8, 23, 24, 25, -1, -1, -1, -1, -1, 23, 13,
25817 &23, 14, 23, 15, 24, 16, 25, 15, 24, 16, 25, 15, 24, 16, 25, 1, 8,
25818 &8, 8, 1, 1, 1, 8, 8, 1, 1, 8, 8, 1, 8, 1, 8, 1, 8, 2, 2, 9, 9, 2,
25819 &2, 9, 9, 2, 9, 1, 13, 23, 14, 1, 1, 8, 8, 1, 1, 23, 14, 1, 8, 1,
25820 &8, 1, 8, 23, 23, 8, 8, 2, 9, 9, 9, 9, 1, 8, 8, 8, 8, 8, 2, 9, 9,
25821 &9, 9, 9, 85*- 1,7*-1,1,8,-1/
25822
25823 IF ( ITDTU .GT. 0 ) THEN
25824 IDT_MCHAD = ITRANS(ITDTU)
25825 ELSE
25826 IDT_MCHAD = -1
25827 END IF
25828
25829 RETURN
25830 END
25831
25832************************************************************************
25833* *
25834* 3) Energy-momentum and quantum number conservation check routines *
25835* *
25836************************************************************************
25837*$ CREATE DT_EMC1.FOR
25838*COPY DT_EMC1
25839*
25840*===emc1===============================================================*
25841*
25842 SUBROUTINE DT_EMC1(PP1,PP2,PT1,PT2,MODE,IPOS,IREJ)
25843
25844************************************************************************
25845* This version dated 15.12.94 is written by S. Roesler *
25846************************************************************************
25847
25848 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25849 SAVE
25850 PARAMETER ( LINP = 10 ,
25851 & LOUT = 6 ,
25852 & LDAT = 9 )
25853 PARAMETER (TINY10=1.0D-10)
25854
25855 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
25856
25857 IREJ = 0
25858
25859 IF ((MODE.EQ.0).OR.(ABS(MODE).GT.3))
25860 & WRITE(LOUT,'(1X,A,I6)')'EMC1: not supported MODE ',MODE
25861
25862 IF ((MODE.GT.0).AND.(MODE.LT.3)) THEN
25863 IF (MODE.EQ.1) THEN
25864 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),1,IDUM,IDUM)
25865 ELSEIF (MODE.EQ.2) THEN
25866 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),2,IDUM,IDUM)
25867 ENDIF
25868 CALL DT_EVTEMC(PP2(1),PP2(2),PP2(3),PP2(4),2,IDUM,IDUM)
25869 CALL DT_EVTEMC(PT1(1),PT1(2),PT1(3),PT1(4),2,IDUM,IDUM)
25870 CALL DT_EVTEMC(PT2(1),PT2(2),PT2(3),PT2(4),2,IDUM,IDUM)
25871 ELSEIF (MODE.LT.0) THEN
25872 IF (MODE.EQ.-1) THEN
25873 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),1,IDUM,IDUM)
25874 ELSEIF (MODE.EQ.-2) THEN
25875 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),2,IDUM,IDUM)
25876 ENDIF
25877 CALL DT_EVTEMC(-PP2(1),-PP2(2),-PP2(3),-PP2(4),2,IDUM,IDUM)
25878 CALL DT_EVTEMC(-PT1(1),-PT1(2),-PT1(3),-PT1(4),2,IDUM,IDUM)
25879 CALL DT_EVTEMC(-PT2(1),-PT2(2),-PT2(3),-PT2(4),2,IDUM,IDUM)
25880 ENDIF
25881
25882 IF (ABS(MODE).EQ.3) THEN
25883 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,IPOS,IREJ1)
25884 IF (IREJ1.NE.0) GOTO 9999
25885 ENDIF
25886 RETURN
25887
25888 9999 CONTINUE
25889 IREJ = 1
25890 RETURN
25891 END
25892
25893*$ CREATE DT_EMC2.FOR
25894*COPY DT_EMC2
25895*
25896*===emc2===============================================================*
25897*
25898 SUBROUTINE DT_EMC2(IP1,IP2,IP3,IP4,IP5,MP,IN1,IN2,IN3,IN4,IN5,MN,
25899 & MODE,IPOS,IREJ)
25900
25901************************************************************************
25902* MODE = 1 energy-momentum cons. check *
25903* = 2 flavor-cons. check *
25904* = 3 energy-momentum & flavor cons. check *
25905* = 4 energy-momentum & charge cons. check *
25906* = 5 energy-momentum & flavor & charge cons. check *
25907* This version dated 16.01.95 is written by S. Roesler *
25908************************************************************************
25909
25910 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25911 SAVE
25912 PARAMETER ( LINP = 10 ,
25913 & LOUT = 6 ,
25914 & LDAT = 9 )
25915 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
25916
25917* event history
25918 PARAMETER (NMXHKK=200000)
25919 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
25920 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
25921 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
25922* extended event history
25923 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
25924 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
25925 & IHIST(2,NMXHKK)
25926
25927 IREJ = 0
25928 IREJ1 = 0
25929 IREJ2 = 0
25930 IREJ3 = 0
25931
25932 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25933 & CALL DT_EVTEMC(ZERO,ZERO,ZERO,ZERO,1,IDUM,IDUM)
25934 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25935 & CALL DT_EVTFLC(0,IDUM,1,IDUM,IDUM)
25936 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,1,IDUM,IDUM)
25937 DO 1 I=1,NHKK
25938 IF ((ISTHKK(I).EQ.IP1).OR.(ISTHKK(I).EQ.IP2).OR.
25939 & (ISTHKK(I).EQ.IP3).OR.(ISTHKK(I).EQ.IP4).OR.
25940 & (ISTHKK(I).EQ.IP5)) THEN
25941 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25942 & .OR.(MODE.EQ.5))
25943 & CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
25944 & 2,IDUM,IDUM)
25945 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25946 & CALL DT_EVTFLC(IDHKK(I),MP,2,IDUM,IDUM)
25947 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25948 & CALL DT_EVTCHG(IDHKK(I),2,IDUM,IDUM)
25949 ENDIF
25950 IF ((ISTHKK(I).EQ.IN1).OR.(ISTHKK(I).EQ.IN2).OR.
25951 & (ISTHKK(I).EQ.IN3).OR.(ISTHKK(I).EQ.IN4).OR.
25952 & (ISTHKK(I).EQ.IN5)) THEN
25953 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25954 & .OR.(MODE.EQ.5))
25955 & CALL DT_EVTEMC(-PHKK(1,I),-PHKK(2,I),-PHKK(3,I),-PHKK(4,I),
25956 & 2,IDUM,IDUM)
25957 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25958 & CALL DT_EVTFLC(IDHKK(I),MN,-2,IDUM,IDUM)
25959 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25960 & CALL DT_EVTCHG(IDHKK(I),-2,IDUM,IDUM)
25961 ENDIF
25962 1 CONTINUE
25963 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25964 & CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,IPOS,IREJ1)
25965 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25966 & CALL DT_EVTFLC(0,IDUM,3,IPOS,IREJ2)
25967 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,3,IPOS,IREJ3)
25968 IF ((IREJ1.NE.0).OR.(IREJ2.NE.0).OR.(IREJ3.NE.0)) GOTO 9999
25969
25970 RETURN
25971
25972 9999 CONTINUE
25973 IREJ = 1
25974 RETURN
25975 END
25976
25977*$ CREATE DT_EVTEMC.FOR
25978*COPY DT_EVTEMC
25979*
25980*===evtemc=============================================================*
25981*
25982 SUBROUTINE DT_EVTEMC(PXIO,PYIO,PZIO,EIO,IMODE,IPOS,IREJ)
25983
25984************************************************************************
25985* This version dated 13.12.94 is written by S. Roesler *
25986************************************************************************
25987
25988 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25989 SAVE
25990 PARAMETER ( LINP = 10 ,
25991 & LOUT = 6 ,
25992 & LDAT = 9 )
25993 PARAMETER (TINY1=1.0D-1,TINY2=1.0D-2,TINY4=1.0D-4,TINY10=1.0D-10,
25994 & ZERO=0.0D0)
25995
25996* event history
25997 PARAMETER (NMXHKK=200000)
25998 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
25999 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26000 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26001* flags for input different options
26002 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
26003 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
26004 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
26005
26006 IREJ = 0
26007
26008 MODE = IMODE
26009 CHKLEV = TINY10
26010 IF (MODE.EQ.4) THEN
26011 CHKLEV = TINY2
26012 MODE = 3
26013 ELSEIF (MODE.EQ.5) THEN
26014 CHKLEV = TINY1
26015 MODE = 3
26016 ELSEIF (MODE.EQ.-1) THEN
26017 CHKLEV = EIO
26018 MODE = 3
26019 ENDIF
26020
26021 IF (ABS(MODE).EQ.3) THEN
26022 PXDEV = PX
26023 PYDEV = PY
26024 PZDEV = PZ
26025 EDEV = E
26026 IF ((IFRAG(1).EQ.2).AND.(CHKLEV.LT.TINY4)) CHKLEV = TINY4
26027 IF ((ABS(PXDEV).GT.CHKLEV).OR.(ABS(PYDEV).GT.CHKLEV).OR.
26028 & (ABS(PZDEV).GT.CHKLEV).OR.(ABS(EDEV).GT.CHKLEV)) THEN
26029 IF (IOULEV(2).GT.0) WRITE(LOUT,'(1X,A,I4,A,I8,A,/,4G10.3)')
26030 & 'EVTEMC: energy-momentum cons. failure at pos. ',IPOS,
26031 & ' event ',NEVHKK,
26032 & ' ! ',PXDEV,PYDEV,PZDEV,EDEV
26033 PX = 0.0D0
26034 PY = 0.0D0
26035 PZ = 0.0D0
26036 E = 0.0D0
26037 GOTO 9999
26038 ENDIF
26039 PX = 0.0D0
26040 PY = 0.0D0
26041 PZ = 0.0D0
26042 E = 0.0D0
26043 RETURN
26044 ENDIF
26045
26046 IF (MODE.EQ.1) THEN
26047 PX = 0.0D0
26048 PY = 0.0D0
26049 PZ = 0.0D0
26050 E = 0.0D0
26051 ENDIF
26052
26053 PX = PX+PXIO
26054 PY = PY+PYIO
26055 PZ = PZ+PZIO
26056 E = E+EIO
26057
26058 RETURN
26059
26060 9999 CONTINUE
26061 IREJ = 1
26062 RETURN
26063 END
26064
26065*$ CREATE DT_EVTFLC.FOR
26066*COPY DT_EVTFLC
26067*
26068*===evtflc=============================================================*
26069*
26070 SUBROUTINE DT_EVTFLC(ID,ID1,MODE,IPOS,IREJ)
26071
26072************************************************************************
26073* Flavor conservation check. *
26074* ID identity of particle *
26075* ID1 = 1 ID for q,aq,qq,aqaq in PDG-numbering scheme *
26076* = 2 ID for particle/resonance in BAMJET numbering scheme *
26077* = 3 ID for particle/resonance in PDG numbering scheme *
26078* MODE = 1 initialization and add ID *
26079* =-1 initialization and subtract ID *
26080* = 2 add ID *
26081* =-2 subtract ID *
26082* = 3 check flavor cons. *
26083* IPOS flag to give position of call of EVTFLC to output *
26084* unit in case of violation *
26085* This version dated 10.01.95 is written by S. Roesler *
26086************************************************************************
26087
26088 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26089 SAVE
26090 PARAMETER ( LINP = 10 ,
26091 & LOUT = 6 ,
26092 & LDAT = 9 )
26093 PARAMETER (TINY10=1.0D-10)
26094
26095 IREJ = 0
26096
26097 IF (MODE.EQ.3) THEN
26098 IF (IFL.NE.0) THEN
26099 WRITE(LOUT,'(1X,A,I3,A,I3)')
26100 & 'EVTFLC: flavor-conservation failure at pos. ',IPOS,
26101 & ' ! IFL = ',IFL
26102 IFL = 0
26103 GOTO 9999
26104 ENDIF
26105 IFL = 0
26106 RETURN
26107 ENDIF
26108
26109 IF (MODE.EQ.1) IFL = 0
26110 IF (ID.EQ.0) RETURN
26111
26112 IF (ID1.EQ.1) THEN
26113 IDD = ABS(ID)
26114 NQ = 1
26115 IF ((IDD.GE.100).AND.(IDD.LT.1000)) NQ = 2
26116 IF (IDD.GE.1000) NQ = 3
26117 DO 1 I=1,NQ
26118 IFBAM = IDT_IPDG2B(ID,I,2)
26119 IF (ABS(IFBAM).EQ.1) THEN
26120 IFBAM = SIGN(2,IFBAM)
26121 ELSEIF (ABS(IFBAM).EQ.2) THEN
26122 IFBAM = SIGN(1,IFBAM)
26123 ENDIF
26124 IF (MODE.GT.0) THEN
26125 IFL = IFL+IFBAM
26126 ELSE
26127 IFL = IFL-IFBAM
26128 ENDIF
26129 1 CONTINUE
26130 RETURN
26131 ENDIF
26132
26133 IDD = ID
26134 IF (ID1.EQ.3) IDD = IDT_ICIHAD(ID)
26135 IF ((ID1.EQ.2).OR.(ID1.EQ.3)) THEN
26136 DO 2 I=1,3
26137 IF (MODE.GT.0) THEN
26138 IFL = IFL+IDT_IQUARK(I,IDD)
26139 ELSE
26140 IFL = IFL-IDT_IQUARK(I,IDD)
26141 ENDIF
26142 2 CONTINUE
26143 ENDIF
26144 RETURN
26145
26146 9999 CONTINUE
26147 IREJ = 1
26148 RETURN
26149 END
26150
26151*$ CREATE DT_EVTCHG.FOR
26152*COPY DT_EVTCHG
26153*
26154*===evtchg=============================================================*
26155*
26156 SUBROUTINE DT_EVTCHG(ID,MODE,IPOS,IREJ)
26157
26158************************************************************************
26159* Charge conservation check. *
26160* ID identity of particle (PDG-numbering scheme) *
26161* MODE = 1 initialization *
26162* =-2 subtract ID-charge *
26163* = 2 add ID-charge *
26164* = 3 check charge cons. *
26165* IPOS flag to give position of call of EVTCHG to output *
26166* unit in case of violation *
26167* This version dated 10.01.95 is written by S. Roesler *
26168* Last change: s.r. 21.01.01 *
26169************************************************************************
26170
26171 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26172 SAVE
26173 PARAMETER ( LINP = 10 ,
26174 & LOUT = 6 ,
26175 & LDAT = 9 )
26176
26177* event history
26178 PARAMETER (NMXHKK=200000)
26179 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26180 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26181 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26182* particle properties (BAMJET index convention)
26183 CHARACTER*8 ANAME
26184 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26185 & IICH(210),IIBAR(210),K1(210),K2(210)
26186
26187 IREJ = 0
26188
26189 IF (MODE.EQ.1) THEN
26190 ICH = 0
26191 IBAR = 0
26192 RETURN
26193 ENDIF
26194
26195 IF (MODE.EQ.3) THEN
26196 IF ((ICH.NE.0).OR.(IBAR.NE.0)) THEN
26197 WRITE(LOUT,'(1X,A,I3,A,2I3,A,I8)')
26198 & 'EVTCHG: charge/baryo.-cons. failure at pos. ',IPOS,
26199 & '! ICH/IBAR= ',ICH,IBAR,' event ',NEVHKK
26200 ICH = 0
26201 IBAR = 0
26202 GOTO 9999
26203 ENDIF
26204 ICH = 0
26205 IBAR = 0
26206 RETURN
26207 ENDIF
26208
26209 IF (ID.EQ.0) RETURN
26210
26211 IDD = IDT_ICIHAD(ID)
26212* modification 21.1.01: use intrinsic phojet-functions to determine charge
26213* and baryon number
26214C IF (IDD.GT.0) THEN
26215C IF (MODE.EQ.2) THEN
26216C ICH = ICH+IICH(IDD)
26217C IBAR = IBAR+IIBAR(IDD)
26218C ELSEIF (MODE.EQ.-2) THEN
26219C ICH = ICH-IICH(IDD)
26220C IBAR = IBAR-IIBAR(IDD)
26221C ENDIF
26222C ELSE
26223C WRITE(LOUT,'(1X,A,3I6)') 'EVTCHG: (IDD = 0 !), IDD,ID=',IDD,ID
26224C CALL DT_EVTOUT(4)
26225C STOP
26226C ENDIF
26227 IF (MODE.EQ.2) THEN
26228 ICH = ICH+IPHO_CHR3(ID,1)/3
26229 IBAR = IBAR+IPHO_BAR3(ID,1)/3
26230 ELSEIF (MODE.EQ.-2) THEN
26231 ICH = ICH-IPHO_CHR3(ID,1)/3
26232 IBAR = IBAR-IPHO_BAR3(ID,1)/3
26233 ENDIF
26234
26235 RETURN
26236
26237 9999 CONTINUE
26238 IREJ = 1
26239 RETURN
26240 END
26241
26242************************************************************************
26243* *
26244* 4) Transformations *
26245* *
26246************************************************************************
26247*$ CREATE DT_LTINI.FOR
26248*COPY DT_LTINI
26249*
26250*===ltini==============================================================*
26251*
26252 SUBROUTINE DT_LTINI(IDPR,IDTA,EPN0,PPN0,ECM0,MODE)
26253
26254************************************************************************
26255* Initializations of Lorentz-transformations, calculation of Lorentz- *
26256* parameters. *
26257* This version dated 13.11.95 is written by S. Roesler. *
26258************************************************************************
26259
26260 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26261 SAVE
26262 PARAMETER ( LINP = 10 ,
26263 & LOUT = 6 ,
26264 & LDAT = 9 )
26265 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,
26266 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
26267
26268* Lorentz-parameters of the current interaction
26269 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26270 & UMO,PPCM,EPROJ,PPROJ
26271* properties of photon/lepton projectiles
26272 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
26273* particle properties (BAMJET index convention)
26274 CHARACTER*8 ANAME
26275 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26276 & IICH(210),IIBAR(210),K1(210),K2(210)
26277* nucleon-nucleon event-generator
26278 CHARACTER*8 CMODEL
26279 LOGICAL LPHOIN
26280 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
26281
26282 Q2 = VIRT
26283 IDP = IDPR
26284 IF (MCGENE.NE.3) THEN
26285* lepton-projectiles and PHOJET: initialize real photon instead
26286 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26287 & (IDPR.EQ.10).OR.(IDPR.EQ.11).OR.
26288 & (IDPR.EQ. 5).OR.(IDPR.EQ. 6)) THEN
26289 IDP = 7
26290 Q2 = ZERO
26291 ENDIF
26292 ENDIF
26293 IDT = IDTA
26294 EPN = EPN0
26295 PPN = PPN0
26296 ECM = ECM0
26297 AMP = AAM(IDP)-SQRT(ABS(Q2))
26298 AMT = AAM(IDT)
26299 AMP2 = SIGN(AMP**2,AMP)
26300 AMT2 = AMT**2
26301 IF (ECM0.GT.ZERO) THEN
26302 EPN = (ECM**2-AMP2-AMT2)/(TWO*AMT)
26303 IF (AMP2.GT.ZERO) THEN
26304 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26305 ELSE
26306 PPN = SQRT(EPN**2-AMP2)
26307 ENDIF
26308 ELSE
26309 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26310 IF (IDP.EQ.7) EPN = ABS(EPN)
26311 IF (EPN.LT.ZERO) EPN = ABS(EPN)+AMP
26312 IF (AMP2.GT.ZERO) THEN
26313 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26314 ELSE
26315 PPN = SQRT(EPN**2-AMP2)
26316 ENDIF
26317 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26318 IF (AMP2.GT.ZERO) THEN
26319 EPN = PPN*SQRT(ONE+(AMP/PPN)**2)
26320 ELSE
26321 EPN = SQRT(PPN**2+AMP2)
26322 ENDIF
26323 ENDIF
26324 ECM = SQRT(AMP2+AMT2+TWO*AMT*EPN)
26325 ENDIF
26326 UMO = ECM
26327 EPROJ = EPN
26328 PPROJ = PPN
26329 IF (AMP2.GT.ZERO) THEN
26330 ETARG = (ECM**2-AMP2-AMT2)/(TWO*AMP)
26331 PTARG = -SQRT((ETARG+AMT)*(ETARG-AMT))
26332 ELSE
26333 ETARG = TINY10
26334 PTARG = TINY10
26335 ENDIF
26336* photon-projectiles (get momentum in cm-frame for virtuality Q^2)
26337 IF (IDP.EQ.7) THEN
26338 PGAMM(1) = ZERO
26339 PGAMM(2) = ZERO
26340 AMGAM = AMP
26341 AMGAM2 = AMP2
26342 IF (ECM0.GT.ZERO) THEN
26343 S = ECM0**2
26344 ELSE
26345 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26346 S = AMGAM2+AMT2+TWO*AMT*ABS(EPN0)
26347 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26348 S = AMGAM2+AMT2+TWO*AMT*SQRT(PPN0**2+AMGAM2)
26349 ENDIF
26350 ENDIF
26351 PGAMM(3) = SQRT( (S**2-TWO*AMGAM2*S-TWO*AMT2*S-TWO*AMGAM2*AMT2
26352 & +AMGAM2**2+AMT2**2)/(4.0D0*S) )
26353 PGAMM(4) = SQRT(AMGAM2+PGAMM(3)**2)
26354 IF (MODE.EQ.1) THEN
26355 PNUCL(1) = ZERO
26356 PNUCL(2) = ZERO
26357 PNUCL(3) = -PGAMM(3)
26358 PNUCL(4) = SQRT(S)-PGAMM(4)
26359 ENDIF
26360 ENDIF
26361 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26362 & (IDPR.EQ.10).OR.(IDPR.EQ.11)) THEN
26363 PLEPT0(1) = ZERO
26364 PLEPT0(2) = ZERO
26365* neglect lepton masses
26366C AMLPT2 = AAM(IDPR)**2
26367 AMLPT2 = ZERO
26368*
26369 IF (ECM0.GT.ZERO) THEN
26370 S = ECM0**2
26371 ELSE
26372 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26373 S = AMLPT2+AMT2+TWO*AMT*ABS(EPN0)
26374 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26375 S = AMLPT2+AMT2+TWO*AMT*SQRT(PPN0**2+AMLPT2)
26376 ENDIF
26377 ENDIF
26378 PLEPT0(3) = SQRT( (S**2-TWO*AMLPT2*S-TWO*AMT2*S-TWO*AMLPT2*AMT2
26379 & +AMLPT2**2+AMT2**2)/(4.0D0*S) )
26380 PLEPT0(4) = SQRT(AMLPT2+PLEPT0(3)**2)
26381 PNUCL(1) = ZERO
26382 PNUCL(2) = ZERO
26383 PNUCL(3) = -PLEPT0(3)
26384 PNUCL(4) = SQRT(S)-PLEPT0(4)
26385 ENDIF
26386* Lorentz-parameter for transformation Lab. - projectile rest system
26387 IF ((IDP.EQ.7).OR.(AMP.LT.TINY10)) THEN
26388 GALAB = TINY10
26389 BGLAB = TINY10
26390 BLAB = TINY10
26391 ELSE
26392 GALAB = EPROJ/AMP
26393 BGLAB = PPROJ/AMP
26394 BLAB = BGLAB/GALAB
26395 ENDIF
26396* Lorentz-parameter for transf. proj. rest sys. - nucl.-nucl. cms.
26397 IF (IDP.EQ.7) THEN
26398 GACMS(1) = TINY10
26399 BGCMS(1) = TINY10
26400 ELSE
26401 GACMS(1) = (ETARG+AMP)/UMO
26402 BGCMS(1) = PTARG/UMO
26403 ENDIF
26404* Lorentz-parameter for transformation Lab. - nucl.-nucl. cms.
26405 GACMS(2) = (EPROJ+AMT)/UMO
26406 BGCMS(2) = PPROJ/UMO
26407 PPCM = GACMS(2)*PPROJ-BGCMS(2)*EPROJ
26408
26409 EPN0 = EPN
26410 PPN0 = PPN
26411 ECM0 = ECM
26412
26413 RETURN
26414 END
26415
26416*$ CREATE DT_LTRANS.FOR
26417*COPY DT_LTRANS
26418*
26419*===ltrans=============================================================*
26420*
26421 SUBROUTINE DT_LTRANS(PXI,PYI,PZI,PEI,PXO,PYO,PZO,PEO,ID,MODE)
26422
26423************************************************************************
26424* Lorentz-transformations. *
26425* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26426* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26427* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26428* This version dated 01.11.95 is written by S. Roesler. *
26429************************************************************************
26430
26431 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26432 SAVE
26433 PARAMETER ( LINP = 10 ,
26434 & LOUT = 6 ,
26435 & LDAT = 9 )
26436 PARAMETER (TINY3=1.0D-3,ZERO=0.0D0,TWO=2.0D0)
26437
26438 PARAMETER (SQTINF=1.0D+15)
26439
26440* particle properties (BAMJET index convention)
26441 CHARACTER*8 ANAME
26442 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26443 & IICH(210),IIBAR(210),K1(210),K2(210)
26444
26445 PXO = PXI
26446 PYO = PYI
26447 CALL DT_LTNUC(PZI,PEI,PZO,PEO,MODE)
26448
26449* check particle mass for consistency (numerical rounding errors)
26450 PO = SQRT(PXO*PXO+PYO*PYO+PZO*PZO)
26451 AMO2 = (PEO-PO)*(PEO+PO)
26452 AMORQ2 = AAM(ID)**2
26453 AMDIF2 = ABS(AMO2-AMORQ2)
26454 IF ((AMDIF2.GT.TINY3).AND.(PEO.LT.SQTINF).AND.(PO.GT.ZERO)) THEN
26455 DELTA = (AMORQ2-AMO2)/(TWO*(PEO+PO))
26456 PEO = PEO+DELTA
26457 PO1 = PO -DELTA
26458 PXO = PXO*PO1/PO
26459 PYO = PYO*PO1/PO
26460 PZO = PZO*PO1/PO
26461C WRITE(6,*) 'LTRANS corrected', AMDIF2,PZI,PEI,PZO,PEO,MODE,ID
26462 ENDIF
26463
26464 RETURN
26465 END
26466
26467*$ CREATE DT_LTNUC.FOR
26468*COPY DT_LTNUC
26469*
26470*===ltnuc==============================================================*
26471*
26472 SUBROUTINE DT_LTNUC(PIN,EIN,POUT,EOUT,MODE)
26473
26474************************************************************************
26475* Lorentz-transformations. *
26476* PIN longitudnal momentum (input) *
26477* EIN energy (input) *
26478* POUT transformed long. momentum (output) *
26479* EOUT transformed energy (output) *
26480* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26481* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26482* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26483* This version dated 01.11.95 is written by S. Roesler. *
26484************************************************************************
26485
26486 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26487 SAVE
26488 PARAMETER ( LINP = 10 ,
26489 & LOUT = 6 ,
26490 & LDAT = 9 )
26491 PARAMETER (ZERO=0.0D0)
26492
26493* Lorentz-parameters of the current interaction
26494 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26495 & UMO,PPCM,EPROJ,PPROJ
26496
26497 BDUM1 = ZERO
26498 BDUM2 = ZERO
26499 PDUM1 = ZERO
26500 PDUM2 = ZERO
26501 IF (ABS(MODE).EQ.1) THEN
26502 BG = -SIGN(BGLAB,DBLE(MODE))
26503 CALL DT_DALTRA(GALAB,BDUM1,BDUM2,-BG,PDUM1,PDUM2,PIN,EIN,
26504 & DUM1,DUM2,DUM3,POUT,EOUT)
26505 ELSEIF (ABS(MODE).EQ.2) THEN
26506 BG = SIGN(BGCMS(1),DBLE(MODE))
26507 CALL DT_DALTRA(GACMS(1),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26508 & DUM1,DUM2,DUM3,POUT,EOUT)
26509 ELSEIF (ABS(MODE).EQ.3) THEN
26510 BG = -SIGN(BGCMS(2),DBLE(MODE))
26511 CALL DT_DALTRA(GACMS(2),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26512 & DUM1,DUM2,DUM3,POUT,EOUT)
26513 ELSE
26514 WRITE(LOUT,1000) MODE
26515 1000 FORMAT(1X,'LTNUC: not supported mode (MODE = ',I3,')')
26516 EOUT = EIN
26517 POUT = PIN
26518 ENDIF
26519
26520 RETURN
26521 END
26522
26523*$ CREATE DT_DALTRA.FOR
26524*COPY DT_DALTRA
26525*
26526*===daltra=============================================================*
26527*
26528 SUBROUTINE DT_DALTRA(GA,BGX,BGY,BGZ,PCX,PCY,PCZ,EC,P,PX,PY,PZ,E)
26529
26530************************************************************************
26531* Arbitrary Lorentz-transformation. *
26532* Adopted from the original by S. Roesler. This version dated 15.01.95 *
26533************************************************************************
26534
26535 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26536 SAVE
26537 PARAMETER (ONE=1.0D0)
26538
26539 EP = PCX*BGX+PCY*BGY+PCZ*BGZ
26540 PE = EP/(GA+ONE)+EC
26541 PX = PCX+BGX*PE
26542 PY = PCY+BGY*PE
26543 PZ = PCZ+BGZ*PE
26544 P = SQRT(PX*PX+PY*PY+PZ*PZ)
26545 E = GA*EC+EP
26546
26547 RETURN
26548 END
26549
26550*$ CREATE DT_DTRAFO.FOR
26551*COPY DT_DTRAFO
26552*
26553*====dtrafo============================================================*
26554*
26555 SUBROUTINE DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD,COF,SIF,P,ECM,
26556 & PL,CXL,CYL,CZL,EL)
26557
26558C LORENTZ TRANSFORMATION INTO THE LAB - SYSTEM
26559
26560 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26561 SAVE
26562
26563 IF (ABS(COD).GT.1.0D0) COD = SIGN(1.0D0,COD)
26564 SID = SQRT(1.D0-COD*COD)
26565 PLX = P*SID*COF
26566 PLY = P*SID*SIF
26567 PCMZ = P*COD
26568 PLZ = GAM*PCMZ+BGAM*ECM
26569 PL = SQRT(PLX*PLX+PLY*PLY+PLZ*PLZ)
26570 EL = GAM*ECM+BGAM*PCMZ
26571C ROTATION INTO THE ORIGINAL DIRECTION
26572 COZ = PLZ/PL
26573 SIZ = SQRT(1.D0-COZ**2)
26574 CALL DT_STTRAN(CX,CY,CZ,COZ,SIZ,SIF,COF,CXL,CYL,CZL)
26575
26576 RETURN
26577 END
26578
26579*$ CREATE DT_STTRAN.FOR
26580*COPY DT_STTRAN
26581*
26582*====sttran============================================================*
26583*
26584 SUBROUTINE DT_STTRAN(XO,YO,ZO,CDE,SDE,SFE,CFE,X,Y,Z)
26585
26586 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26587 SAVE
26588 DATA ANGLSQ/1.D-30/
26589************************************************************************
26590* VERSION BY J. RANFT *
26591* LEIPZIG *
26592* *
26593* THIS IS A SUBROUTINE OF FLUKA TO GIVE NEW DIRECTION COSINES *
26594* *
26595* INPUT VARIABLES: *
26596* XO,YO,ZO = ORIGINAL DIRECTION COSINES *
26597* CDE,SDE = COSINE AND SINE OF THE POLAR (THETA) *
26598* ANGLE OF "SCATTERING" *
26599* SDE = SINE OF THE POLAR (THETA) ANGLE OF "SCATTERING" *
26600* SFE,CFE = SINE AND COSINE OF THE AZIMUTHAL (PHI) ANGLE *
26601* OF "SCATTERING" *
26602* *
26603* OUTPUT VARIABLES: *
26604* X,Y,Z = NEW DIRECTION COSINES *
26605* *
26606* ROTATION OF COORDINATE SYSTEM (SEE CERN 64-47 ) *
26607************************************************************************
26608*
26609*
26610* Changed by A. Ferrari
26611*
26612* IF (ABS(XO)-0.0001D0) 1,1,2
26613* 1 IF (ABS(YO)-0.0001D0) 3,3,2
26614* 3 CONTINUE
26615 A = XO**2 + YO**2
26616 IF ( A .LT. ANGLSQ ) THEN
26617 X=SDE*CFE
26618 Y=SDE*SFE
26619 Z=CDE*ZO
26620 ELSE
26621 XI=SDE*CFE
26622 YI=SDE*SFE
26623 ZI=CDE
26624 A=SQRT(A)
26625 X=-YO*XI/A-ZO*XO*YI/A+XO*ZI
26626 Y=XO*XI/A-ZO*YO*YI/A+YO*ZI
26627 Z=A*YI+ZO*ZI
26628 ENDIF
26629
26630 RETURN
26631 END
26632
26633*$ CREATE DT_MYTRAN.FOR
26634*COPY DT_MYTRAN
26635*
26636*===mytran=============================================================*
26637*
26638 SUBROUTINE DT_MYTRAN(IMODE,XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z)
26639
26640************************************************************************
26641* This subroutine rotates the coordinate frame *
26642* a) theta around y *
26643* b) phi around z if IMODE = 1 *
26644* *
26645* x' cos(ph) -sin(ph) 0 cos(th) 0 sin(th) x *
26646* y' = A B = sin(ph) cos(ph) 0 . 0 1 0 y *
26647* z' 0 0 1 -sin(th) 0 cos(th) z *
26648* *
26649* and vice versa if IMODE = 0. *
26650* This version dated 5.4.94 is based on the original version DTRAN *
26651* by J. Ranft and is written by S. Roesler. *
26652************************************************************************
26653
26654 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26655 SAVE
26656 PARAMETER ( LINP = 10 ,
26657 & LOUT = 6 ,
26658 & LDAT = 9 )
26659
26660 IF (IMODE.EQ.1) THEN
26661 X= CDE*CFE*XO-SFE*YO+SDE*CFE*ZO
26662 Y= CDE*SFE*XO+CFE*YO+SDE*SFE*ZO
26663 Z=-SDE *XO +CDE *ZO
26664 ELSE
26665 X= CDE*CFE*XO+CDE*SFE*YO-SDE*ZO
26666 Y= -SFE*XO+CFE*YO
26667 Z= SDE*CFE*XO+SDE*SFE*YO+CDE*ZO
26668 ENDIF
26669 RETURN
26670 END
26671
26672*$ CREATE DT_LT2LAO.FOR
26673*COPY DT_LT2LAO
26674*
26675*===lt2lab=============================================================*
26676*
26677 SUBROUTINE DT_LT2LAO
26678
26679************************************************************************
26680* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26681* for final state particles/fragments defined in nucleon-nucleon-cms *
26682* and transforms them back to the lab. *
26683* This version dated 16.11.95 is written by S. Roesler *
26684************************************************************************
26685
26686 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26687 SAVE
26688 PARAMETER ( LINP = 10 ,
26689 & LOUT = 6 ,
26690 & LDAT = 9 )
26691
26692* event history
26693 PARAMETER (NMXHKK=200000)
26694 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26695 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26696 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26697* extended event history
26698 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26699 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26700 & IHIST(2,NMXHKK)
26701
26702 NEND = NHKK
26703 NPOINT(5) = NHKK+1
26704 IF ( (NPOINT(4).EQ.0).OR.(NEND.LT.NPOINT(4)) ) RETURN
26705 DO 1 I=NPOINT(4),NEND
26706C DO 1 I=1,NEND
26707 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26708 & (ISTHKK(I).EQ.1001)) THEN
26709 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26710 NOB = NOBAM(I)
26711 CALL DT_EVTPUT(ISTHKK(I),IDHKK(I),I,0,PHKK(1,I),PHKK(2,I),
26712 & PZ,PE,IDRES(I),IDXRES(I),IDCH(I))
26713 IF ((ISTHKK(I).EQ.1000).OR.(ISTHKK(I).EQ.1001)) THEN
26714 ISTHKK(I) = 3*ISTHKK(I)
26715 NOBAM(NHKK) = NOB
26716 ELSE
26717 IF (ISTHKK(I).EQ.-1) NOBAM(NHKK) = NOB
26718 ISTHKK(I) = SIGN(3,ISTHKK(I))
26719 ENDIF
26720 JDAHKK(1,I) = NHKK
26721 ENDIF
26722 1 CONTINUE
26723
26724 RETURN
26725 END
26726
26727*$ CREATE DT_LT2LAB.FOR
26728*COPY DT_LT2LAB
26729*
26730*===lt2lab=============================================================*
26731*
26732 SUBROUTINE DT_LT2LAB
26733
26734************************************************************************
26735* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26736* for final state particles/fragments defined in nucleon-nucleon-cms *
26737* and transforms them to the lab. *
26738* This version dated 07.01.96 is written by S. Roesler *
26739************************************************************************
26740
26741 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26742 SAVE
26743 PARAMETER ( LINP = 10 ,
26744 & LOUT = 6 ,
26745 & LDAT = 9 )
26746
26747* event history
26748 PARAMETER (NMXHKK=200000)
26749 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26750 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26751 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26752* extended event history
26753 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26754 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26755 & IHIST(2,NMXHKK)
26756
26757 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
26758 DO 1 I=NPOINT(4),NHKK
26759 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26760 & (ISTHKK(I).EQ.1001)) THEN
26761 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26762 PHKK(3,I) = PZ
26763 PHKK(4,I) = PE
26764 ENDIF
26765 1 CONTINUE
26766
26767 RETURN
26768 END
26769
26770************************************************************************
26771* *
26772* 5) Sampling from distributions *
26773* *
26774************************************************************************
26775*$ CREATE IDT_NPOISS.FOR
26776*COPY IDT_NPOISS
26777*
26778*===npoiss=============================================================*
26779*
26780 INTEGER FUNCTION IDT_NPOISS(AVN)
26781
26782************************************************************************
26783* Sample according to Poisson distribution with Poisson parameter AVN. *
26784* The original version written by J. Ranft. *
26785* This version dated 11.1.95 is written by S. Roesler. *
26786************************************************************************
26787
26788 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26789 SAVE
26790 PARAMETER ( LINP = 10 ,
26791 & LOUT = 6 ,
26792 & LDAT = 9 )
26793
26794 EXPAVN = EXP(-AVN)
26795 K = 1
26796 A = 1.0D0
26797
26798 10 CONTINUE
26799 A = DT_RNDM(A)*A
26800 IF (A.GE.EXPAVN) THEN
26801 K = K+1
26802 GOTO 10
26803 ENDIF
26804 IDT_NPOISS = K-1
26805
26806 RETURN
26807 END
26808
26809*$ CREATE DT_SAMPXB.FOR
26810*COPY DT_SAMPXB
26811*
26812*===sampxb=============================================================*
26813*
26814 DOUBLE PRECISION FUNCTION DT_SAMPXB(X1,X2,B)
26815
26816************************************************************************
26817* Sampling from f(x)=1./SQRT(X**2+B**2) between x1 and x2. *
26818* Processed by S. Roesler, 6.5.95 *
26819************************************************************************
26820
26821 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26822 SAVE
26823 PARAMETER (TWO=2.0D0)
26824
26825 A1 = LOG(X1+SQRT(X1**2+B**2))
26826 A2 = LOG(X2+SQRT(X2**2+B**2))
26827 AN = A2-A1
26828 A = AN*DT_RNDM(A1)+A1
26829 BB = EXP(A)
26830 DT_SAMPXB = (BB**2-B**2)/(TWO*BB)
26831
26832 RETURN
26833 END
26834
26835*$ CREATE DT_SAMPEX.FOR
26836*COPY DT_SAMPEX
26837*
26838*===sampex=============================================================*
26839*
26840 DOUBLE PRECISION FUNCTION DT_SAMPEX(X1,X2)
26841
26842************************************************************************
26843* Sampling from f(x)=1./x between x1 and x2. *
26844* Processed by S. Roesler, 6.5.95 *
26845************************************************************************
26846
26847 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26848 SAVE
26849 PARAMETER (ONE=1.0D0)
26850
26851 R = DT_RNDM(X1)
26852 AL1 = LOG(X1)
26853 AL2 = LOG(X2)
26854 DT_SAMPEX = EXP((ONE-R)*AL1+R*AL2)
26855
26856 RETURN
26857 END
26858
26859*$ CREATE DT_SAMSQX.FOR
26860*COPY DT_SAMSQX
26861*
26862*===samsqx=============================================================*
26863*
26864 DOUBLE PRECISION FUNCTION DT_SAMSQX(X1,X2)
26865
26866************************************************************************
26867* Sampling from f(x)=1./x^0.5 between x1 and x2. *
26868* Processed by S. Roesler, 6.5.95 *
26869************************************************************************
26870
26871 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26872 SAVE
26873 PARAMETER (ONE=1.0D0)
26874
26875 R = DT_RNDM(X1)
26876 DT_SAMSQX = (R*SQRT(X2)+(ONE-R)*SQRT(X1))**2
26877
26878 RETURN
26879 END
26880
26881*$ CREATE DT_SAMPLW.FOR
26882*COPY DT_SAMPLW
26883*
26884*===samplw=============================================================*
26885*
26886 DOUBLE PRECISION FUNCTION DT_SAMPLW(XMIN,XMAX,B)
26887
26888************************************************************************
26889* Sampling from f(x)=1/x^b between x_min and x_max. *
26890* S. Roesler, 18.4.98 *
26891************************************************************************
26892
26893 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26894 SAVE
26895 PARAMETER (ONE=1.0D0)
26896
26897 R = DT_RNDM(B)
26898 IF (B.EQ.ONE) THEN
26899 DT_SAMPLW = EXP(R*LOG(XMAX)+(ONE-R)*LOG(XMIN))
26900 ELSE
26901 ONEMB = ONE-B
26902 DT_SAMPLW = (R*XMAX**ONEMB+(ONE-R)*XMIN**ONEMB)**(ONE/ONEMB)
26903 ENDIF
26904
26905 RETURN
26906 END
26907
26908*$ CREATE DT_BETREJ.FOR
26909*COPY DT_BETREJ
26910*
26911*===betrej=============================================================*
26912*
26913 DOUBLE PRECISION FUNCTION DT_BETREJ(GAM,ETA,XMIN,XMAX)
26914
26915 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26916 SAVE
26917
26918 PARAMETER ( LINP = 10 ,
26919 & LOUT = 6 ,
26920 & LDAT = 9 )
26921 PARAMETER (ONE=1.0D0)
26922
26923 IF (XMIN.GE.XMAX)THEN
26924 WRITE (LOUT,500) XMIN,XMAX
26925 500 FORMAT(1X,'DT_BETREJ: XMIN<XMAX execution stopped ',2F10.5)
26926 STOP
26927 ENDIF
26928
26929 10 CONTINUE
26930 XX = XMIN+(XMAX-XMIN)*DT_RNDM(ETA)
26931 BETMAX = XMIN**(GAM-ONE)*(ONE-XMIN)**(ETA-ONE)
26932 YY = BETMAX*DT_RNDM(XX)
26933 BETXX = XX**(GAM-ONE)*(ONE-XX)**(ETA-ONE)
26934 IF (YY.GT.BETXX) GOTO 10
26935 DT_BETREJ = XX
26936
26937 RETURN
26938 END
26939
26940*$ CREATE DT_DGAMRN.FOR
26941*COPY DT_DGAMRN
26942*
26943*===dgamrn=============================================================*
26944*
26945 DOUBLE PRECISION FUNCTION DT_DGAMRN(ALAM,ETA)
26946
26947************************************************************************
26948* Sampling from Gamma-distribution. *
26949* F(X) = ALAM**ETA*X**(ETA-1)*EXP(-ALAM*X) / GAM(ETA) *
26950* Processed by S. Roesler, 6.5.95 *
26951************************************************************************
26952
26953 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26954 SAVE
26955 PARAMETER (ZERO=0.0D0,TINY9=1.0D-9,ONE=1.0D0)
26956
26957 NCOU = 0
26958 N = INT(ETA)
26959 F = ETA-DBLE(N)
26960 IF (F.EQ.ZERO) GOTO 20
26961 10 R = DT_RNDM(F)
26962 NCOU = NCOU+1
26963 IF (NCOU.GE.11) GOTO 20
26964 IF (R.LT.F/(F+2.71828D0)) GOTO 30
26965 YYY = LOG(DT_RNDM(R)+TINY9)/F
26966 IF (ABS(YYY).GT.50.0D0) GOTO 20
26967 Y = EXP(YYY)
26968 IF (LOG(DT_RNDM(Y)+TINY9).GT.-Y) GOTO 10
26969 GOTO 40
26970 20 Y = 0.0D0
26971 GOTO 50
26972 30 Y = ONE-LOG(DT_RNDM(Y)+TINY9)
26973 IF (DT_RNDM(R).GT.Y**(F-ONE)) GOTO 10
26974 40 IF (N.EQ.0) GOTO 70
26975 50 Z = 1.0D0
26976 DO 60 I = 1,N
26977 60 Z = Z*DT_RNDM(Z)
26978 Y = Y-LOG(Z+TINY9)
26979 70 DT_DGAMRN = Y/ALAM
26980
26981 RETURN
26982 END
26983
26984*$ CREATE DT_DBETAR.FOR
26985*COPY DT_DBETAR
26986*
26987*===dbetar=============================================================*
26988*
26989 DOUBLE PRECISION FUNCTION DT_DBETAR(GAM,ETA)
26990
26991************************************************************************
26992* Sampling from Beta -distribution between 0.0 and 1.0 *
26993* F(X)=X**(GAM-1.)*(1.-X)**(ETA-1)*GAMM(ETA+GAM)/(GAMM(GAM)*GAMM(ETA))*
26994* Processed by S. Roesler, 6.5.95 *
26995************************************************************************
26996
26997 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26998 SAVE
26999
27000 Y = DT_DGAMRN(1.0D0,GAM)
27001 Z = DT_DGAMRN(1.0D0,ETA)
27002 DT_DBETAR = Y/(Y+Z)
27003
27004 RETURN
27005 END
27006
27007*$ CREATE DT_RANNOR.FOR
27008*COPY DT_RANNOR
27009*
27010*===rannor=============================================================*
27011*
27012 SUBROUTINE DT_RANNOR(X,Y)
27013
27014************************************************************************
27015* Sampling from Gaussian distribution. *
27016* Processed by S. Roesler, 6.5.95 *
27017************************************************************************
27018
27019 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27020 SAVE
27021 PARAMETER (TINY10=1.0D-10)
27022
27023 CALL DT_DSFECF(SFE,CFE)
27024 V = MAX(TINY10,DT_RNDM(X))
27025 A = SQRT(-2.D0*LOG(V))
27026 X = A*SFE
27027 Y = A*CFE
27028
27029 RETURN
27030 END
27031
27032*$ CREATE DT_DPOLI.FOR
27033*COPY DT_DPOLI
27034*
27035*===dpoli==============================================================*
27036*
27037 SUBROUTINE DT_DPOLI(CS,SI)
27038
27039 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27040 SAVE
27041
27042 U = DT_RNDM(CS)
27043 CS = DT_RNDM(U)
27044 IF (U.LT.0.5D0) CS=-CS
27045 SI = SQRT(1.0D0-CS*CS+1.0D-10)
27046
27047 RETURN
27048 END
27049
27050*$ CREATE DT_DSFECF.FOR
27051*COPY DT_DSFECF
27052*
27053*===dsfecf=============================================================*
27054*
27055 SUBROUTINE DT_DSFECF(SFE,CFE)
27056
27057 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27058 SAVE
27059 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27060
27061 1 CONTINUE
27062 X = DT_RNDM(SFE)
27063 Y = DT_RNDM(X)
27064 XX = X*X
27065 YY = Y*Y
27066 XY = XX+YY
27067 IF (XY.GT.ONE) GOTO 1
27068 CFE = (XX-YY)/XY
27069 SFE = TWO*X*Y/XY
27070 IF (DT_RNDM(X).LT.OHALF) SFE = -SFE
27071 RETURN
27072 END
27073
27074*$ CREATE DT_RACO.FOR
27075*COPY DT_RACO
27076*
27077*===raco===============================================================*
27078*
27079 SUBROUTINE DT_RACO(WX,WY,WZ)
27080
27081************************************************************************
27082* Direction cosines of random uniform (isotropic) direction in three *
27083* dimensional space *
27084* Processed by S. Roesler, 20.11.95 *
27085************************************************************************
27086
27087 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27088 SAVE
27089 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27090
27091 10 CONTINUE
27092 X = TWO*DT_RNDM(WX)-ONE
27093 Y = DT_RNDM(X)
27094 X2 = X*X
27095 Y2 = Y*Y
27096 IF (X2+Y2.GT.ONE) GOTO 10
27097
27098 CFE = (X2-Y2)/(X2+Y2)
27099 SFE = TWO*X*Y/(X2+Y2)
27100* z = 1/2 [ 1 + cos (theta) ]
27101 Z = DT_RNDM(X)
27102* 1/2 sin (theta)
27103 WZ = SQRT(Z*(ONE-Z))
27104 WX = TWO*WZ*CFE
27105 WY = TWO*WZ*SFE
27106 WZ = TWO*Z-ONE
27107
27108 RETURN
27109 END
27110
27111************************************************************************
27112* *
27113* 6) Special functions, algorithms and service routines *
27114* *
27115************************************************************************
27116*$ CREATE DT_YLAMB.FOR
27117*COPY DT_YLAMB
27118*
27119*===ylamb==============================================================*
27120*
27121 DOUBLE PRECISION FUNCTION DT_YLAMB(X,Y,Z)
27122
27123************************************************************************
27124* *
27125* auxiliary function for three particle decay mode *
27126* (standard LAMBDA**(1/2) function) *
27127* *
27128* Adopted from an original version written by R. Engel. *
27129* This version dated 12.12.94 is written by S. Roesler. *
27130************************************************************************
27131
27132 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27133 SAVE
27134
27135 YZ = Y-Z
27136 XLAM = X*X-2.D0*X*(Y+Z)+YZ*YZ
27137 IF (XLAM.LE.0.D0) XLAM = ABS(XLAM)
27138 DT_YLAMB = SQRT(XLAM)
27139
27140 RETURN
27141 END
27142
27143*$ CREATE DT_SORT.FOR
27144*COPY DT_SORT
27145*
27146*===sort1==============================================================*
27147*
27148 SUBROUTINE DT_SORT(A,N,I0,I1,MODE)
27149
27150************************************************************************
27151* This subroutine sorts entries in A in increasing/decreasing order *
27152* of A(3,i). *
27153* MODE = 1 increasing in A(3,i=1..N) *
27154* = 2 decreasing in A(3,i=1..N) *
27155* This version dated 21.04.95 is revised by S. Roesler *
27156************************************************************************
27157
27158 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27159 SAVE
27160
27161 DIMENSION A(3,N)
27162
27163 M = I1
27164 10 CONTINUE
27165 M = I1-1
27166 IF (M.LE.0) RETURN
27167 L = 0
27168 DO 20 I=I0,M
27169 J = I+1
27170 IF (MODE.EQ.1) THEN
27171 IF (A(3,I).LE.A(3,J)) GOTO 20
27172 ELSE
27173 IF (A(3,I).GE.A(3,J)) GOTO 20
27174 ENDIF
27175 B = A(3,I)
27176 C = A(1,I)
27177 D = A(2,I)
27178 A(3,I) = A(3,J)
27179 A(2,I) = A(2,J)
27180 A(1,I) = A(1,J)
27181 A(3,J) = B
27182 A(1,J) = C
27183 A(2,J) = D
27184 L = 1
27185 20 CONTINUE
27186 IF (L.EQ.1) GOTO 10
27187
27188 RETURN
27189 END
27190
27191*$ CREATE DT_SORT1.FOR
27192*COPY DT_SORT1
27193*
27194*===sort1==============================================================*
27195*
27196 SUBROUTINE DT_SORT1(A,IDX,N,I0,I1,MODE)
27197
27198************************************************************************
27199* This subroutine sorts entries in A in increasing/decreasing order *
27200* of A(i). *
27201* MODE = 1 increasing in A(i=1..N) *
27202* = 2 decreasing in A(i=1..N) *
27203* This version dated 21.04.95 is revised by S. Roesler *
27204************************************************************************
27205
27206 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27207 SAVE
27208
27209 DIMENSION A(N),IDX(N)
27210
27211 M = I1
27212 10 CONTINUE
27213 M = I1-1
27214 IF (M.LE.0) RETURN
27215 L = 0
27216 DO 20 I=I0,M
27217 J = I+1
27218 IF (MODE.EQ.1) THEN
27219 IF (A(I).LE.A(J)) GOTO 20
27220 ELSE
27221 IF (A(I).GE.A(J)) GOTO 20
27222 ENDIF
27223 B = A(I)
27224 A(I) = A(J)
27225 A(J) = B
27226 IX = IDX(I)
27227 IDX(I) = IDX(J)
27228 IDX(J) = IX
27229 L = 1
27230 20 CONTINUE
27231 IF (L.EQ.1) GOTO 10
27232
27233 RETURN
27234 END
27235
27236*$ CREATE DT_XTIME.FOR
27237*COPY DT_XTIME
27238*
27239*===xtime==============================================================*
27240*
27241 SUBROUTINE DT_XTIME
27242
27243 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27244 SAVE
27245 PARAMETER ( LINP = 10 ,
27246 & LOUT = 6 ,
27247 & LDAT = 9 )
27248
27249 CHARACTER DAT*9,TIM*11
27250
27251 DAT = ' '
27252 TIM = ' '
27253C CALL GETDAT(IYEAR,IMONTH,IDAY)
27254C CALL GETTIM(IHOUR,IMINUT,ISECND,IHSCND)
27255
27256C CALL DATE(DAT)
27257C CALL TIME(TIM)
27258C WRITE(LOUT,1000) DAT,TIM
27259 1000 FORMAT(/,2X,'Date: ',A9,3X,'Time: ',A11,/)
27260
27261 RETURN
27262 END
27263
27264************************************************************************
27265* *
27266* 7) Random number generator package *
27267* *
27268* THIS IS A PACKAGE CONTAINING A RANDOM NUMBER GENERATOR AND *
27269* SERVICE ROUTINES. *
27270* THE ALGORITHM IS FROM *
27271* 'TOWARD A UNVERSAL RANDOM NUMBER GENERATOR' *
27272* G.MARSAGLIA, A.ZAMAN ; FSU-SCRI-87-50 *
27273* IMPLEMENTATION BY K. HAHN DEC. 88, *
27274* THIS GENERATOR SHOULD NOT DEPEND ON THE HARD WARE ( IF A REAL HAS *
27275* AT LEAST 24 SIGNIFICANT BITS IN INTERNAL REPRESENTATION ), *
27276* THE PERIOD IS ABOUT 2**144, *
27277* TIME FOR ONE CALL AT IBM-XT IS ABOUT 0.7 MILLISECONDS, *
27278* THE PACKAGE CONTAINS *
27279* FUNCTION DT_RNDM(I) : GENERATOR *
27280* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB4): INITIALIZATION *
27281* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) : PUT SEED TO GENERATOR *
27282* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) : TAKE SEED FROM GENERATOR *
27283* SUBROUTINE DT_RNDMTE(IO) : TEST OF GENERATOR *
27284*--- *
27285* FUNCTION DT_RNDM(I) *
27286* GIVES UNIFORMLY DISTRIBUTED RANDOM NUMBERS IN (0..1) *
27287* I - DUMMY VARIABLE, NOT USED *
27288* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1) *
27289* INITIALIZES THE GENERATOR, MUST BE CALLED BEFORE USING DT_RNDM *
27290* NA1,NA2,NA3,NB1 - VALUES FOR INITIALIZING THE GENERATOR *
27291* NA? MUST BE IN 1..178 AND NOT ALL 1 *
27292* 12,34,56 ARE THE STANDARD VALUES *
27293* NB1 MUST BE IN 1..168 *
27294* 78 IS THE STANDARD VALUE *
27295* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) *
27296* PUTS SEED TO GENERATOR ( BRINGS GENERATOR IN THE SAME STATUS *
27297* AS AFTER THE LAST DT_RNDMOU CALL ) *
27298* U(97),C,CD,CM,I,J - SEED VALUES AS TAKEN FROM DT_RNDMOU *
27299* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) *
27300* TAKES SEED FROM GENERATOR *
27301* U(97),C,CD,CM,I,J - SEED VALUES *
27302* SUBROUTINE DT_RNDMTE(IO) *
27303* TEST OF THE GENERATOR *
27304* IO - DEFINES OUTPUT *
27305* = 0 OUTPUT ONLY IF AN ERROR IS DETECTED *
27306* = 1 OUTPUT INDEPENDEND ON AN ERROR *
27307* DT_RNDMTE USES DT_RNDMIN AND DT_RNDMOU TO BRING GENERATOR TO *
27308* SAME STATUS *
27309* AS BEFORE CALL OF DT_RNDMTE *
27310************************************************************************
27311*$ CREATE DT_RNDM.FOR
27312*COPY DT_RNDM
27313*
839efe5b 27314c$$$*===rndm===============================================================*
27315c$$$*
27316c$$$ DOUBLE PRECISION FUNCTION DT_RNDM(VDUMMY)
27317c$$$
27318c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27319c$$$ SAVE
27320c$$$
27321c$$$* random number generator
27322c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27323c$$$
27324c$$$* counter of calls to random number generator
27325c$$$* uncomment if needed
27326c$$$C COMMON /DTRNCT/ IRNCT0,IRNCT1
27327c$$$C LOGICAL LFIRST
27328c$$$C DATA LFIRST /.TRUE./
27329c$$$
27330c$$$* counter of calls to random number generator
27331c$$$* uncomment if needed
27332c$$$C IF (LFIRST) THEN
27333c$$$C IRNCT0 = 0
27334c$$$C IRNCT1 = 0
27335c$$$C LFIRST = .FALSE.
27336c$$$C ENDIF
27337c$$$ 100 CONTINUE
27338c$$$ DT_RNDM = U(I)-U(J)
27339c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27340c$$$ U(I) = DT_RNDM
27341c$$$ I = I-1
27342c$$$ IF ( I.EQ.0 ) I = 97
27343c$$$ J = J-1
27344c$$$ IF ( J.EQ.0 ) J = 97
27345c$$$ C = C-CD
27346c$$$ IF ( C.LT.0.0D0 ) C = C+CM
27347c$$$ DT_RNDM = DT_RNDM-C
27348c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27349c$$$
27350c$$$ IF ((DT_RNDM.EQ.0.D0).OR.(DT_RNDM.EQ.1.D0)) GOTO 100
27351c$$$
27352c$$$* counter of calls to random number generator
27353c$$$* uncomment if needed
27354c$$$C IRNCT0 = IRNCT0+1
27355c$$$
27356c$$$ RETURN
27357c$$$ END
27358c$$$
27359c$$$*$ CREATE DT_RNDMST.FOR
27360c$$$*COPY DT_RNDMST
27361c$$$*
27362c$$$*===rndmst=============================================================*
27363c$$$*
27364c$$$ SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1)
27365c$$$
27366c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27367c$$$ SAVE
27368c$$$
27369c$$$* random number generator
27370c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27371c$$$
27372c$$$ MA1 = NA1
27373c$$$ MA2 = NA2
27374c$$$ MA3 = NA3
27375c$$$ MB1 = NB1
27376c$$$ I = 97
27377c$$$ J = 33
27378c$$$ DO 20 II2 = 1,97
27379c$$$ S = 0
27380c$$$ T = 0.5D0
27381c$$$ DO 10 II1 = 1,24
27382c$$$ MAT = MOD(MOD(MA1*MA2,179)*MA3,179)
27383c$$$ MA1 = MA2
27384c$$$ MA2 = MA3
27385c$$$ MA3 = MAT
27386c$$$ MB1 = MOD(53*MB1+1,169)
27387c$$$ IF ( MOD(MB1*MAT,64).GE.32 ) S = S+T
27388c$$$ 10 T = 0.5D0*T
27389c$$$ 20 U(II2) = S
27390c$$$ C = 362436.0D0/16777216.0D0
27391c$$$ CD = 7654321.0D0/16777216.0D0
27392c$$$ CM = 16777213.0D0/16777216.0D0
27393c$$$ RETURN
27394c$$$ END
27395c$$$
27396c$$$*$ CREATE DT_RNDMIN.FOR
27397c$$$*COPY DT_RNDMIN
27398c$$$*
27399c$$$*===rndmin=============================================================*
27400c$$$*
27401c$$$ SUBROUTINE DT_RNDMIN(UIN,CIN,CDIN,CMIN,IIN,JIN)
27402c$$$
27403c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27404c$$$ SAVE
27405c$$$
27406c$$$* random number generator
27407c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27408c$$$
27409c$$$ DIMENSION UIN(97)
27410c$$$
27411c$$$ DO 10 KKK = 1,97
27412c$$$ 10 U(KKK) = UIN(KKK)
27413c$$$ C = CIN
27414c$$$ CD = CDIN
27415c$$$ CM = CMIN
27416c$$$ I = IIN
27417c$$$ J = JIN
27418c$$$
27419c$$$ RETURN
27420c$$$ END
27421c$$$
27422c$$$*$ CREATE DT_RNDMOU.FOR
27423c$$$*COPY DT_RNDMOU
27424c$$$*
27425c$$$*===rndmou=============================================================*
27426c$$$*
27427c$$$ SUBROUTINE DT_RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
27428c$$$
27429c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27430c$$$ SAVE
27431c$$$
27432c$$$* random number generator
27433c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27434c$$$
27435c$$$ DIMENSION UOUT(97)
27436c$$$
27437c$$$ DO 10 KKK = 1,97
27438c$$$ 10 UOUT(KKK) = U(KKK)
27439c$$$ COUT = C
27440c$$$ CDOUT = CD
27441c$$$ CMOUT = CM
27442c$$$ IOUT = I
27443c$$$ JOUT = J
27444c$$$
27445c$$$ RETURN
27446c$$$ END
27447c$$$
27448c$$$*$ CREATE DT_RNDMTE.FOR
27449c$$$*COPY DT_RNDMTE
27450c$$$*
27451c$$$*===rndmte=============================================================*
27452c$$$*
27453c$$$ SUBROUTINE DT_RNDMTE(IO)
27454c$$$
27455c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27456c$$$ SAVE
27457c$$$
27458c$$$ DIMENSION UU(97),U(6),X(6),D(6)
27459c$$$ DATA U / 6533892.D0, 14220222.D0, 7275067.D0, 6172232.D0,
27460c$$$ +8354498.D0, 10633180.D0/
27461c$$$
27462c$$$ CALL DT_RNDMOU(UU,CC,CCD,CCM,II,JJ)
27463c$$$ CALL DT_RNDMST(12,34,56,78)
27464c$$$ DO 10 II1 = 1,20000
27465c$$$ 10 XX = DT_RNDM(XX)
27466c$$$ SD = 0.0D0
27467c$$$ DO 20 II2 = 1,6
27468c$$$ X(II2) = 4096.D0*(4096.D0*DT_RNDM(SD))
27469c$$$ D(II2) = X(II2)-U(II2)
27470c$$$ 20 SD = SD+D(II2)
27471c$$$ CALL DT_RNDMIN(UU,CC,CCD,CCM,II,JJ)
27472c$$$**sr 24.01.95
27473c$$$C IF ( IO.EQ. 1.OR. SD.NE.0. 0) WRITE(6,500) (U(I),X(I),D(I),I=1,6)
27474c$$$ IF ((IO.EQ.1).OR.(SD.NE.0.0)) THEN
27475c$$$C WRITE(6,1000)
27476c$$$ 1000 FORMAT(/,/,1X,'DT_RNDMTE: Test of random-number generator...',
27477c$$$ & ' passed')
27478c$$$ ENDIF
27479c$$$**
27480c$$$ RETURN
27481c$$$ 500 FORMAT(' === TEST OF THE RANDOM-GENERATOR ===',/,
27482c$$$ &' EXPECTED VALUE CALCULATED VALUE DIFFERENCE',/, 6(F17.
27483c$$$ &1,F20.1,F15.3,/), ' === END OF TEST ;',
27484c$$$ &' GENERATOR HAS THE SAME STATUS AS BEFORE CALLING DT_RNDMTE')
27485c$$$ END
9aaba0d6 27486*
27487*$ CREATE PHO_RNDM.FOR
27488*COPY PHO_RNDM
27489*
27490*===pho_rndm===========================================================*
27491*
27492 DOUBLE PRECISION FUNCTION PHO_RNDM(DUMMY)
27493
27494 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27495 SAVE
27496
27497 PHO_RNDM = DT_RNDM(DUMMY)
27498
27499 RETURN
27500 END
27501
27502*$ CREATE PYR.FOR
27503*COPY PYR
27504*
27505*===pyr================================================================*
27506*
27507 DOUBLE PRECISION FUNCTION PYR(IDUMMY)
27508
27509 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27510 SAVE
27511
27512 DUMMY = DBLE(IDUMMY)
27513 PYR = DT_RNDM(DUMMY)
27514
27515 RETURN
27516 END
27517
27518*$ CREATE DT_TITLE.FOR
27519*COPY DT_TITLE
27520*
27521*===title==============================================================*
27522*
27523 SUBROUTINE DT_TITLE
27524
27525 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27526 SAVE
27527 PARAMETER ( LINP = 10 ,
27528 & LOUT = 6 ,
27529 & LDAT = 9 )
27530
27531 CHARACTER*6 CVERSI
27532 CHARACTER*11 CCHANG
27533 DATA CVERSI,CCHANG /'3.0-5 ','08 Jan 2007'/
27534
27535 CALL DT_XTIME
27536 WRITE(LOUT,1000) CVERSI,CCHANG
27537 1000 FORMAT(1X,'+-------------------------------------------------',
27538 & '----------------------+',/,
27539 & 1X,'|',71X,'|',/,
27540 & 1X,'|',26X,'DPMJET version ',A6,24X,'|',/,
27541 & 1X,'|',71X,'|',/,
27542 & 1X,'|',22X,'(Last change: ',A11,')',23X,'|',/,
27543 & 1X,'|',71X,'|',/,
27544 & 1X,'|',12X,'Authors: Stefan Roesler (CERN)',27X,'|',/,
27545 & 1X,'|',21X,'Ralph Engel (FZ Karlsruhe)',19X,'|',/,
27546 & 1X,'|',21X,'Johannes Ranft (Siegen Univ.)',19X,'|',/,
27547 & 1X,'|',71X,'|',/,
27548 & 1X,'|',12X,'http://home.cern.ch/~sroesler/dpmjet3.html',
27549 & 17X,'|',/,
27550 & 1X,'|',71X,'|',/,
27551 & 1X,'+-------------------------------------------------',
27552 & '----------------------+',/,
27553 & 1X,'| Please send suggestions, bug reports, etc. to: ',
27554 & 'Stefan.Roesler@cern.ch |',/,
27555 & 1X,'+-------------------------------------------------',
27556 & '----------------------+',/)
27557
27558 RETURN
27559 END
27560
27561*$ CREATE DT_EVTINI.FOR
27562*COPY DT_EVTINI
27563*
27564*===evtini=============================================================*
27565*
27566 SUBROUTINE DT_EVTINI
27567
27568************************************************************************
27569* Initialization of DTEVT1. *
27570* This version dated 15.01.94 is written by S. Roesler *
27571************************************************************************
27572
27573 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27574 SAVE
27575 PARAMETER ( LINP = 10 ,
27576 & LOUT = 6 ,
27577 & LDAT = 9 )
27578
27579* event history
27580 PARAMETER (NMXHKK=200000)
27581 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27582 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27583 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27584* extended event history
27585 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
27586 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
27587 & IHIST(2,NMXHKK)
27588* event flag
27589 COMMON /DTEVNO/ NEVENT,ICASCA
27590 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
27591* emulsion treatment
27592 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
27593 & NCOMPO,IEMUL
27594
27595* initialization of DTEVT1/DTEVT2
27596 NEND = NHKK
27597 IF (NEVENT.EQ.1) NEND = NMXHKK
27598 NHKK = 0
27599 NEVHKK = NEVENT
27600 DO 1 I=1,NEND
27601 ISTHKK(I) = 0
27602 IDHKK(I) = 0
27603 JMOHKK(1,I) = 0
27604 JMOHKK(2,I) = 0
27605 JDAHKK(1,I) = 0
27606 JDAHKK(2,I) = 0
27607 IDRES(I) = 0
27608 IDXRES(I) = 0
27609 NOBAM(I) = 0
27610 IDCH(I) = 0
27611 IHIST(1,I) = 0
27612 IHIST(2,I) = 0
27613 DO 2 J=1,4
27614 PHKK(J,I) = 0.0D0
27615 VHKK(J,I) = 0.0D0
27616 WHKK(J,I) = 0.0D0
27617 2 CONTINUE
27618 PHKK(5,I) = 0.0D0
27619 1 CONTINUE
27620 DO 3 I=1,10
27621 NPOINT(I) = 0
27622 3 CONTINUE
27623 CALL DT_CHASTA(-1)
27624
27625C* initialization of DTLTRA
27626C IF (NCOMPO.GT.0) CALL DT_LTINI(ID,EPN,PPN,ECM)
27627
27628 RETURN
27629 END
27630
27631*$ CREATE DT_STATIS.FOR
27632*COPY DT_STATIS
27633*
27634*===statis=============================================================*
27635*
27636 SUBROUTINE DT_STATIS(MODE)
27637
27638************************************************************************
27639* Initialization and output of run-statistics. *
27640* MODE = 1 initialization *
27641* = 2 output *
27642* This version dated 23.01.94 is written by S. Roesler *
27643************************************************************************
27644
27645 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27646 SAVE
27647 PARAMETER ( LINP = 10 ,
27648 & LOUT = 6 ,
27649 & LDAT = 9 )
27650 PARAMETER (TINY3=1.0D-3)
27651
27652* statistics
27653 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
27654 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
27655 & ICEVTG(8,0:30)
27656* rejection counter
27657 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
27658 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
27659 & IREXCI(3),IRDIFF(2),IRINC
27660* central particle production, impact parameter biasing
27661 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
27662* various options for treatment of partons (DTUNUC 1.x)
27663* (chain recombination, Cronin,..)
27664 LOGICAL LCO2CR,LINTPT
27665 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
27666 & LCO2CR,LINTPT
27667* nucleon-nucleon event-generator
27668 CHARACTER*8 CMODEL
27669 LOGICAL LPHOIN
27670 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
27671* flags for particle decays
27672 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
27673 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
27674 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
27675* diquark-breaking mechanism
27676 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
27677
27678 DIMENSION PP(4),PT(4)
27679
27680 GOTO (1,2) MODE
27681
27682* initialization
27683 1 CONTINUE
27684
27685* initialize statistics counter
27686 ICREQU = 0
27687 ICSAMP = 0
27688 ICCPRO = 0
27689 ICDPR = 0
27690 ICDTA = 0
27691 ICRJSS = 0
27692 ICVV2S = 0
27693 DO 10 I=1,9
27694 ICRES(I) = 0
27695 ICCHAI(1,I) = 0
27696 ICCHAI(2,I) = 0
27697 10 CONTINUE
27698* initialize rejection counter
27699 IRPT = 0
27700 IRHHA = 0
27701 LOMRES = 0
27702 LOBRES = 0
27703 IRFRAG = 0
27704 IREVT = 0
27705 IRRES(1) = 0
27706 IRRES(2) = 0
27707 IRCHKI(1) = 0
27708 IRCHKI(2) = 0
27709 IRCRON(1) = 0
27710 IRCRON(2) = 0
27711 IRCRON(3) = 0
27712 IRDIFF(1) = 0
27713 IRDIFF(2) = 0
27714 IRINC = 0
27715 DO 11 I=1,5
27716 ICDIFF(I) = 0
27717 11 CONTINUE
27718 DO 12 I=1,8
27719 DO 13 J=0,30
27720 ICEVTG(I,J) = 0
27721 13 CONTINUE
27722 12 CONTINUE
27723
27724 RETURN
27725
27726* output
27727 2 CONTINUE
27728
27729* statistics counter
27730 WRITE(LOUT,1000)
27731 1000 FORMAT(/,/,1X,'STATIS:',20X,'statistics of the run',/,
27732 & 28X,'---------------------')
be6523b4 27733 IF (ICREQU.GT.0) THEN
9aaba0d6 27734 WRITE(LOUT,1001) ICREQU,ICSAMP,DBLE(ICSAMP)/DBLE(ICREQU)
27735 1001 FORMAT(/,1X,'number of events requested / sampled',13X,
27736 & I8,' / ',I8,/,1X,'number of samp. evts per requested ',
27737 & 'event',11X,F9.1)
be6523b4 27738 ENDIF
9aaba0d6 27739 IF (ICDIFF(1).NE.0) THEN
27740 WRITE(LOUT,1009) ICDIFF
27741 1009 FORMAT(/,1X,'diffractive events: total ',I8,/,49X,
27742 & 'low mass high mass',/,24X,'single diffraction',
27743 & 7X,I8,4X,I8,/,24X,'double diffraction',7X,I8,4X,I8)
27744 ENDIF
be6523b4 27745 IF (ICENTR.GT.0.AND.ICSAMP.GT.0.AND.ICCPRO.GT.0) THEN
9aaba0d6 27746 WRITE(LOUT,1002) DBLE(ICCPRO)/DBLE(ICSAMP),
27747 & DBLE(ICSAMP)/DBLE(ICCPRO)
27748 1002 FORMAT(/,1X,'central production:',/,2X,'mean number',
27749 & ' of sampled Glauber-events per event',9X,F9.1,/,
27750 & 2X,'fraction of production cross section',21X,F10.6)
27751 ENDIF
be6523b4 27752 IF (ICSAMP.GT.0) THEN
9aaba0d6 27753 WRITE(LOUT,1003) DBLE(ICDPR)/DBLE(ICSAMP),
27754 & DBLE(ICDTA)/DBLE(ICSAMP)
27755 1003 FORMAT(/,54X,'proj. targ.',/,1X,'average number of wounded',
27756 & ' nucleons after x-sampling',2(4X,F6.2))
be6523b4 27757 ENDIF
9aaba0d6 27758
27759 IF (MCGENE.EQ.1) THEN
be6523b4 27760 IF (ICSAMP.GT.0) THEN
9aaba0d6 27761 WRITE(LOUT,1004) DBLE(ICRJSS)/DBLE(ICSAMP)
27762 1004 FORMAT(/,1X,'mean number of sea-sea chain rejections per',
27763 & ' event',3X,F9.1)
27764 IF (ISICHA.EQ.1) THEN
27765 WRITE(LOUT,1005) DBLE(ICVV2S)/DBLE(ICSAMP)
27766 1005 FORMAT(/,1X,'Reggeon contribution:',/,1X,'mean number ',
27767 & 'of single chains per event',13X,F9.1)
27768 ENDIF
be6523b4 27769 ENDIF
27770 IF (ICSAMP.GT.0.AND.ICREQU.GT.0) THEN
9aaba0d6 27771 WRITE(LOUT,1006)
27772 1006 FORMAT(/,1X,'chain system statistics: (per event)',/,
27773 & 23X,'mean number of chains mean number of chains',/,
27774 & 23X,'sampled hadronized having mass of a reso.')
27775 WRITE(LOUT,1007) (DBLE(ICCHAI(1,J))/(2.0D0*DBLE(ICSAMP)),
27776 & DBLE(ICCHAI(2,J))/(2.0D0*DBLE(ICREQU)),
27777 & DBLE(ICRES(J))/(2.0D0*DBLE(ICREQU)),J=1,8),
27778 & DBLE(ICCHAI(2,9))/MAX(DBLE(ICCHAI(1,9)),TINY3)
27779 1007 FORMAT(1X,'sea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27780 & 1X,'disea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27781 & 1X,'sea - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27782 & 1X,'sea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27783 & 1X,'disea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27784 & 1X,'valence - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27785 & 1X,'valence - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27786 & 1X,'valence - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27787 & 1X,'fused chains ',18X,F4.1,17X,F4.1,/)
27788 WRITE(LOUT,1008)
27789 & (DBLE(IRCRON(I))/MAX(DBLE(IRCRON(1)),TINY3),I=2,3),
27790 & DBLE(IRPT)/DBLE(ICREQU),(DBLE(IRRES(I))/DBLE(ICREQU),I=1,2),
27791 & DBLE(LOMRES)/DBLE(ICREQU),DBLE(LOBRES)/DBLE(ICREQU),
27792 & (DBLE(IRCHKI(I))/DBLE(ICREQU),I=1,2),
27793 & (DBLE(IRDIFF(I))/DBLE(ICREQU),I=1,2),
27794 & DBLE(IRHHA)/DBLE(ICREQU),
27795 & DBLE(IRFRAG)/DBLE(ICREQU),DBLE(IREVT)/DBLE(ICREQU),
27796 & (DBLE(IREXCI(I))/DBLE(ICREQU),I=1,2),IREXCI(3)
27797 1008 FORMAT(/,1X,'Rejection counter: (NEVT = no. of events)',/,/,
27798 & 1X,'Cronin-effect (CRONIN)',15X,'IRCRON(2)/IRCRON(1) = ',
27799 & F7.2,/,38X,'IRCRON(3)/IRCRON(1) = ',F7.2,/,1X,
27800 & 'Intrins. p_t (GETSPT)',21X,'IRPT /NEVT = ',F7.2,/,
27801 & 1X,'Chain mass corr. for resonances (EVTRES)',2X,
27802 & 'IRRES(1) /NEVT = ',F7.2,/,33X,'(CH2RES) IRRES(2) /',
27803 & 'NEVT = ',F7.2,/,43X,'LOMRES /NEVT = ',F7.2,/,
27804 & 43X,'LOBRES /NEVT = ',F7.2,/,1X,'Kinem. corr. of',
27805 & ' 2-chain systems (CHKINE) IRCHKI(1)/NEVT = ',F7.2,/,
27806 & 43X,'IRCHKI(2)/NEVT = ',F7.2,/,1X,'Diffraction',31X,
27807 & 'IRDIFF(1)/NEVT = ',F7.2,/,43X,'IRDIFF(2)/NEVT = ',
27808 & F7.2,/,1X,'Total no. of rej.',
27809 & ' in chain-systems treatment (GETCSY)',/,43X,
27810 & 'IRHHA /NEVT = ',F7.2,/,1X,'Fragmentation (EVTFRA)',
27811 & ' (not yet used!)',4X,'IRFRAG /NEVT = ',F7.2,/,
27812 & 1X,'Total no. of rej. in DPM-treatment of one event',
27813 & ' (EVENTA)',/,43X,'IREVT /NEVT = ',F7.2,/,1X,
27814 & 'Treatment of final nucleon conf.',10X,'IREXCI(1)/NEVT = '
27815 & ,F7.2,/,43X,'IREXCI(2)/NEVT = ',F7.2,/,48X,
27816 & 'IREXCI(3) = ',I5,/)
be6523b4 27817 ENDIF
9aaba0d6 27818 ELSEIF (MCGENE.EQ.2) THEN
27819 WRITE(LOUT,1010) ELOJET
27820 1010 FORMAT(/,/,1X,'PHOJET-treatment of chain systems above ',
27821 & F4.1,' GeV')
27822 WRITE(LOUT,1011)
27823 1011 FORMAT(/,1X,'1. chain system statistics - total numbers:',/,
27824 & 30X,'--------------',/,/,12X,'s-s',5X,'d-s',5X,'s-d',
27825 & 5X,'s-v',5X,'d-v',5X,'v-s',5X,'v-d',5X,'v-v')
27826 WRITE(LOUT,1012) ((ICEVTG(I,J),I=1,8),J=0,1),
27827 & (INT(ICCHAI(2,I)/2.0D0),I=1,8),
27828 & (ICEVTG(I,2),I=1,8),(ICEVTG(I,29),I=1,8),
27829 & ((ICEVTG(I,J),I=1,8),J=3,7),
27830 & ((ICEVTG(I,J),I=1,8),J=19,21),
27831 & (ICEVTG(I,8),I=1,8),
27832 & ((ICEVTG(I,J),I=1,8),J=22,24),
27833 & (ICEVTG(I,9),I=1,8),
27834 & ((ICEVTG(I,J),I=1,8),J=25,28),
27835 & ((ICEVTG(I,J),I=1,8),J=10,18)
27836 1012 FORMAT(/,1X,'req.to.',8I8,/,/,1X,'low rq.',8I8,/,1X,'low ac.',
27837 & 8I8,/,/,1X,'PHOJET ',8I8,/,' sngl ',8I8,/,/,
27838 & ' no-dif.',8I8,/,
27839 & ' el-sca.',8I8,/,' qel-sc.',8I8,/,' dbl-Po.',8I8,/,
27840 & ' diff-1 ',8I8,/,' low ',8I8,/,' high ',8I8,/,
27841 & ' h-diff',8I8,/,' diff-2 ',8I8,/,' low ',8I8,/,
27842 & ' high ',8I8,/,' h-diff',8I8,/,' dbl-di.',8I8,/,
27843 & ' lo-lo ',8I8,/,' hi-hi ',8I8,/,' lo-hi ',8I8,/,
27844 & ' hi-lo ',8I8,/,
27845 & ' dir-ga.',8I8,/,/,' dir-1 ',8I8,/,' dir-2 ',8I8,/,
27846 & ' dbl-dir',8I8,/,' s-Pom. ',8I8,/,' h-Pom. ',8I8,/,
27847 & ' s-Reg. ',8I8,/,' enh-trg',8I8,/,' enh-log',8I8)
27848 WRITE(LOUT,1013)
27849 1013 FORMAT(/,1X,'2. chain system statistics -',
27850 & ' mean numbers per evt:',/,30X,'---------------------',
27851 & /,/,16X,'s-s',7X,'d-s',7X,'s-d')
be6523b4 27852 IF (ICSAMP.GT.0) THEN
9aaba0d6 27853 WRITE(LOUT,1014)
27854 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=0,1),
27855 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=1,3),
27856 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=2,18)
27857 1014 FORMAT(/,1X,'req.to. ',3E10.2,/,/,1X,'low rq. ',3E10.2,/,
27858 & 1X,'low ac. ',3E10.2,/,/,1X,'PHOJET ',3E10.2,/,/,
27859 & ' no-dif. ',3E10.2,/,' el-sca. ',3E10.2,/,
27860 & ' qel-sc. ',3E10.2,/,' dbl-Po. ',3E10.2,/,
27861 & ' diff-1 ',3E10.2,/,' diff-2 ',3E10.2,/,
27862 & ' dbl-di. ',3E10.2,/,' dir-ga. ',3E10.2,/,/,
27863 & ' dir-1 ',3E10.2,/,' dir-2 ',3E10.2,/,
27864 & ' dbl-dir ',3E10.2,/,' s-Pom. ',3E10.2,/,
27865 & ' h-Pom. ',3E10.2,/,' s-Reg. ',3E10.2,/,
27866 & ' enh-trg ',3E10.2,/,' enh-log ',3E10.2)
be6523b4 27867 ENDIF
9aaba0d6 27868 WRITE(LOUT,1015)
27869 1015 FORMAT(/,16X,'s-v',7X,'d-v',7X,'v-s',7X,'v-d',7X,'v-v')
be6523b4 27870 IF (ICSAMP.GT.0) THEN
9aaba0d6 27871 WRITE(LOUT,1016)
27872 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=0,1),
27873 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=4,8),
27874 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=2,18)
27875 1016 FORMAT(/,1X,'req.to. ',5E10.2,/,/,1X,'low rq. ',5E10.2,/,
27876 & 1X,'low ac. ',5E10.2,/,/,1X,'PHOJET ',5E10.2,/,/,
27877 & ' no-dif. ',5E10.2,/,' el-sca. ',5E10.2,/,
27878 & ' qel-sc. ',5E10.2,/,' dbl-Po. ',5E10.2,/,
27879 & ' diff-1 ',5E10.2,/,' diff-2 ',5E10.2,/,
27880 & ' dbl-di. ',5E10.2,/,' dir-ga. ',5E10.2,/,/,
27881 & ' dir-1 ',5E10.2,/,' dir-2 ',5E10.2,/,
27882 & ' dbl-dir ',5E10.2,/,' s-Pom. ',5E10.2,/,
27883 & ' h-Pom. ',5E10.2,/,' s-Reg. ',5E10.2,/,
27884 & ' enh-trg ',5E10.2,/,' enh-log ',5E10.2)
be6523b4 27885 ENDIF
9aaba0d6 27886
27887 ENDIF
27888 CALL DT_CHASTA(1)
27889
27890 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
27891 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
27892 WRITE(LOUT,*)'YGS1S,YGS2S,YUS1S,YUS2S',
27893 & DBRKA(1,1)+DBRKA(2,1),DBRKA(1,2)+DBRKA(2,2),
27894 & DBRKA(1,3)+DBRKA(2,3),DBRKA(1,4)+DBRKA(2,4)
27895 WRITE(LOUT,*)'YGS1R,YGS2R,YUS1R,YUS2R',
27896 & DBRKR(1,1)+DBRKR(2,1),DBRKR(1,2)+DBRKR(2,2),
27897 & DBRKR(1,3)+DBRKR(2,3),DBRKR(1,4)+DBRKR(2,4)
27898 WRITE(LOUT,*)'YGSA1S,YGSA2S,YUSA1S,YUSA2S',
27899 & DBRKA(1,5)+DBRKA(2,5),DBRKA(1,6)+DBRKA(2,6),
27900 & DBRKA(1,7)+DBRKA(2,7),DBRKA(1,8)+DBRKA(2,8)
27901 WRITE(LOUT,*)'YGSA1R,YGSA2R,YUSA1R,YUSA2R',
27902 & DBRKR(1,5)+DBRKR(2,5),DBRKR(1,6)+DBRKR(2,6),
27903 & DBRKR(1,7)+DBRKR(2,7),DBRKR(1,8)+DBRKR(2,8)
27904 WRITE(LOUT,*)'YG31S,YG32S,YU31S,YU32S',
27905 & DBRKA(3,1),DBRKA(3,2),
27906 & DBRKA(3,3),DBRKA(3,4)
27907 WRITE(LOUT,*)'YG31R,YG32R,YU31R,YU32R',
27908 & DBRKR(3,1),DBRKR(3,2),
27909 & DBRKR(3,3),DBRKR(3,4)
27910 WRITE(LOUT,*)'YG3A1S,YG3A2S,YU3A1S,YU3A2S',
27911 & DBRKA(3,5),DBRKA(3,6),
27912 & DBRKA(3,7),DBRKA(3,8)
27913 WRITE(LOUT,*)'YG3A1R,YG3A2R,YU3A1R,YU3A2R',
27914 & DBRKR(3,5),DBRKR(3,6),
27915 & DBRKR(3,7),DBRKR(3,8)
27916 ENDIF
27917
27918 FAC = 1.0D0
27919 IF (MCGENE.EQ.2) THEN
27920C CALL PHO_PHIST(-2,SIGMAX)
27921 CALL PHO_EVENT(-2,PP,PT,FAC,IREJ1)
27922 ENDIF
27923
27924 CALL DT_XTIME
27925
27926 RETURN
27927 END
27928
27929*$ CREATE DT_EVTOUT.FOR
27930*COPY DT_EVTOUT
27931*
27932*===evtout=============================================================*
27933*
27934 SUBROUTINE DT_EVTOUT(MODE)
27935
27936************************************************************************
27937* MODE = 1 plot content of complete DTEVT1 to out. unit *
27938* 3 plot entries of extended DTEVT1 (DTEVT2) *
27939* 4 plot entries of DTEVT1 and DTEVT2 *
27940* This version dated 11.12.94 is written by S. Roesler *
27941************************************************************************
27942
27943 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27944 SAVE
27945 PARAMETER ( LINP = 10 ,
27946 & LOUT = 6 ,
27947 & LDAT = 9 )
27948* event history
27949 PARAMETER (NMXHKK=200000)
27950 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27951 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27952 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27953
27954 DIMENSION IRANGE(NMXHKK)
27955
27956 IF (MODE.EQ.2) RETURN
27957
27958 CALL DT_EVTPLO(IRANGE,MODE)
27959
27960 RETURN
27961 END
27962
27963*$ CREATE DT_EVTPLO.FOR
27964*COPY DT_EVTPLO
27965*
27966*===evtplo=============================================================*
27967*
27968 SUBROUTINE DT_EVTPLO(IRANGE,MODE)
27969
27970************************************************************************
27971* MODE = 1 plot content of complete DTEVT1 to out. unit *
27972* 2 plot entries of DTEVT1 given by IRANGE *
27973* 3 plot entries of extended DTEVT1 (DTEVT2) *
27974* 4 plot entries of DTEVT1 and DTEVT2 *
27975* 5 plot rejection counter *
27976* This version dated 11.12.94 is written by S. Roesler *
27977************************************************************************
27978
27979 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27980 SAVE
27981 PARAMETER ( LINP = 10 ,
27982 & LOUT = 6 ,
27983 & LDAT = 9 )
27984
27985 CHARACTER*16 CHAU
27986
27987* event history
27988 PARAMETER (NMXHKK=200000)
27989 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27990 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27991 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27992* extended event history
27993 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
27994 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
27995 & IHIST(2,NMXHKK)
27996* rejection counter
27997 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
27998 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
27999 & IREXCI(3),IRDIFF(2),IRINC
28000
28001 DIMENSION IRANGE(NMXHKK)
28002
28003 IF ((MODE.EQ.1).OR.(MODE.EQ.4)) THEN
28004 WRITE(LOUT,1000)
28005 1000 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTEVT1/',/,
28006 & 15X,' --------------------------',/,/,
28007 & ' ST ID M1 M2 D1 D2 PX PY',
28008 & ' PZ E M',/)
28009 DO 1 I=1,NHKK
28010 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28011 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28012 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28013 & PHKK(5,I)
28014C WRITE(LOUT,1011) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28015C & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28016C & PHKK(3,I),PHKK(4,I)
28017C WRITE(LOUT,'(4E15.4)')
28018C & VHKK(1,I),VHKK(2,I),VHKK(3,I),VHKK(4,I)
28019 1001 FORMAT(I5,I5,I6,4I5,3F7.3,F8.3,F8.4)
28020 1011 FORMAT(I5,I5,I6,4I5,2E15.5)
28021 1 CONTINUE
28022 WRITE(LOUT,*)
28023C DO 4 I=1,NHKK
28024C WRITE(LOUT,1006) I,ISTHKK(I),
28025C & VHKK(1,I),VHKK(2,I),VHKK(3,I),WHKK(1,I),
28026C & WHKK(2,I),WHKK(3,I)
28027C1006 FORMAT(1X,I4,I6,6E10.3)
28028C 4 CONTINUE
28029 ENDIF
28030
28031 IF (MODE.EQ.2) THEN
28032 WRITE(LOUT,1000)
28033 NC = 0
28034 2 CONTINUE
28035 NC = NC+1
28036 IF (IRANGE(NC).EQ.-100) GOTO 9999
28037 I = IRANGE(NC)
28038 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28039 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28040 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28041 & PHKK(5,I)
28042 GOTO 2
28043 ENDIF
28044
28045 IF ((MODE.EQ.3).OR.(MODE.EQ.4)) THEN
28046 WRITE(LOUT,1002)
28047 1002 FORMAT(/,1X,'EVTPLO:',14X,
28048 & ' content of COMMON /DTEVT1/,/DTEVT2/',/,
28049 & 15X,' -----------------------------------',/,/,
28050 & ' ST ID M1 M2 D1 D2 IDR IDXR',
28051 & ' NOBAM IDCH M',/)
28052 DO 3 I=1,NHKK
28053C IF ((ISTHKK(I).GT.10).OR.(ISTHKK(I).EQ.1)) THEN
28054 KF = IDHKK(I)
28055 IDCHK = KF/10000
28056 IF ((((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28057 & (KF.NE.80000)).OR.(IDHKK(I).EQ.99999)) KF = 92
28058 CALL PYNAME(KF,CHAU)
28059 WRITE(LOUT,1003) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28060 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28061 & IDRES(I),IDXRES(I),NOBAM(I),IDCH(I),
28062 & PHKK(5,I),CHAU
28063 1003 FORMAT(I5,I5,I6,4I5,4I4,F8.4,2X,A)
28064C ENDIF
28065 3 CONTINUE
28066 ENDIF
28067
28068 IF (MODE.EQ.5) THEN
28069 WRITE(LOUT,1004)
28070 1004 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTREJC/',/,
28071 & 15X,' --------------------------',/)
28072 WRITE(LOUT,1005) IRPT,IRHHA,IRRES,LOMRES,LOBRES,IREMC,IRFRAG,
28073 & IRSEA,IRCRON
28074 1005 FORMAT(1X,'IRPT = ',I5,' IRHHA = ',I5,/,
28075 & 1X,'IRRES = ',2I5,' LOMRES = ',I5,' LOBRES = ',I5,/,
28076 & 1X,'IREMC = ',10I5,/,
28077 & 1X,'IRFRAG = ',I5,' IRSEA = ',I5,' IRCRON = ',I5,/)
28078 ENDIF
28079
28080 9999 RETURN
28081 END
28082
28083*$ CREATE DT_EVTPUT.FOR
28084*COPY DT_EVTPUT
28085*
28086*===evtput=============================================================*
28087*
28088 SUBROUTINE DT_EVTPUT(IST,ID,M1,M2,PX,PY,PZ,E,IDR,IDXR,IDC)
28089
28090 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28091 SAVE
28092 PARAMETER ( LINP = 10 ,
28093 & LOUT = 6 ,
28094 & LDAT = 9 )
28095 PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4,TINY3=1.0D-3,
28096 & TINY2=1.0D-2,SQTINF=1.0D+15,ZERO=0.0D0)
28097
28098* event history
28099 PARAMETER (NMXHKK=200000)
28100 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28101 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28102 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28103* extended event history
28104 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28105 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28106 & IHIST(2,NMXHKK)
28107* Lorentz-parameters of the current interaction
28108 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28109 & UMO,PPCM,EPROJ,PPROJ
28110* particle properties (BAMJET index convention)
28111 CHARACTER*8 ANAME
28112 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28113 & IICH(210),IIBAR(210),K1(210),K2(210)
28114
28115C IF (MODE.GT.100) THEN
28116C WRITE(LOUT,'(1X,A,I5,A,I5)')
28117C & 'EVTPUT: reset NHKK = ',NHKK,' to NHKK =',NHKK-MODE+100
28118C NHKK = NHKK-MODE+100
28119C RETURN
28120C ENDIF
28121 MO1 = M1
28122 MO2 = M2
28123 NHKK = NHKK+1
28124
28125 IF (NHKK.GT.NMXHKK) THEN
28126 WRITE(LOUT,1000) NHKK
28127 1000 FORMAT(1X,'EVTPUT: NHKK exeeds NMXHKK = ',I7,
28128 & '! program execution stopped..')
28129 STOP
28130 ENDIF
28131 IF (M1.LT.0) MO1 = NHKK+M1
28132 IF (M2.LT.0) MO2 = NHKK+M2
28133 ISTHKK(NHKK) = IST
28134 IDHKK(NHKK) = ID
28135 JMOHKK(1,NHKK) = MO1
28136 JMOHKK(2,NHKK) = MO2
28137 JDAHKK(1,NHKK) = 0
28138 JDAHKK(2,NHKK) = 0
28139 IDRES(NHKK) = IDR
28140 IDXRES(NHKK) = IDXR
28141 IDCH(NHKK) = IDC
28142** here we need to do something..
28143 IF (ID.EQ.88888) THEN
28144 IDMO1 = ABS(IDHKK(MO1))
28145 IDMO2 = ABS(IDHKK(MO2))
28146 IF ((IDMO1.LT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 3
28147 IF ((IDMO1.LT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 4
28148 IF ((IDMO1.GT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 5
28149 IF ((IDMO1.GT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 6
28150 ELSE
28151 NOBAM(NHKK) = 0
28152 ENDIF
28153 IDBAM(NHKK) = IDT_ICIHAD(ID)
28154 IF (MO1.GT.0) THEN
28155 IF (JDAHKK(1,MO1).NE.0) THEN
28156 JDAHKK(2,MO1) = NHKK
28157 ELSE
28158 JDAHKK(1,MO1) = NHKK
28159 ENDIF
28160 ENDIF
28161 IF (MO2.GT.0) THEN
28162 IF (JDAHKK(1,MO2).NE.0) THEN
28163 JDAHKK(2,MO2) = NHKK
28164 ELSE
28165 JDAHKK(1,MO2) = NHKK
28166 ENDIF
28167 ENDIF
28168C IF ((IDBAM(NHKK).GT.0).AND.(IDBAM(NHKK).NE.7)) THEN
28169C PTOT = SQRT(PX**2+PY**2+PZ**2)
28170C AM0 = SQRT(ABS( (E-PTOT)*(E+PTOT) ))
28171C AMRQ = AAM(IDBAM(NHKK))
28172C AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
28173C IF ((ABS(AMDIF2).GT.TINY3).AND.(E.LT.SQTINF).AND.
28174C & (PTOT.GT.ZERO)) THEN
28175C DELTA = -AMDIF2/(2.0D0*(E+PTOT))
28176CC DELTA = (AMRQ2-AM2)/(2.0D0*(E+PTOT))
28177C E = E+DELTA
28178C PTOT1 = PTOT-DELTA
28179C PX = PX*PTOT1/PTOT
28180C PY = PY*PTOT1/PTOT
28181C PZ = PZ*PTOT1/PTOT
28182C ENDIF
28183C ENDIF
28184 PHKK(1,NHKK) = PX
28185 PHKK(2,NHKK) = PY
28186 PHKK(3,NHKK) = PZ
28187 PHKK(4,NHKK) = E
28188 PTOT = SQRT( PX**2+PY**2+PZ**2 )
28189 IF ((IDHKK(NHKK).GE.22).AND.(IDHKK(NHKK).LE.24)) THEN
28190 PHKK(5,NHKK) = PHKK(4,NHKK)**2-PTOT**2
28191 PHKK(5,NHKK) = SIGN(SQRT(ABS(PHKK(5,NHKK))),PHKK(5,NHKK))
28192 ELSE
28193 PHKK(5,NHKK) = (PHKK(4,NHKK)-PTOT)*(PHKK(4,NHKK)+PTOT)
28194C IF ((PHKK(5,NHKK).LT.0.0D0).AND.(ABS(PHKK(5,NHKK)).GT.TINY4))
28195C & WRITE(LOUT,'(1X,A,G10.3)')
28196C & 'EVTPUT: negative mass**2 ',PHKK(5,NHKK)
28197 PHKK(5,NHKK) = SQRT(ABS(PHKK(5,NHKK)))
28198 ENDIF
28199 IDCHK = ID/10000
28200 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.(ID.NE.80000)) THEN
28201* special treatment for chains:
28202* z coordinate of chain in Lab = pos. of target nucleon
28203* time of chain-creation in Lab = time of passage of projectile
28204* nucleus at pos. of taget nucleus
28205C VHKK(1,NHKK) = 0.5D0*(VHKK(1,MO1)+VHKK(1,MO2))
28206C VHKK(2,NHKK) = 0.5D0*(VHKK(2,MO1)+VHKK(2,MO2))
28207 VHKK(1,NHKK) = VHKK(1,MO2)
28208 VHKK(2,NHKK) = VHKK(2,MO2)
28209 VHKK(3,NHKK) = VHKK(3,MO2)
28210 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
28211C WHKK(1,NHKK) = 0.5D0*(WHKK(1,MO1)+WHKK(1,MO2))
28212C WHKK(2,NHKK) = 0.5D0*(WHKK(2,MO1)+WHKK(2,MO2))
28213 WHKK(1,NHKK) = WHKK(1,MO1)
28214 WHKK(2,NHKK) = WHKK(2,MO1)
28215 WHKK(3,NHKK) = WHKK(3,MO1)
28216 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
28217 ELSE
28218 IF (MO1.GT.0) THEN
28219 DO 1 I=1,4
28220 VHKK(I,NHKK) = VHKK(I,MO1)
28221 WHKK(I,NHKK) = WHKK(I,MO1)
28222 1 CONTINUE
28223 ELSE
28224 DO 2 I=1,4
28225 VHKK(I,NHKK) = ZERO
28226 WHKK(I,NHKK) = ZERO
28227 2 CONTINUE
28228 ENDIF
28229 ENDIF
28230
28231 RETURN
28232 END
28233
28234*$ CREATE DT_CHASTA.FOR
28235*COPY DT_CHASTA
28236*
28237*===chasta=============================================================*
28238*
28239 SUBROUTINE DT_CHASTA(MODE)
28240
28241************************************************************************
28242* This subroutine performs CHAin STAtistics and checks sequence of *
28243* partons in dtevt1 and sorts them with projectile partons coming *
28244* first if necessary. *
28245* *
28246* This version dated 8.5.00 is written by S. Roesler. *
28247************************************************************************
28248
28249 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28250 SAVE
28251 PARAMETER ( LINP = 10 ,
28252 & LOUT = 6 ,
28253 & LDAT = 9 )
28254
28255 CHARACTER*5 CCHTYP
28256
28257* event history
28258 PARAMETER (NMXHKK=200000)
28259 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28260 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28261 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28262* extended event history
28263 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28264 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28265 & IHIST(2,NMXHKK)
28266* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
28267 PARAMETER (MAXCHN=10000)
28268 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
28269
28270 DIMENSION ICHCFG(10,10,9,2),ICHTYP(5,5),
28271 & CCHTYP(9),ICHSTA(10),ITOT(10)
28272 DATA ICHCFG /1800*0/
28273 DATA (ICHTYP(1,K),K=1,5) / 0, 1, 3, 0, 0/
28274 DATA (ICHTYP(2,K),K=1,5) / 2, 0, 0, 5, 0/
28275 DATA (ICHTYP(3,K),K=1,5) / 4, 0, 0, 7, 0/
28276 DATA (ICHTYP(4,K),K=1,5) / 0, 6, 8, 0, 0/
28277 DATA (ICHTYP(5,K),K=1,5) / 0, 0, 0, 0, 9/
28278 DATA ICHSTA / 21, 22, 31, 32, 41, 42, 51, 52, 61, 62/
28279 DATA CCHTYP / ' q aq','aq q ',' q d ',' d q ','aq ad',
28280 & 'ad aq',' d ad','ad d ',' g g '/
28281*
28282* initialization
28283*
28284 IF (MODE.EQ.-1) THEN
28285 NCHAIN = 0
28286*
28287* loop over DTEVT1 and analyse chain configurations
28288*
28289 ELSEIF (MODE.EQ.0) THEN
28290 DO 21 IDX=NPOINT(3),NHKK
28291 IDCHK = IDHKK(IDX)/10000
28292 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28293 & (IDHKK(IDX).NE.80000).AND.
28294 & (ISTHKK(IDX).NE.2).AND.(IDRES(IDX).EQ.0)) THEN
28295 IF (JMOHKK(1,IDX).GT.JMOHKK(2,IDX)) THEN
28296 WRITE(LOUT,*) ' CHASTA: JMOHKK(1,x) > JMOHKK(2,x) ',
28297 & ' at entry ',IDX
28298 GOTO 21
28299 ENDIF
28300*
28301 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28302 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28303 IMO1 = IST1/10
28304 IMO1 = IST1-10*IMO1
28305 IMO2 = IST2/10
28306 IMO2 = IST2-10*IMO2
28307* swop parton entries if necessary since we need projectile partons
28308* to come first in the common
28309 IF (IMO1.GT.IMO2) THEN
28310 NPTN = JMOHKK(2,IDX)-JMOHKK(1,IDX)+1
28311 DO 22 K=1,NPTN/2
28312 I0 = JMOHKK(1,IDX)-1+K
28313 I1 = JMOHKK(2,IDX)+1-K
28314 ITMP = ISTHKK(I0)
28315 ISTHKK(I0) = ISTHKK(I1)
28316 ISTHKK(I1) = ITMP
28317 ITMP = IDHKK(I0)
28318 IDHKK(I0) = IDHKK(I1)
28319 IDHKK(I1) = ITMP
28320 IF (JDAHKK(1,JMOHKK(1,I0)).EQ.I0)
28321 & JDAHKK(1,JMOHKK(1,I0)) = I1
28322 IF (JDAHKK(2,JMOHKK(1,I0)).EQ.I0)
28323 & JDAHKK(2,JMOHKK(1,I0)) = I1
28324 IF (JDAHKK(1,JMOHKK(2,I0)).EQ.I0)
28325 & JDAHKK(1,JMOHKK(2,I0)) = I1
28326 IF (JDAHKK(2,JMOHKK(2,I0)).EQ.I0)
28327 & JDAHKK(2,JMOHKK(2,I0)) = I1
28328 IF (JDAHKK(1,JMOHKK(1,I1)).EQ.I1)
28329 & JDAHKK(1,JMOHKK(1,I1)) = I0
28330 IF (JDAHKK(2,JMOHKK(1,I1)).EQ.I1)
28331 & JDAHKK(2,JMOHKK(1,I1)) = I0
28332 IF (JDAHKK(1,JMOHKK(2,I1)).EQ.I1)
28333 & JDAHKK(1,JMOHKK(2,I1)) = I0
28334 IF (JDAHKK(2,JMOHKK(2,I1)).EQ.I1)
28335 & JDAHKK(2,JMOHKK(2,I1)) = I0
28336 ITMP = JMOHKK(1,I0)
28337 JMOHKK(1,I0) = JMOHKK(1,I1)
28338 JMOHKK(1,I1) = ITMP
28339 ITMP = JMOHKK(2,I0)
28340 JMOHKK(2,I0) = JMOHKK(2,I1)
28341 JMOHKK(2,I1) = ITMP
28342 ITMP = JDAHKK(1,I0)
28343 JDAHKK(1,I0) = JDAHKK(1,I1)
28344 JDAHKK(1,I1) = ITMP
28345 ITMP = JDAHKK(2,I0)
28346 JDAHKK(2,I0) = JDAHKK(2,I1)
28347 JDAHKK(2,I1) = ITMP
28348 DO 23 J=1,4
28349 RTMP1 = PHKK(J,I0)
28350 RTMP2 = VHKK(J,I0)
28351 RTMP3 = WHKK(J,I0)
28352 PHKK(J,I0) = PHKK(J,I1)
28353 VHKK(J,I0) = VHKK(J,I1)
28354 WHKK(J,I0) = WHKK(J,I1)
28355 PHKK(J,I1) = RTMP1
28356 VHKK(J,I1) = RTMP2
28357 WHKK(J,I1) = RTMP3
28358 23 CONTINUE
28359 RTMP1 = PHKK(5,I0)
28360 PHKK(5,I0) = PHKK(5,I1)
28361 PHKK(5,I1) = RTMP1
28362 ITMP = IDRES(I0)
28363 IDRES(I0) = IDRES(I1)
28364 IDRES(I1) = ITMP
28365 ITMP = IDXRES(I0)
28366 IDXRES(I0) = IDXRES(I1)
28367 IDXRES(I1) = ITMP
28368 ITMP = NOBAM(I0)
28369 NOBAM(I0) = NOBAM(I1)
28370 NOBAM(I1) = ITMP
28371 ITMP = IDBAM(I0)
28372 IDBAM(I0) = IDBAM(I1)
28373 IDBAM(I1) = ITMP
28374 ITMP = IDCH(I0)
28375 IDCH(I0) = IDCH(I1)
28376 IDCH(I1) = ITMP
28377 ITMP = IHIST(1,I0)
28378 IHIST(1,I0) = IHIST(1,I1)
28379 IHIST(1,I1) = ITMP
28380 ITMP = IHIST(2,I0)
28381 IHIST(2,I0) = IHIST(2,I1)
28382 IHIST(2,I1) = ITMP
28383 22 CONTINUE
28384 ENDIF
28385 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28386 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28387*
28388* parton 1 (projectile side)
28389 IF (IST1.EQ.21) THEN
28390 IDX1 = 1
28391 ELSEIF (IST1.EQ.22) THEN
28392 IDX1 = 2
28393 ELSEIF (IST1.EQ.31) THEN
28394 IDX1 = 3
28395 ELSEIF (IST1.EQ.32) THEN
28396 IDX1 = 4
28397 ELSEIF (IST1.EQ.41) THEN
28398 IDX1 = 5
28399 ELSEIF (IST1.EQ.42) THEN
28400 IDX1 = 6
28401 ELSEIF (IST1.EQ.51) THEN
28402 IDX1 = 7
28403 ELSEIF (IST1.EQ.52) THEN
28404 IDX1 = 8
28405 ELSEIF (IST1.EQ.61) THEN
28406 IDX1 = 9
28407 ELSEIF (IST1.EQ.62) THEN
28408 IDX1 = 10
28409 ELSE
28410c WRITE(LOUT,*)
28411c & ' CHASTA: unknown parton status flag (',
28412c & IST1,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28413 GOTO 21
28414 ENDIF
28415 ID = IDHKK(JMOHKK(1,IDX))
28416 IF (ABS(ID).LE.4) THEN
28417 IF (ID.GT.0) THEN
28418 ITYP1 = 1
28419 ELSE
28420 ITYP1 = 2
28421 ENDIF
28422 ELSEIF (ABS(ID).GE.1000) THEN
28423 IF (ID.GT.0) THEN
28424 ITYP1 = 3
28425 ELSE
28426 ITYP1 = 4
28427 ENDIF
28428 ELSEIF (ID.EQ.21) THEN
28429 ITYP1 = 5
28430 ELSE
28431 WRITE(LOUT,*)
28432 & ' CHASTA: inconsistent parton identity (',
28433 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28434 GOTO 21
28435 ENDIF
28436*
28437* parton 2 (target side)
28438 IF (IST2.EQ.21) THEN
28439 IDX2 = 1
28440 ELSEIF (IST2.EQ.22) THEN
28441 IDX2 = 2
28442 ELSEIF (IST2.EQ.31) THEN
28443 IDX2 = 3
28444 ELSEIF (IST2.EQ.32) THEN
28445 IDX2 = 4
28446 ELSEIF (IST2.EQ.41) THEN
28447 IDX2 = 5
28448 ELSEIF (IST2.EQ.42) THEN
28449 IDX2 = 6
28450 ELSEIF (IST2.EQ.51) THEN
28451 IDX2 = 7
28452 ELSEIF (IST2.EQ.52) THEN
28453 IDX2 = 8
28454 ELSEIF (IST2.EQ.61) THEN
28455 IDX2 = 9
28456 ELSEIF (IST2.EQ.62) THEN
28457 IDX2 = 10
28458 ELSE
28459c WRITE(LOUT,*)
28460c & ' CHASTA: unknown parton status flag (',
28461c & IST2,') at entry ',JMOHKK(2,IDX),'(',IDX,')'
28462 GOTO 21
28463 ENDIF
28464 ID = IDHKK(JMOHKK(2,IDX))
28465 IF (ABS(ID).LE.4) THEN
28466 IF (ID.GT.0) THEN
28467 ITYP2 = 1
28468 ELSE
28469 ITYP2 = 2
28470 ENDIF
28471 ELSEIF (ABS(ID).GE.1000) THEN
28472 IF (ID.GT.0) THEN
28473 ITYP2 = 3
28474 ELSE
28475 ITYP2 = 4
28476 ENDIF
28477 ELSEIF (ID.EQ.21) THEN
28478 ITYP2 = 5
28479 ELSE
28480 WRITE(LOUT,*)
28481 & ' CHASTA: inconsistent parton identity (',
28482 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28483 GOTO 21
28484 ENDIF
28485*
28486* fill counter
28487 ITYPE = ICHTYP(ITYP1,ITYP2)
28488 IF (ITYPE.NE.0) THEN
28489 ICHCFG(IDX1,IDX2,ITYPE,1) =ICHCFG(IDX1,IDX2,ITYPE,1)+1
28490 NGLUON = JMOHKK(2,IDX)-JMOHKK(1,IDX)-1
28491 ICHCFG(IDX1,IDX2,ITYPE,2) =
28492 & ICHCFG(IDX1,IDX2,ITYPE,2)+NGLUON
28493
28494 NCHAIN = NCHAIN+1
28495 IF (NCHAIN.GT.MAXCHN) THEN
28496 WRITE(LOUT,*) ' CHASTA: NCHAIN > MAXCHN ! ',
28497 & NCHAIN,MAXCHN
28498 STOP
28499 ENDIF
28500 IDXCHN(1,NCHAIN) = IDX
28501 IDXCHN(2,NCHAIN) = ITYPE
28502 ELSE
28503 WRITE(LOUT,*)
28504 & ' CHASTA: inconsistent chain at entry ',IDX
28505 GOTO 21
28506 ENDIF
28507 ENDIF
28508 21 CONTINUE
28509*
28510* write statistics to output unit
28511*
28512 ELSEIF (MODE.EQ.1) THEN
28513 WRITE(LOUT,'(/,A)') ' CHASTA: generated chain configurations'
28514 DO 31 I=1,10
28515 WRITE(LOUT,'(/,2A)')
28516 & ' -----------------------------------------',
28517 & '------------------------------------'
28518 WRITE(LOUT,'(2A)')
28519 & ' p\\t 21 22 31 32 41',
28520 & ' 42 51 52 61 62'
28521 WRITE(LOUT,'(2A)')
28522 & ' -----------------------------------------',
28523 & '------------------------------------'
28524 DO 32 J=1,10
28525 ITOT(J) = 0
28526 DO 33 K=1,9
28527 ITOT(J) = ITOT(J)+ICHCFG(I,J,K,1)
28528 33 CONTINUE
28529 32 CONTINUE
28530 WRITE(LOUT,'(1X,I2,5X,10I7,/)') ICHSTA(I),(ITOT(J),J=1,10)
28531 DO 34 K=1,9
28532 ISUM = 0
28533 DO 35 J=1,10
28534 ISUM = ISUM+ICHCFG(I,J,K,1)
28535 35 CONTINUE
28536 IF (ISUM.GT.0)
28537 & WRITE(LOUT,'(1X,A5,2X,10I7)')
28538 & CCHTYP(K),(ICHCFG(I,J,K,1),J=1,10)
28539 34 CONTINUE
28540C WRITE(LOUT,'(2A)')
28541C & ' -----------------------------------------',
28542C & '-------------------------------'
28543 31 CONTINUE
28544*
28545 ELSE
28546 WRITE(LOUT,*) ' CHASTA: MODE ',MODE,' not supported !'
28547 STOP
28548 ENDIF
28549
28550 RETURN
28551 END
28552*$ CREATE PHO_PHIST.FOR
28553*COPY PHO_PHIST
28554*
28555*===pohist=============================================================*
28556*
28557 SUBROUTINE PHO_PHIST(IMODE,WEIGHT)
28558
28559 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28560 SAVE
28561
28562 PARAMETER ( LINP = 10 ,
28563 & LOUT = 6 ,
28564 & LDAT = 9 )
28565 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
28566* Glauber formalism: cross sections
28567 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
28568 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
28569 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
28570 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
28571 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
28572 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
28573 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
28574 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
28575 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
28576 & BSLOPE,NEBINI,NQBINI
28577
28578 ILAB = 0
28579 IF (IMODE.EQ.10) THEN
28580 IMODE = 1
28581 ILAB = 1
28582 ENDIF
28583 IF (ABS(IMODE).LT.1000) THEN
28584* PHOJET-statistics
28585C CALL POHISX(IMODE,WEIGHT)
28586 IF (IMODE.EQ.-1) THEN
28587 MODE = 1
28588 XSTOT(1,1,1) = WEIGHT
28589 ENDIF
28590 IF (IMODE.EQ. 1) MODE = 2
28591 IF (IMODE.EQ.-2) MODE = 3
28592 IF (MODE.EQ.2) CALL DT_SWPPHO(ILAB)
28593C IF (MODE.EQ.3) WRITE(LOUT,*)
28594C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28595 CALL DT_HISTOG(MODE)
28596 CALL DT_USRHIS(MODE)
28597 ELSE
28598* DTUNUC-statistics
28599 MODE = IMODE/1000
28600C IF (MODE.EQ.3) WRITE(LOUT,*)
28601C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28602 CALL DT_HISTOG(MODE)
28603 CALL DT_USRHIS(MODE)
28604 ENDIF
28605
28606 RETURN
28607 END
28608
28609*$ CREATE DT_SWPPHO.FOR
28610*COPY DT_SWPPHO
28611*
28612*===swppho=============================================================*
28613*
28614 SUBROUTINE DT_SWPPHO(ILAB)
28615
28616 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28617 SAVE
28618 PARAMETER ( LINP = 10 ,
28619 & LOUT = 6 ,
28620 & LDAT = 9 )
28621 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28622
28623 LOGICAL LSTART
28624
28625* event history
28626 PARAMETER (NMXHKK=200000)
28627 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28628 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28629 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28630* extended event history
28631 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28632 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28633 & IHIST(2,NMXHKK)
28634* flags for input different options
28635 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28636 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28637 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28638* properties of photon/lepton projectiles
28639 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
28640
28641**PHOJET105a
28642C PARAMETER (NMXHEP=2000)
28643C COMMON/HEPEVS/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28644C &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
28645C COMMON /GLOCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28646C COMMON /PLASAV/ PLAB
28647**PHOJET110
28648C standard particle data interface
28649 INTEGER NMXHEP
28650 PARAMETER (NMXHEP=4000)
28651 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
28652 DOUBLE PRECISION PHEP,VHEP
28653 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28654 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
28655 & VHEP(4,NMXHEP)
28656C extension to standard particle data interface (PHOJET specific)
28657 INTEGER IMPART,IPHIST,ICOLOR
28658 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
28659C global event kinematics and particle IDs
28660 INTEGER IFPAP,IFPAB
28661 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
28662 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28663**
28664 DATA ICOUNT/0/
28665
28666 DATA LSTART /.TRUE./
28667
28668C IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0).AND.LSTART) THEN
28669 IF ((IFRAME.EQ.1).AND.LSTART) THEN
28670 UMO = ECM
28671 ELA = ZERO
28672 PLA = ZERO
28673 IDP = IDT_ICIHAD(IFPAP(1))
28674 IDT = IDT_ICIHAD(IFPAP(2))
28675 VIRT = PVIRT(1)
28676 CALL DT_LTINI(IDP,IDT,ELA,PLA,UMO,0)
28677 PLAB = PLA
28678 LSTART = .FALSE.
28679 ENDIF
28680
28681 NHKK = 0
28682 ICOUNT = ICOUNT+1
28683C NEVHKK = NEVHEP
28684 NEVHKK = ICOUNT
28685 IF (MOD(ICOUNT,500).EQ.0) WRITE(LOUT,*)' SWPPHO: event # ',ICOUNT
28686 DO 1 I=3,NHEP
28687 IF (ISTHEP(I).EQ.1) THEN
28688 NHKK = NHKK+1
28689 ISTHKK(NHKK) = 1
28690 IDHKK(NHKK) = IDHEP(I)
28691 JMOHKK(1,NHKK) = 0
28692 JMOHKK(2,NHKK) = 0
28693 JDAHKK(1,NHKK) = 0
28694 JDAHKK(2,NHKK) = 0
28695 DO 2 K=1,4
28696 PHKK(K,NHKK) = PHEP(K,I)
28697 VHKK(K,NHKK) = ZERO
28698 WHKK(K,NHKK) = ZERO
28699 2 CONTINUE
28700 IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0))
28701 & CALL DT_LTNUC(PHEP(3,I),PHEP(4,I),
28702 & PHKK(3,NHKK),PHKK(4,NHKK),-3)
28703 PHKK(5,NHKK) = PHEP(5,I)
28704 IDRES(NHKK) = 0
28705 IDXRES(NHKK) = 0
28706 NOBAM(NHKK) = 0
28707 IDBAM(NHKK) = IDT_ICIHAD(IDHEP(I))
28708 IDCH(NHKK) = 0
28709 ENDIF
28710 1 CONTINUE
28711
28712 RETURN
28713 END
28714
28715*$ CREATE DT_HISTOG.FOR
28716*COPY DT_HISTOG
28717*
28718*===histog=============================================================*
28719*
28720 SUBROUTINE DT_HISTOG(MODE)
28721
28722************************************************************************
28723* This version dated 25.03.96 is written by S. Roesler *
28724************************************************************************
28725
28726 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28727 SAVE
28728 PARAMETER ( LINP = 10 ,
28729 & LOUT = 6 ,
28730 & LDAT = 9 )
28731
28732 LOGICAL LFSP,LRNL
28733
28734* event history
28735 PARAMETER (NMXHKK=200000)
28736 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28737 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28738 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28739* extended event history
28740 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28741 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28742 & IHIST(2,NMXHKK)
28743* event flag used for histograms
28744 COMMON /DTNORM/ ICEVT,IEVHKK
28745* flags for activated histograms
28746 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
28747
28748 IEVHKK = NEVHKK
28749 GOTO (1,2,3) MODE
28750
28751*------------------------------------------------------------------
28752* initialization
28753 1 CONTINUE
28754 ICEVT = 0
28755 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,1)
28756 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(1)
28757
28758 RETURN
28759*------------------------------------------------------------------
28760* filling of histogram with event-record
28761 2 CONTINUE
28762 ICEVT = ICEVT+1
28763
28764 DO 20 I=1,NHKK
28765 CALL DT_SWPFSP(I,LFSP,LRNL)
28766 IF (LFSP) THEN
28767 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,2)
28768 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(2)
28769 ENDIF
28770 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,5)
28771 20 CONTINUE
28772 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,4)
28773
28774 RETURN
28775*------------------------------------------------------------------
28776* output
28777 3 CONTINUE
28778 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,3)
28779 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(3)
28780
28781 RETURN
28782 END
28783
28784*$ CREATE DT_SWPFSP.FOR
28785*COPY DT_SWPFSP
28786*
28787*===swpfsp=============================================================*
28788*
28789 SUBROUTINE DT_SWPFSP(IDX,LFSP,LRNL)
28790
28791 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28792 SAVE
28793 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28794 PARAMETER (TWOPI=6.283185307179586476925286766559D+00,
28795 & PI =TWOPI/TWO,
28796 & BOG =TWOPI/360.0D0)
28797
28798* event history
28799 PARAMETER (NMXHKK=200000)
28800 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28801 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28802 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28803* extended event history
28804 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28805 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28806 & IHIST(2,NMXHKK)
28807* particle properties (BAMJET index convention)
28808 CHARACTER*8 ANAME
28809 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28810 & IICH(210),IIBAR(210),K1(210),K2(210)
28811* Lorentz-parameters of the current interaction
28812 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28813 & UMO,PPCM,EPROJ,PPROJ
28814* flags for input different options
28815 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28816 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28817 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28818* (original name: PAREVT)
28819 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
28820 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
28821 PARAMETER ( NALLWP = 39 )
28822 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
28823 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
28824 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
28825 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
28826* temporary storage for one final state particle
28827 LOGICAL LFRAG,LGREY,LBLACK
28828 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
28829 & SINTHE,COSTHE,THETA,THECMS,
28830 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
28831 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
28832 & LFRAG,LGREY,LBLACK
28833
28834 LOGICAL LFSP,LRNL
28835
28836 LFSP = .FALSE.
28837 LRNL = .FALSE.
28838 ISTRNL = 1000
28839 MULDEF = 1
28840 IF (LEVPRT) ISTRNL = 1001
28841
28842 IF (ABS(ISTHKK(IDX)).EQ.1) THEN
28843 IST = ISTHKK(IDX)
28844 IDPDG = IDHKK(IDX)
28845 LFRAG = .FALSE.
28846 IF (IDHKK(IDX).LT.80000) THEN
28847 IDBJT = IDBAM(IDX)
28848 IBARY = IIBAR(IDBJT)
28849 ICHAR = IICH(IDBJT)
28850 AMASS = AAM(IDBJT)
28851 ELSEIF (IDHKK(IDX).EQ.80000) THEN
28852 IDBJT = 0
28853 IBARY = IDRES(IDX)
28854 ICHAR = IDXRES(IDX)
28855 AMASS = PHKK(5,IDX)
28856 INUT = IBARY-ICHAR
28857 IF ((ICHAR.EQ.1).AND.(INUT.EQ.1)) IDBJT = 116
28858 IF ((ICHAR.EQ.1).AND.(INUT.EQ.2)) IDBJT = 117
28859 IF ((ICHAR.EQ.2).AND.(INUT.EQ.1)) IDBJT = 118
28860 IF ((ICHAR.EQ.2).AND.(INUT.EQ.2)) IDBJT = 119
28861 IF (IDBJT.EQ.0) LFRAG = .TRUE.
28862 ELSE
28863 GOTO 9999
28864 ENDIF
28865 PE = PHKK(4,IDX)
28866 PX = PHKK(1,IDX)
28867 PY = PHKK(2,IDX)
28868 PZ = PHKK(3,IDX)
28869 PT2 = PX**2+PY**2
28870 PT = SQRT(PT2)
28871 PTOT = SQRT(PT2+PZ**2)
28872 SINTHE = PT/MAX(PTOT,TINY14)
28873 COSTHE = PZ/MAX(PTOT,TINY14)
28874 IF (COSTHE.GT.ONE) THEN
28875 THETA = ZERO
28876 ELSEIF (COSTHE.LT.-ONE) THEN
28877 THETA = TWOPI/2.0D0
28878 ELSE
28879 THETA = ACOS(COSTHE)
28880 ENDIF
28881 EKIN = PE-AMASS
28882**sr 15.4.96 new E_t-definition
28883 IF (IBARY.GT.0) THEN
28884 ET = EKIN*SINTHE
28885 ELSEIF (IBARY.LT.0) THEN
28886 ET = (EKIN+TWO*AMASS)*SINTHE
28887 ELSE
28888 ET = PE*SINTHE
28889 ENDIF
28890**
28891 XLAB = PZ/MAX(PPROJ,TINY14)
28892C XLAB = PE/MAX(EPROJ,TINY14)
28893 BETA = SQRT(ABS( (ONE-AMASS/MAX(PE,TINY14))
28894 & *(ONE+AMASS/MAX(PE,TINY14)) ))
28895 PPLUS = PE+PZ
28896 PMINUS = PE-PZ
28897 IF (PMINUS.GT.TINY14) THEN
28898 YY = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28899 ELSE
28900 YY = 100.0D0
28901 ENDIF
28902 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
28903 ETA = -LOG(TAN(THETA/TWO))
28904 ELSE
28905 ETA = 100.0D0
28906 ENDIF
28907 IF (IFRAME.EQ.1) THEN
28908 CALL DT_LTNUC(PZ,PE,PZCMS,EECMS,3)
28909 PPLUS = EECMS+PZCMS
28910 PMINUS = EECMS-PZCMS
28911 IF ((PPLUS*PMINUS).GT.TINY14) THEN
28912 YYCMS = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28913 ELSE
28914 YYCMS = 100.0D0
28915 ENDIF
28916 PTOTCM = SQRT(PT2+PZCMS**2)
28917 COSTH = PZCMS/MAX(PTOTCM,TINY14)
28918 IF (COSTH.GT.ONE) THEN
28919 THECMS = ZERO
28920 ELSEIF (COSTH.LT.-ONE) THEN
28921 THECMS = TWOPI/2.0D0
28922 ELSE
28923 THECMS = ACOS(COSTH)
28924 ENDIF
28925 IF ((THECMS.GT.TINY14).AND.((PI-THECMS).GT.TINY14)) THEN
28926 ETACMS = -LOG(TAN(THECMS/TWO))
28927 ELSE
28928 ETACMS = 100.0D0
28929 ENDIF
28930 XF = PZCMS/MAX(PPCM,TINY14)
28931 THECMS = THECMS/BOG
28932 ELSE
28933 PZCMS = PZ
28934 EECMS = PE
28935 YYCMS = YY
28936 ETACMS = ETA
28937 XF = XLAB
28938 THECMS = THETA/BOG
28939 ENDIF
28940 THETA = THETA/BOG
28941
28942* set flag for "grey/black"
28943 LGREY = .FALSE.
28944 LBLACK = .FALSE.
28945 EK = EKIN
28946 IF (IDHKK(IDX).EQ.80000) EK = EKIN/DBLE(IBARY)
28947 IF (MULDEF.EQ.1) THEN
28948* EMU01-Def.
28949 IF ( ( (IDBJT.EQ. 1).AND.(EK.GT. 26.0D-3).AND.
28950 & (EK.LE.375.0D-3) ).OR.
28951 & ( (IDBJT.EQ.13).AND.(EK.GT. 12.0D-3).AND.
28952 & (EK.LE. 56.0D-3) ).OR.
28953 & ( (IDBJT.EQ.14).AND.(EK.GT. 12.0D-3).AND.
28954 & (EK.LE. 56.0D-3) ).OR.
28955 & ( (IDBJT.EQ.15).AND.(EK.GT. 20.0D-3).AND.
28956 & (EK.LE.198.0D-3) ).OR.
28957 & ( (IDBJT.EQ.16).AND.(EK.GT. 20.0D-3).AND.
28958 & (EK.LE.198.0D-3) ).OR.
28959 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28960 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28961 & (IDBJT.NE.16).AND.
28962 & (BETA.GT.0.23D0).AND.(BETA.LE.0.70D0) ) )
28963 & LGREY = .TRUE.
28964 IF ( ( (IDBJT.EQ. 1).AND.(EK.LE. 26.0D-3) ).OR.
28965 & ( (IDBJT.EQ.13).AND.(EK.LE. 12.0D-3) ).OR.
28966 & ( (IDBJT.EQ.14).AND.(EK.LE. 12.0D-3) ).OR.
28967 & ( (IDBJT.EQ.15).AND.(EK.LE. 20.0D-3) ).OR.
28968 & ( (IDBJT.EQ.16).AND.(EK.LE. 20.0D-3) ).OR.
28969 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28970 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28971 & (IDBJT.NE.16).AND.(BETA.LE.0.23D0) ) )
28972 & LBLACK = .TRUE.
28973 ELSE
28974* common Def.
28975 IF ((BETA.GT.0.23D0).AND.(BETA.LE.0.70D0)) LGREY=.TRUE.
28976 IF (BETA.LE.0.23D0) LBLACK=.TRUE.
28977 ENDIF
28978 LFSP = .TRUE.
28979 ELSEIF (ABS(ISTHKK(IDX)).EQ.ISTRNL) THEN
28980 IST = ISTHKK(IDX)
28981 IDPDG = IDHKK(IDX)
28982 LFRAG = .TRUE.
28983 IDBJT = 0
28984 IBARY = IDRES(IDX)
28985 ICHAR = IDXRES(IDX)
28986 AMASS = PHKK(5,IDX)
28987 PE = PHKK(4,IDX)
28988 PX = PHKK(1,IDX)
28989 PY = PHKK(2,IDX)
28990 PZ = PHKK(3,IDX)
28991 PT2 = PX**2+PY**2
28992 PT = SQRT(PT2)
28993 PTOT = SQRT(PT2+PZ**2)
28994 SINTHE = PT/MAX(PTOT,TINY14)
28995 COSTHE = PZ/MAX(PTOT,TINY14)
28996 IF (COSTHE.GT.ONE) THEN
28997 THETA = ZERO
28998 ELSEIF (COSTHE.LT.-ONE) THEN
28999 THETA = TWOPI/2.0D0
29000 ELSE
29001 THETA = ACOS(COSTHE)
29002 ENDIF
29003 EKIN = PE-AMASS
29004**sr 15.4.96 new E_t-definition
29005C ET = PE*SINTHE
29006 ET = EKIN*SINTHE
29007**
29008 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
29009 ETA = -LOG(TAN(THETA/TWO))
29010 ELSE
29011 ETA = 100.0D0
29012 ENDIF
29013 THETA = THETA/BOG
29014 LRNL = .TRUE.
29015 ENDIF
29016
29017 9999 CONTINUE
29018 RETURN
29019 END
29020
29021*$ CREATE DT_HIMULT.FOR
29022*COPY DT_HIMULT
29023*
29024*===himult=============================================================*
29025*
29026 SUBROUTINE DT_HIMULT(MODE)
29027
29028************************************************************************
29029* Tables of average energies/multiplicities. *
29030* This version dated 30.08.2000 is written by S. Roesler *
29031************************************************************************
29032
29033 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29034 SAVE
29035 PARAMETER ( LINP = 10 ,
29036 & LOUT = 6 ,
29037 & LDAT = 9 )
29038 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29039
29040 PARAMETER (SWMEXP=1.7D0)
29041
29042 CHARACTER*8 ANAMEH(4)
29043
29044* particle properties (BAMJET index convention)
29045 CHARACTER*8 ANAME
29046 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29047 & IICH(210),IIBAR(210),K1(210),K2(210)
29048* temporary storage for one final state particle
29049 LOGICAL LFRAG,LGREY,LBLACK
29050 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29051 & SINTHE,COSTHE,THETA,THECMS,
29052 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29053 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29054 & LFRAG,LGREY,LBLACK
29055* event flag used for histograms
29056 COMMON /DTNORM/ ICEVT,IEVHKK
29057* Lorentz-parameters of the current interaction
29058 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
29059 & UMO,PPCM,EPROJ,PPROJ
29060
29061 PARAMETER (NOPART=210)
29062 DIMENSION AVMULT(4,NOPART),AVE(4,NOPART),AVSWM(4,NOPART),
29063 & AVPT(4,NOPART),IAVPT(4,NOPART)
29064 DATA ANAMEH /'DEUTERON','3-H ','3-HE ','4-HE '/
29065
29066 GOTO (1,2,3) MODE
29067
29068*------------------------------------------------------------------
29069* initialization
29070 1 CONTINUE
29071 DO 10 I=1,NOPART
29072 DO 11 J=1,4
29073 AVMULT(J,I) = ZERO
29074 AVE(J,I) = ZERO
29075 AVSWM(J,I) = ZERO
29076 AVPT(J,I) = ZERO
29077 IAVPT(J,I) = 0
29078 11 CONTINUE
29079 10 CONTINUE
29080
29081 RETURN
29082
29083*------------------------------------------------------------------
29084* filling of histogram with event-record
29085 2 CONTINUE
29086 IF (PE.LT.0.0D0) THEN
29087 WRITE(LOUT,*) ' HIMULT: PE < 0 ! ',PE
29088 RETURN
29089 ENDIF
29090 IF (.NOT.LFRAG) THEN
29091 IVEL = 2
29092 IF (LGREY) IVEL = 3
29093 IF (LBLACK) IVEL = 4
29094 AVE(1,IDBJT) = AVE(1,IDBJT) +PE
29095 AVE(IVEL,IDBJT) = AVE(IVEL,IDBJT)+PE
29096 AVPT(1,IDBJT) = AVPT(1,IDBJT) +PT
29097 AVPT(IVEL,IDBJT) = AVPT(IVEL,IDBJT)+PT
29098 IAVPT(1,IDBJT) = IAVPT(1,IDBJT) +1
29099 IAVPT(IVEL,IDBJT) = IAVPT(IVEL,IDBJT)+1
29100 AVSWM(1,IDBJT) = AVSWM(1,IDBJT) +PE**SWMEXP
29101 AVSWM(IVEL,IDBJT) = AVSWM(IVEL,IDBJT)+PE**SWMEXP
29102 AVMULT(1,IDBJT) = AVMULT(1,IDBJT) +ONE
29103 AVMULT(IVEL,IDBJT) = AVMULT(IVEL,IDBJT)+ONE
29104 IF (IDBJT.LT.116) THEN
29105* total energy, multiplicity
29106 AVE(1,30) = AVE(1,30) +PE
29107 AVE(IVEL,30) = AVE(IVEL,30)+PE
29108 AVPT(1,30) = AVPT(1,30) +PT
29109 AVPT(IVEL,30) = AVPT(IVEL,30)+PT
29110 IAVPT(1,30) = IAVPT(1,30) +1
29111 IAVPT(IVEL,30) = IAVPT(IVEL,30)+1
29112 AVSWM(1,30) = AVSWM(1,30)+PE**SWMEXP
29113 AVSWM(IVEL,30) = AVSWM(IVEL,30)+PE**SWMEXP
29114 AVMULT(1,30) = AVMULT(1,30) +ONE
29115 AVMULT(IVEL,30) = AVMULT(IVEL,30)+ONE
29116* charged energy, multiplicity
29117 IF (ICHAR.LT.0) THEN
29118 AVE(1,26) = AVE(1,26) +PE
29119 AVE(IVEL,26) = AVE(IVEL,26)+PE
29120 AVPT(1,26) = AVPT(1,26) +PT
29121 AVPT(IVEL,26) = AVPT(IVEL,26)+PT
29122 IAVPT(1,26) = IAVPT(1,26) +1
29123 IAVPT(IVEL,26) = IAVPT(IVEL,26)+1
29124 AVSWM(1,26) = AVSWM(1,26) +PE**SWMEXP
29125 AVSWM(IVEL,26) = AVSWM(IVEL,26)+PE**SWMEXP
29126 AVMULT(1,26) = AVMULT(1,26) +ONE
29127 AVMULT(IVEL,26) = AVMULT(IVEL,26)+ONE
29128 ENDIF
29129 IF (ICHAR.NE.0) THEN
29130 AVE(1,27) = AVE(1,27) +PE
29131 AVE(IVEL,27) = AVE(IVEL,27)+PE
29132 AVPT(1,27) = AVPT(1,27) +PT
29133 AVPT(IVEL,27) = AVPT(IVEL,27)+PT
29134 IAVPT(1,27) = IAVPT(1,27) +1
29135 IAVPT(IVEL,27) = IAVPT(IVEL,27)+1
29136 AVSWM(1,27) = AVSWM(1,27) +PE**SWMEXP
29137 AVSWM(IVEL,27) = AVSWM(IVEL,27)+PE**SWMEXP
29138 AVMULT(1,27) = AVMULT(1,27) +ONE
29139 AVMULT(IVEL,27) = AVMULT(IVEL,27)+ONE
29140 ENDIF
29141 ENDIF
29142 ENDIF
29143
29144 RETURN
29145
29146*------------------------------------------------------------------
29147* output
29148 3 CONTINUE
29149 WRITE(LOUT,3000)
29150 3000 FORMAT(/,1X,'HIMULT:',21X,'particle - statistics',/,
29151 & 29X,'---------------------',/)
29152 IF (MULDEF.EQ.1) THEN
29153 WRITE(LOUT,'(1X,A,/)') 'fast/grey/black: EMU-def.'
29154 ELSE
29155 BETGRE = 0.7D0
29156 BETBLC = 0.23D0
29157 WRITE(LOUT,3002) BETGRE,BETGRE,BETBLC,BETBLC
29158 3002 FORMAT(1X,'fast: beta > ',F4.2,' grey: ',F4.2,' > beta > '
29159 & ,F4.2,' black: beta < ',F4.2,/)
29160 ENDIF
29161 WRITE(LOUT,3003) SWMEXP
29162 3003 FORMAT(1X,'particle |',12X,'average multiplicity',/,
29163 & 13X,'| total fast',
29164C & ' grey black K f(',F3.1,')',/,1X,
29165 & ' grey black <pt> f(',F3.1,')',/,1X,
29166 & '------------+--------------',
29167 & '-------------------------------------------------')
29168 DO 30 I=1,NOPART
29169 DO 31 J=1,4
29170 AVMULT(J,I) = AVMULT(J,I)/DBLE(MAX(ICEVT,1))
29171 AVE(J,I) = AVE(J,I)/DBLE(MAX(ICEVT,1))/EPROJ
29172 AVPT(J,I) = AVPT(J,I)/DBLE(MAX(IAVPT(J,I),1))
29173 AVSWM(J,I) = AVSWM(J,I)/DBLE(MAX(ICEVT,1))/EPROJ**SWMEXP
29174 31 CONTINUE
29175 IF (I.LE.115) THEN
29176 WRITE(LOUT,3004) ANAME(I),I,
29177 & AVMULT(1,I),AVMULT(2,I),
29178 & AVMULT(3,I),AVMULT(4,I),
29179C & AVE(1,I),AVSWM(1,I)
29180 & AVPT(1,I),AVSWM(1,I)
29181 ELSEIF (I.LE.119) THEN
29182 WRITE(LOUT,3004) ANAMEH(I-115),I,
29183 & AVMULT(1,I),AVMULT(2,I),
29184 & AVMULT(3,I),AVMULT(4,I),
29185C & AVE(1,I),AVSWM(1,I)
29186 & AVPT(1,I),AVSWM(1,I)
29187 ENDIF
29188 3004 FORMAT(1X,A8,I4,'| ',2F13.6,2F9.5,2F9.5)
29189 30 CONTINUE
29190**temporary
29191C WRITE(LOUT,'(A,F7.3)') ' number of charged heavy particles: ',
29192C & AVMULT(3,27)+AVMULT(4,27)
29193**
29194
29195 RETURN
29196 END
29197
29198*$ CREATE DT_HISTAT.FOR
29199*COPY DT_HISTAT
29200*
29201*===histat=============================================================*
29202*
29203 SUBROUTINE DT_HISTAT(IDX,MODE)
29204
29205************************************************************************
29206* This version dated 26.02.96 is written by S. Roesler *
29207* *
29208* Last change 27.12.2006 by S. Roesler. *
29209************************************************************************
29210
29211 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29212 SAVE
29213 PARAMETER ( LINP = 10 ,
29214 & LOUT = 6 ,
29215 & LDAT = 9 )
29216 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29217 PARAMETER (NDIM=199)
29218
29219* event history
29220 PARAMETER (NMXHKK=200000)
29221 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
29222 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
29223 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
29224* extended event history
29225 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
29226 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
29227 & IHIST(2,NMXHKK)
29228* particle properties (BAMJET index convention)
29229 CHARACTER*8 ANAME
29230 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29231 & IICH(210),IIBAR(210),K1(210),K2(210)
29232 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
29233* Glauber formalism: cross sections
29234 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
29235 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
29236 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
29237 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
29238 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
29239 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
29240 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
29241 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
29242 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
29243 & BSLOPE,NEBINI,NQBINI
29244* emulsion treatment
29245 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
29246 & NCOMPO,IEMUL
29247* properties of interacting particles
29248 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
29249* rejection counter
29250 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
29251 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
29252 & IREXCI(3),IRDIFF(2),IRINC
29253* statistics: residual nuclei
29254 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
29255 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
29256 & NINCST(2,4),NINCEV(2),
29257 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
29258 & NRESPB(2),NRESCH(2),NRESEV(4),
29259 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
29260 & NEVAFI(2,2)
29261* parameter for intranuclear cascade
29262 LOGICAL LPAULI
29263 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
29264* (original name: PAREVT)
29265 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
29266 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
29267 PARAMETER ( NALLWP = 39 )
29268 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
29269 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
29270 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
29271 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
29272* (original name: FRBKCM)
29273 PARAMETER ( MXFFBK = 6 )
29274 PARAMETER ( MXZFBK = 9 )
29275 PARAMETER ( MXNFBK = 10 )
29276 PARAMETER ( MXAFBK = 16 )
29277 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
29278 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
29279 PARAMETER ( NXAFBK = MXAFBK + 1 )
29280 PARAMETER ( MXPSST = 300 )
29281 PARAMETER ( MXPSFB = 41000 )
29282 LOGICAL LFRMBK, LNCMSS
29283 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
29284 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
29285 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
29286 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
29287 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
29288 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
29289 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
29290 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
29291 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
29292* (original name: INPFLG)
29293 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
29294* temporary storage for one final state particle
29295 LOGICAL LFRAG,LGREY,LBLACK
29296 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29297 & SINTHE,COSTHE,THETA,THECMS,
29298 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29299 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29300 & LFRAG,LGREY,LBLACK
29301* event flag used for histograms
29302 COMMON /DTNORM/ ICEVT,IEVHKK
29303* statistics: double-Pomeron exchange
29304 COMMON /DTFLG2/ INTFLG,IPOPO
29305
29306 DIMENSION EMUSAM(NCOMPX)
29307
29308 CHARACTER*13 CMSG(3)
29309 DATA CMSG /'not requested','not requested','not requested'/
29310
29311 GOTO (1,2,3,4,5) MODE
29312
29313*------------------------------------------------------------------
29314* initialization
29315 1 CONTINUE
29316* emulsion treatment
29317 IF (NCOMPO.GT.0) THEN
29318 DO 10 I=1,NCOMPX
29319 EMUSAM(I) = ZERO
29320 10 CONTINUE
29321 ENDIF
29322* common /DTSTA2/, statistics on i.n.c., residual nuclei, evap.
29323 NINCGE = 0
29324 DO 11 I=1,2
29325 EXCDPM(I) = ZERO
29326 EXCDPM(I+2) = ZERO
29327 EXCEVA(I) = ZERO
29328 NINCWO(I) = 0
29329 NINCEV(I) = 0
29330 NRESTO(I) = 0
29331 NRESPR(I) = 0
29332 NRESNU(I) = 0
29333 NRESBA(I) = 0
29334 NRESPB(I) = 0
29335 NRESCH(I) = 0
29336 NRESEV(I) = 0
29337 NRESEV(I+2) = 0
29338 NEVAGA(I) = 0
29339 NEVAHT(I) = 0
29340 NEVAFI(1,I) = 0
29341 NEVAFI(2,I) = 0
29342 DO 12 J=1,6
29343 IF (J.LE.2) NINCHR(I,J) = 0
29344 IF (J.LE.3) NINCCO(I,J) = 0
29345 IF (J.LE.4) NINCST(I,J) = 0
29346 NEVA(I,J) = 0
29347 12 CONTINUE
29348 DO 13 J=1,210
29349 NEVAHY(1,I,J) = 0
29350 NEVAHY(2,I,J) = 0
29351 13 CONTINUE
29352 11 CONTINUE
29353 MAXGEN = 0
29354**dble Po statistics.
29355 KPOPO = 0
29356
29357 RETURN
29358*------------------------------------------------------------------
29359* filling of histogram with event-record
29360 2 CONTINUE
29361 IF (IST.EQ.-1) THEN
29362 IF (.NOT.LFRAG) THEN
29363 IF (IDPDG.EQ.2212) THEN
29364 NEVA(NOBAM(IDX),1) = NEVA(NOBAM(IDX),1)+1
29365 ELSEIF (IDPDG.EQ.2112) THEN
29366 NEVA(NOBAM(IDX),2) = NEVA(NOBAM(IDX),2)+1
29367 ELSEIF (IDPDG.EQ.22) THEN
29368 NEVAGA(NOBAM(IDX)) = NEVAGA(NOBAM(IDX))+1
29369 ELSEIF (IDPDG.EQ.80000) THEN
29370 IF (IDBJT.EQ.116) THEN
29371 NEVA(NOBAM(IDX),3) = NEVA(NOBAM(IDX),3)+1
29372 ELSEIF (IDBJT.EQ.117) THEN
29373 NEVA(NOBAM(IDX),4) = NEVA(NOBAM(IDX),4)+1
29374 ELSEIF (IDBJT.EQ.118) THEN
29375 NEVA(NOBAM(IDX),5) = NEVA(NOBAM(IDX),5)+1
29376 ELSEIF (IDBJT.EQ.119) THEN
29377 NEVA(NOBAM(IDX),6) = NEVA(NOBAM(IDX),6)+1
29378 ENDIF
29379 ENDIF
29380 ELSE
29381* heavy fragments (here: fission products only)
29382 NEVAHY(NOBAM(IDX),1,IBARY) = NEVAHY(NOBAM(IDX),1,IBARY)+1
29383 NEVAHY(NOBAM(IDX),2,ICHAR) = NEVAHY(NOBAM(IDX),2,ICHAR)+1
29384 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29385 ENDIF
29386 ELSEIF ((IST.EQ.1).AND.(.NOT.LFRAG)) THEN
29387 IF (IDCH(IDX).GT.MAXGEN) MAXGEN = IDCH(IDX)
29388 ENDIF
29389
29390 RETURN
29391*------------------------------------------------------------------
29392* output
29393 3 CONTINUE
29394
29395**dble Po statistics.
29396C WRITE(LOUT,'(1X,A,2I7,2E12.4)')
29397C & '# evts. / # dble-Po. evts / s_in / s_popo :',
29398C & ICEVT,KPOPO,XSPRO(1,1,1),XSPRO(1,1,1)*DBLE(KPOPO)/DBLE(ICEVT)
29399
29400* emulsion treatment
29401 IF (NCOMPO.GT.0) THEN
29402 WRITE(LOUT,3000)
29403 3000 FORMAT(/,1X,'HISTAT:',14X,'statistics - target emulsion',/,
29404 & 22X,'----------------------------',/,/,19X,
29405 & 'mass charge fraction',/,39X,
29406 & 'input treated',/)
29407 DO 30 I=1,NCOMPO
29408 WRITE(LOUT,3013) I,IEMUMA(I),IEMUCH(I),EMUFRA(I),
29409 & EMUSAM(I)/DBLE(ICEVT)
29410 3013 FORMAT(12X,I2,1X,2I8,6X,F7.3,5X,F7.3)
29411 30 CONTINUE
29412 ENDIF
29413
29414* i.n.c. statistics: output
29415 WRITE(LOUT,3001) ICEVT,NRESEV(2),IRINC
29416 3001 FORMAT(/,1X,'HISTAT:',14X,'statistics - intranuclear cascade',/,
29417 & 22X,'---------------------------------',/,/,1X,
29418 & 'no. of events for normalization: (accepted final events,',
29419 & ' evt)',4X,I6,/,34X,'(events before evap.-step, evt1)',I6,
29420 & /,1X,'no. of rejected events due to intranuclear',
29421 & ' cascade',15X,I6,/)
29422 ICEV = MAX(ICEVT,1)
29423 ICEV1 = ICEV
29424 IF (LEVPRT) ICEV1 = MAX(NRESEV(2),1)
29425 WRITE(LOUT,3002)
29426 & (DBLE(NINCWO(I))/DBLE(ICEV),I=1,2),
29427 & ((DBLE(NINCST(I,J))/DBLE(ICEV),I=1,2),J=1,4),
29428 & KTAUGE,DBLE(NINCGE)/DBLE(ICEV),
29429 & (DBLE(NINCCO(I,1)+NINCCO(I,2)+NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29430 & (DBLE(NINCCO(I,2))/DBLE(ICEV1),I=1,2),
29431 & (DBLE(NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29432 & (DBLE(NINCCO(I,1))/DBLE(ICEV1),I=1,2)
29433 3002 FORMAT(1X,'no. of wounded nucl. in proj./ target (mean per evt)',
29434 & 5X,F6.2,' /',F6.2,/,1X,'no. of particles unable to escape',
29435 & ' proj./ target (mean per evt)',/,8X,'baryons: pos. ',
29436 & F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,/,8X,
29437 & 'mesons: pos. ',F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,
29438 & /,1X,'maximum no. of generations treated (maximum allowed:'
29439 & ,I4,')',/,43X,'(mean per evt)',5X,F6.2,/,1X,'no. of sec.',
29440 & ' interactions in proj./ target (mean per evt1)',
29441 & F7.3,' /',F7.3,/,8X,'out of which by inelastic',
29442 & ' interactions',12X,F7.3,' /',F7.3,/,21X,'by elastic ',
29443 & 'interactions',14X,F7.3,' /',F7.3,/,21X,'by absorption ',
29444 & '(ap, K-, pi- only) ',F7.3,' /',F7.3,/)
29445 WRITE(LOUT,3003) NRESEV(2),NRESEV(4),IREXCI,
29446 & IREXCI(1)+IREXCI(2)+IREXCI(3)
29447 3003 FORMAT(/,1X,'HISTAT:',14X,'statistics - residual nuclei, ',
29448 & 'evaporation',/,22X,'-----------------------------',
29449 & '------------',/,/,1X,'no. of events for normal.: ',
29450 & '(events handled by FICONF, evt)',7X,I6,/,28X,'(events',
29451 & ' passing the evap.-step, evt1) ',I6,/,1X,'no. of',
29452 & ' rejected events (',I4,',',I4,',',I4,')',22X,I6,/)
29453
29454 WRITE(LOUT,3004)
29455 3004 FORMAT(/,22X,'1) before evaporation-step:',/)
29456 ICEV = MAX(NRESEV(2),1)
29457 WRITE(LOUT,3005)
29458 & (DBLE(NRESTO(I))/DBLE(ICEV),I=1,2),
29459 & (DBLE(NRESPR(I))/DBLE(ICEV),I=1,2),
29460 & (DBLE(NRESNU(I))/DBLE(ICEV),I=1,2),
29461 & (DBLE(NRESBA(I))/DBLE(ICEV),I=1,2),
29462 & (DBLE(NRESPB(I))/DBLE(ICEV),I=1,2),
29463 & (DBLE(NRESCH(I))/DBLE(ICEV),I=1,2),
29464 & (EXCDPM(I)/DBLE(ICEV),I=1,2),
29465 & (EXCDPM(I+2)/DBLE(ICEV),I=1,2)
29466 3005 FORMAT(1X,'residual nuclei: (mean values per evt)',12X,
29467 & 'proj. / target',/,/,8X,'total number of particles',15X,
29468 & 2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29469 & 'neutrons',18X,2F9.3,/,22X,'baryons',19X,2F9.3,/,22X,
29470 & 'pos. baryons',14X,2F9.3,/,8X,'total charge',28X,2F9.3,/,
29471 & /,8X,'excitation energy (bef. evap.-step) ',2E11.3,/,
29472 & 8X,'excitation energy per nucleon ',2E11.3,/,/)
29473
29474* evaporation / fission / fragmentation statistics: output
29475 ICEV = MAX(NRESEV(2),1)
29476 ICEV1 = MAX(NRESEV(4),1)
29477 NTEVA1 =
29478 & NEVA(1,1)+NEVA(1,2)+NEVA(1,3)+NEVA(1,4)+NEVA(1,5)+NEVA(1,6)
29479 NTEVA2 =
29480 & NEVA(2,1)+NEVA(2,2)+NEVA(2,3)+NEVA(2,4)+NEVA(2,5)+NEVA(2,6)
29481 IF (LEVPRT) THEN
29482 IF (IFISS.EQ.1) CMSG(1) = 'requested '
29483 IF (LFRMBK) CMSG(2) = 'requested '
29484 IF (LDEEXG) CMSG(3) = 'requested '
29485 WRITE(LOUT,3006)
29486 & CMSG,
29487 & DBLE(NTEVA1)/DBLE(ICEV1),DBLE(NTEVA2)/DBLE(ICEV1),
29488 & (DBLE(NEVA(I,1))/DBLE(ICEV1),I=1,2),
29489 & (DBLE(NEVA(I,2))/DBLE(ICEV1),I=1,2),
29490 & (DBLE(NEVA(I,3))/DBLE(ICEV1),I=1,2),
29491 & (DBLE(NEVA(I,4))/DBLE(ICEV1),I=1,2),
29492 & (DBLE(NEVA(I,5))/DBLE(ICEV1),I=1,2),
29493 & (DBLE(NEVA(I,6))/DBLE(ICEV1),I=1,2),
29494 & (DBLE(NEVAGA(I))/DBLE(ICEV1),I=1,2),
29495 & (DBLE(NEVAHT(I))/DBLE(ICEV1),I=1,2)
29496 3006 FORMAT(22X,'2) after evaporation-step:',/,/,1X,'Fission:',
29497 & 13X,A13,/,1X,'Fermi-Break-up:',6X,A13,/,1X,'Gamma-',
29498 & 'deexcitation:',2X,A13,/,/,
29499 & 1X,'evaporation/deexcitation: (mean values per evt1) ',
29500 & 'proj. / target',/,/,8X,'total number of evap. particles',
29501 & 9X,2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29502 & 'neutrons',18X,2F9.3,/,22X,'deuterons',17X,2F9.3,/,22X,
29503 & '3-H',23X,2F9.3,/,22X,'3-He',22X,2F9.3,/,22X,'4-He',22X,
29504 & 2F9.3,/,8X,'nucl. deexcit. gammas',19X,2F9.3,/,8X,
29505 & 'heavy fragments',25X,2F9.3,/)
29506 IF (IFISS.EQ.1) THEN
29507 WRITE(LOUT,3007) NEVAFI(1,1),NEVAFI(1,2),
29508 & NEVAFI(2,1),NEVAFI(2,2),
29509 & DBLE(NEVAFI(2,1))/DBLE(MAX(NEVAFI(1,1),1))*100.0D0,
29510 & DBLE(NEVAFI(2,2))/DBLE(MAX(NEVAFI(1,2),1))*100.0D0
29511 3007 FORMAT(1X,'Fission: total number of events',14X,2I9,/
29512 & 12X,'out of which fission occured',8X,2I9,/,
29513 & 50X,'(',F5.2,'%) (',F5.2,'%)',/)
29514 ENDIF
29515C IF ((LFRMBK).OR.(IFISS.EQ.1)) THEN
29516C WRITE(LOUT,3008)
29517C3008 FORMAT(1X,'heavy fragments - statistics:',7X,'charge',
29518C & ' proj. / target',/)
29519C DO 31 I=1,210
29520C IF ((NEVAHY(1,2,I).NE.0).OR.(NEVAHY(2,2,I).NE.0)) THEN
29521C WRITE(LOUT,3009) I,
29522C & (DBLE(NEVAHY(K,2,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29523C3009 FORMAT(38X,I3,3X,2E12.3)
29524C ENDIF
29525C 31 CONTINUE
29526C WRITE(LOUT,3010)
29527C3010 FORMAT(1X,'heavy fragments - statistics:',7X,'mass ',
29528C & ' proj. / target',/)
29529C DO 32 I=1,210
29530C IF ((NEVAHY(1,1,I).NE.0).OR.(NEVAHY(2,1,I).NE.0)) THEN
29531C WRITE(LOUT,3011) I,
29532C & (DBLE(NEVAHY(K,1,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29533C3011 FORMAT(38X,I3,3X,2E12.3)
29534C ENDIF
29535C 32 CONTINUE
29536C WRITE(LOUT,*)
29537C ENDIF
29538 ELSE
29539 WRITE(LOUT,3012)
29540 3012 FORMAT(22X,'2) after evaporation-step:',/,/,1X,
29541 & 'Evaporation: not requested',/)
29542 ENDIF
29543
29544 RETURN
29545*------------------------------------------------------------------
29546* filling of histogram with event-record
29547 4 CONTINUE
29548* emulsion treatment
29549 IF (NCOMPO.GT.0) THEN
29550 DO 40 I=1,NCOMPO
29551 IF (IT.EQ.IEMUMA(I)) THEN
29552 EMUSAM(I) = EMUSAM(I)+ONE
29553 ENDIF
29554 40 CONTINUE
29555 ENDIF
29556 NINCGE = NINCGE+MAXGEN
29557 MAXGEN = 0
29558**dble Po statistics.
29559 IF (IPOPO.EQ.1) KPOPO = KPOPO+1
29560
29561 RETURN
29562*------------------------------------------------------------------
29563* filling of histogram with event-record
29564 5 CONTINUE
29565 IF ((ISTHKK(IDX).EQ.15).OR.(ISTHKK(IDX).EQ.16)) THEN
29566 IB = IIBAR(IDBAM(IDX))
29567 IC = IICH(IDBAM(IDX))
29568 J = ISTHKK(IDX)-14
29569 IF ( ((ABS(IB).EQ.1).AND.(IC.EQ.1)).OR.(IC.EQ.0) ) THEN
29570 NINCST(J,1) = NINCST(J,1)+1
29571 ELSEIF ((ABS(IB).EQ.1).AND.(IC.EQ.-1)) THEN
29572 NINCST(J,2) = NINCST(J,2)+1
29573 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ. 1)) THEN
29574 NINCST(J,3) = NINCST(J,3)+1
29575 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ.-1)) THEN
29576 NINCST(J,4) = NINCST(J,4)+1
29577 ENDIF
29578 ELSEIF (ISTHKK(IDX).EQ.17) THEN
29579 NINCWO(1) = NINCWO(1)+1
29580 ELSEIF (ISTHKK(IDX).EQ.18) THEN
29581 NINCWO(2) = NINCWO(2)+1
29582 ELSEIF (ISTHKK(IDX).EQ.1001) THEN
29583 IB = IDRES(IDX)
29584 IC = IDXRES(IDX)
29585 IF (IC.GT.0) THEN
29586 NEVAHY(NOBAM(IDX),1,IB) = NEVAHY(NOBAM(IDX),1,IB)+1
29587 NEVAHY(NOBAM(IDX),2,IC) = NEVAHY(NOBAM(IDX),2,IC)+1
29588 ENDIF
29589 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29590 ENDIF
29591
29592 RETURN
29593 END
29594
29595*$ CREATE DT_NEWHGR.FOR
29596*COPY DT_NEWHGR
29597*
29598*===newhgr=============================================================*
29599*
29600 SUBROUTINE DT_NEWHGR(XLIM1,XLIM2,XLIM3,XLIMB,IBIN,IREFN)
29601
29602************************************************************************
29603* *
29604* Histogram initialization. *
29605* *
29606* input: XLIM1/XLIM2 lower/upper edge of histogram-window *
29607* XLIM3 bin size *
29608* IBIN > 0 number of bins in equidistant lin. binning *
29609* = -1 reset histograms *
29610* < -1 |IBIN| number of bins in equidistant log. *
29611* binning or log. binning in user def. struc. *
29612* XLIMB(*) user defined bin structure *
29613* *
29614* The bin structure is sensitive to *
29615* XLIM1, XLIM3, IBIN if XLIM3 > 0 (lin.) *
29616* XLIM1, XLIM2, IBIN if XLIM3 = 0 (lin. & log.) *
29617* XLIMB, IBIN if XLIM3 < 0 *
29618* *
29619* *
29620* output: IREFN histogram index *
29621* (= -1 for inconsistent histogr. request) *
29622* *
29623* This subroutine is based on a original version by R. Engel. *
29624* This version dated 22.4.95 is written by S. Roesler. *
29625************************************************************************
29626
29627 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29628 SAVE
29629 PARAMETER ( LINP = 10 ,
29630 & LOUT = 6 ,
29631 & LDAT = 9 )
29632
29633 LOGICAL LSTART
29634
29635 PARAMETER (ZERO = 0.0D0,
29636 & TINY = 1.0D-10)
29637
29638 DIMENSION XLIMB(*)
29639
29640* histograms
29641 PARAMETER (NHIS=150, NDIM=250)
29642 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29643 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29644* auxiliary common for histograms
29645 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29646
29647 DATA LSTART /.TRUE./
29648
29649* reset histogram counter
29650 IF (LSTART.OR.(IBIN.EQ.-1)) THEN
29651 IHISL = 0
29652 IF (IBIN.EQ.-1) RETURN
29653 LSTART = .FALSE.
29654 ENDIF
29655
29656 IHIS = IHISL+1
29657* check for maximum number of allowed histograms
29658 IF (IHIS.GT.NHIS) THEN
29659 WRITE(LOUT,1003) IHIS,NHIS,IHIS
29660 1003 FORMAT(1X,'NEWHGR: warning! number of histograms (',
29661 & I4,') exceeds array size (',I4,')',/,21X,
29662 & 'histogram',I3,' skipped!')
29663 GOTO 9999
29664 ENDIF
29665
29666 IREFN = IHIS
29667 IBINS(IHIS) = ABS(IBIN)
29668* check requested number of bins
29669 IF (IBINS(IHIS).GE.NDIM) THEN
29670 WRITE(LOUT,1000) IBIN,NDIM,NDIM
29671 1000 FORMAT(1X,'NEWHGR: warning! number of bins (',
29672 & I3,') exceeds array size (',I3,')',/,21X,
29673 & 'and will be reset to ',I3)
29674 IBINS(IHIS) = NDIM
29675 ENDIF
29676 IF (IBINS(IHIS).EQ.0) THEN
29677 WRITE(LOUT,1001) IBIN,IHIS
29678 1001 FORMAT(1X,'NEWHGR: warning! inconsistent number of',
29679 & ' bins (',I3,')',/,21X,'histogram',I3,' skipped!')
29680 GOTO 9999
29681 ENDIF
29682
29683* initialize arrays
29684 DO 1 I=1,NDIM
29685 DO 2 K=1,3
29686 HIST(K,IHIS,I) = ZERO
29687 HIST(K+3,IHIS,I) = ZERO
29688 TMPHIS(K,IHIS,I) = ZERO
29689 2 CONTINUE
29690 HIST(7,IHIS,I) = ZERO
29691 1 CONTINUE
29692 DENTRY(1,IHIS)= ZERO
29693 DENTRY(2,IHIS)= ZERO
29694 OVERF(IHIS) = ZERO
29695 UNDERF(IHIS) = ZERO
29696 TMPUFL(IHIS) = ZERO
29697 TMPOFL(IHIS) = ZERO
29698
29699* bin str. sensitive to lower edge, bin size, and numb. of bins
29700 IF (XLIM3.GT.ZERO) THEN
29701 DO 3 K=1,IBINS(IHIS)+1
29702 HIST(1,IHIS,K) = XLIM1+DBLE(K-1)*XLIM3
29703 3 CONTINUE
29704 ISWI(IHIS) = 1
29705* bin str. sensitive to lower/upper edge and numb. of bins
29706 ELSEIF (XLIM3.EQ.ZERO) THEN
29707* linear binning
29708 IF (IBIN.GT.0) THEN
29709 XLOW = XLIM1
29710 XHI = XLIM2
29711 IF (XLIM2.LE.XLIM1) THEN
29712 WRITE(LOUT,1002) XLIM1,XLIM2
29713 1002 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29714 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29715 GOTO 9999
29716 ENDIF
29717 ISWI(IHIS) = 1
29718 ELSEIF (IBIN.LT.-1) THEN
29719* logarithmic binning
29720 IF ((XLIM1.LE.ZERO).OR.(XLIM2.LE.ZERO)) THEN
29721 WRITE(LOUT,1004) XLIM1,XLIM2
29722 1004 FORMAT(1X,'NEWHGR: warning! inconsistent log. ',
29723 & 'binning',/,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29724 GOTO 9999
29725 ENDIF
29726 IF (XLIM2.LE.XLIM1) THEN
29727 WRITE(LOUT,1005) XLIM1,XLIM2
29728 1005 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29729 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29730 GOTO 9999
29731 ENDIF
29732 XLOW = LOG10(XLIM1)
29733 XHI = LOG10(XLIM2)
29734 ISWI(IHIS) = 3
29735 ENDIF
29736 DX = ABS(XHI-XLOW)/DBLE(MAX(IBINS(IHIS),1))
29737 DO 4 K=1,IBINS(IHIS)+1
29738 HIST(1,IHIS,K) = XLOW+DBLE(K-1)*DX
29739 4 CONTINUE
29740 ELSE
29741* user defined bin structure
29742 DO 5 K=1,IBINS(IHIS)+1
29743 IF (IBIN.GT.0) THEN
29744 HIST(1,IHIS,K) = XLIMB(K)
29745 ISWI(IHIS) = 2
29746 ELSEIF (IBIN.LT.-1) THEN
29747 HIST(1,IHIS,K) = LOG10(XLIMB(K))
29748 ISWI(IHIS) = 4
29749 ENDIF
29750 5 CONTINUE
29751 ENDIF
29752
29753* histogram accepted
29754 IHISL = IHIS
29755
29756 RETURN
29757
29758 9999 CONTINUE
29759 IREFN = -1
29760 RETURN
29761 END
29762
29763*$ CREATE DT_FILHGR.FOR
29764*COPY DT_FILHGR
29765*
29766*===filhgr=============================================================*
29767*
29768 SUBROUTINE DT_FILHGR(XI,YI,IHIS,NEVT)
29769
29770************************************************************************
29771* *
29772* Scoring for histogram IHIS. *
29773* *
29774* This subroutine is based on a original version by R. Engel. *
29775* This version dated 23.4.95 is written by S. Roesler. *
29776************************************************************************
29777
29778 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29779 SAVE
29780 PARAMETER ( LINP = 10 ,
29781 & LOUT = 6 ,
29782 & LDAT = 9 )
29783
29784 PARAMETER (ZERO = 0.0D0,
29785 & ONE = 1.0D0,
29786 & TINY = 1.0D-10)
29787
29788* histograms
29789 PARAMETER (NHIS=150, NDIM=250)
29790 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29791 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29792* auxiliary common for histograms
29793 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29794
29795 DATA NCEVT /1/
29796
29797 X = XI
29798 Y = YI
29799
29800* dump content of temorary arrays into histograms
29801 IF ((NEVT.NE.NCEVT).OR.(NEVT.LT.0)) THEN
29802 CALL DT_EVTHIS(IDUM)
29803 NCEVT = NEVT
29804 ENDIF
29805
29806* check histogram index
29807 IF (IHIS.EQ.-1) RETURN
29808 IF ((IHIS.LT.1).OR.(IHIS.GT.IHISL)) THEN
29809C WRITE(LOUT,1000) IHIS,IHISL
29810 1000 FORMAT(1X,'FILHGR: warning! histogram index',I4,
29811 & ' out of range (1..',I3,')')
29812 RETURN
29813 ENDIF
29814
29815 IF ((ISWI(IHIS).EQ.1).OR.(ISWI(IHIS).EQ.3)) THEN
29816* bin structure not explicitly given
29817 IF ((ISWI(IHIS).EQ.3).AND.(X.GT.ZERO)) X = LOG10(X)
29818 DX = ABS(HIST(1,IHIS,2)-HIST(1,IHIS,1))
29819 IF (X.LT.HIST(1,IHIS,1)) THEN
29820 I1 = 0
29821 ELSE
29822 I1 = INT( (X-HIST(1,IHIS,1))/MAX(DX,TINY) )+1
29823 ENDIF
29824
29825 ELSEIF ((ISWI(IHIS).EQ.2).OR.(ISWI(IHIS).EQ.4)) THEN
29826* user defined bin structure
29827 IF ((ISWI(IHIS).EQ.4).AND.(X.GT.ZERO)) X = LOG10(X)
29828 IF (X.LT.HIST(1,IHIS,1)) THEN
29829 I1 = 0
29830 ELSE IF (X.GT.HIST(1,IHIS,IBINS(IHIS)+1)) THEN
29831 I1 = IBINS(IHIS)+1
29832 ELSE
29833* binary sort algorithm
29834 KMIN = 0
29835 KMAX = IBINS(IHIS)+1
29836 1 CONTINUE
29837 IF ((KMAX-KMIN).EQ.1) GOTO 2
29838 KK = (KMAX+KMIN)/2
29839 IF (X.LE.HIST(1,IHIS,KK)) THEN
29840 KMAX=KK
29841 ELSE
29842 KMIN=KK
29843 ENDIF
29844 GOTO 1
29845 2 CONTINUE
29846 I1 = KMIN
29847 ENDIF
29848
29849 ELSE
29850 WRITE(LOUT,1001)
29851 1001 FORMAT(1X,'FILHGR: warning! histogram not initialized')
29852 RETURN
29853 ENDIF
29854
29855* scoring
29856 IF (I1.LE.0) THEN
29857 TMPUFL(IHIS) = TMPUFL(IHIS)+ONE
29858 ELSEIF (I1.LE.IBINS(IHIS)) THEN
29859 TMPHIS(1,IHIS,I1) = TMPHIS(1,IHIS,I1)+ONE
29860 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
29861 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+10**X
29862 ELSE
29863 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+X
29864 ENDIF
29865 TMPHIS(3,IHIS,I1) = TMPHIS(3,IHIS,I1)+Y
29866 ELSE
29867 TMPOFL(IHIS) = TMPOFL(IHIS)+ONE
29868 ENDIF
29869
29870 RETURN
29871 END
29872
29873*$ CREATE DT_EVTHIS.FOR
29874*COPY DT_EVTHIS
29875*
29876*===evthis=============================================================*
29877*
29878 SUBROUTINE DT_EVTHIS(NEVT)
29879
29880************************************************************************
29881* Dump content of temorary histograms into /DTHIS1/. This subroutine *
29882* is called after each event and for the last event before any call *
29883* to OUTHGR. *
29884* NEVT number of events dumped, this is only needed to *
29885* get the normalization after the last event *
29886* This version dated 23.4.95 is written by S. Roesler. *
29887************************************************************************
29888
29889 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29890 SAVE
29891 PARAMETER ( LINP = 10 ,
29892 & LOUT = 6 ,
29893 & LDAT = 9 )
29894
29895 LOGICAL LNOETY
29896
29897 PARAMETER (ZERO = 0.0D0,
29898 & ONE = 1.0D0,
29899 & TINY = 1.0D-10)
29900
29901* histograms
29902 PARAMETER (NHIS=150, NDIM=250)
29903 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29904 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29905* auxiliary common for histograms
29906 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29907
29908 DATA NCEVT /0/
29909
29910 NCEVT = NCEVT+1
29911 NEVT = NCEVT
29912
29913 DO 1 I=1,IHISL
29914 LNOETY = .TRUE.
29915 DO 2 J=1,IBINS(I)
29916 IF (TMPHIS(1,I,J).GT.ZERO) THEN
29917 LNOETY = .FALSE.
29918 HIST(2,I,J) = HIST(2,I,J)+ONE
29919 HIST(7,I,J) = HIST(7,I,J)+TMPHIS(1,I,J)
29920 DENTRY(2,I) = DENTRY(2,I)+TMPHIS(1,I,J)
29921 AVX = TMPHIS(2,I,J)/TMPHIS(1,I,J)
29922 HIST(3,I,J) = HIST(3,I,J)+TMPHIS(3,I,J)*AVX
29923 HIST(4,I,J) = HIST(4,I,J)+TMPHIS(3,I,J)*AVX**2
29924 HIST(5,I,J) = HIST(5,I,J)+TMPHIS(3,I,J)
29925 HIST(6,I,J) = HIST(6,I,J)+TMPHIS(3,I,J)**2
29926 TMPHIS(1,I,J) = ZERO
29927 TMPHIS(2,I,J) = ZERO
29928 TMPHIS(3,I,J) = ZERO
29929 ENDIF
29930 2 CONTINUE
29931 IF (LNOETY) THEN
29932 IF (TMPUFL(I).GT.ZERO) THEN
29933 UNDERF(I) = UNDERF(I)+ONE
29934 TMPUFL(I) = ZERO
29935 ELSEIF (TMPOFL(I).GT.ZERO) THEN
29936 OVERF(I) = OVERF(I)+ONE
29937 TMPOFL(I) = ZERO
29938 ENDIF
29939 ELSE
29940 DENTRY(1,I) = DENTRY(1,I)+ONE
29941 ENDIF
29942 1 CONTINUE
29943
29944 RETURN
29945 END
29946
29947*$ CREATE DT_OUTHGR.FOR
29948*COPY DT_OUTHGR
29949*
29950*===outhgr=============================================================*
29951*
29952 SUBROUTINE DT_OUTHGR(I1,I2,I3,I4,I5,I6,CHEAD,IHEAD,NEVTS,FAC,
29953 & ILOGY,INORM,NMODE)
29954
29955************************************************************************
29956* *
29957* Plot histogram(s) to standard output unit *
29958* *
29959* I1..6 indices of histograms to be plotted *
29960* CHEAD,IHEAD header string,integer *
29961* NEVTS number of events *
29962* FAC scaling factor *
29963* ILOGY = 1 logarithmic y-axis *
29964* INORM normalization *
29965* = 0 no further normalization (FAC is obsolete) *
29966* = 1 per event and bin width *
29967* = 2 per entry and bin width *
29968* = 3 per bin entry *
29969* = 4 per event and "bin width" x1^2...x2^2 *
29970* = 5 per event and "log. bin width" ln x1..ln x2 *
29971* = 6 per event *
29972* MODE = 0 no output but normalization applied *
29973* = 1 all valid histograms separately (small frame) *
29974* all valid histograms separately (small frame) *
29975* = -1 and tables as histograms *
29976* = 2 all valid histograms (one plot, wide frame) *
29977* all valid histograms (one plot, wide frame) *
29978* = -2 and tables as histograms *
29979* *
29980* *
29981* Note: All histograms to be plotted with one call to this *
29982* subroutine and |MODE|=2 must have the same bin structure! *
29983* There is no test included ensuring this fact. *
29984* *
29985* This version dated 23.4.95 is written by S. Roesler. *
29986************************************************************************
29987
29988 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29989 SAVE
29990 PARAMETER ( LINP = 10 ,
29991 & LOUT = 6 ,
29992 & LDAT = 9 )
29993
29994 CHARACTER*72 CHEAD
29995
29996 PARAMETER (ZERO = 0.0D0,
29997 & IZERO = 0,
29998 & ONE = 1.0D0,
29999 & TWO = 2.0D0,
30000 & OHALF = 0.5D0,
30001 & EPS = 1.0D-5,
30002 & TINY = 1.0D-8,
30003 & SMALL = -1.0D8,
30004 & RLARGE = 1.0D8 )
30005
30006* histograms
30007 PARAMETER (NHIS=150, NDIM=250)
30008 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30009 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30010
30011 PARAMETER (NDIM2 = 2*NDIM)
30012 DIMENSION XX(NDIM2),YY(NDIM2)
30013
30014 PARAMETER (NHISTO = 6)
30015 DIMENSION YY1(NDIM,NHISTO),XX1(NDIM,NHISTO),IDX1(NHISTO),
30016 & IDX(NHISTO)
30017
30018 CHARACTER*43 CNORM(0:8)
30019 DATA CNORM /'no further normalization ',
30020 & 'per event and bin width ',
30021 & 'per entry1 and bin width ',
30022 & 'per bin entry ',
30023 & 'per event and "bin width" x1^2...x2^2 ',
30024 & 'per event and "log. bin width" ln x1..ln x2',
30025 & 'per event ',
30026 & 'per bin entry1 ',
30027 & 'per entry2 and bin width '/
30028
30029 IDX1(1) = I1
30030 IDX1(2) = I2
30031 IDX1(3) = I3
30032 IDX1(4) = I4
30033 IDX1(5) = I5
30034 IDX1(6) = I6
30035
30036 MODE = NMODE
30037
30038* initialization if "wide frame" is requested
30039 IF (ABS(MODE).EQ.2) THEN
30040 DO 1 I=1,NHISTO
30041 DO 2 J=1,NDIM
30042 XX1(J,I) = ZERO
30043 YY1(J,I) = ZERO
30044 2 CONTINUE
30045 1 CONTINUE
30046 ENDIF
30047
30048* plot header
30049 WRITE(LOUT,'(/1X,A,I3,/,1X,70A1)') CHEAD,IHEAD,('=',II=1,70)
30050
30051* check histogram indices
30052 NHI = 0
30053 DO 3 I=1,NHISTO
30054 IF ((IDX1(I).GE.1).AND.(IDX1(I).LE.IHISL)) THEN
30055 IF (ISWI(IDX1(I)).NE.0) THEN
30056 IF (DENTRY(1,IDX1(I)).LT.ONE) THEN
30057 WRITE(LOUT,1000)
30058 & IDX1(I),UNDERF(IDX1(I)),OVERF(IDX1(I))
30059 1000 FORMAT(/,1X,'OUTHGR: warning! no entries in',
30060 & ' histogram ',I3,/,21X,'underflows:',F10.0,
30061 & ' overflows: ',F10.0)
30062 ELSE
30063 NHI = NHI+1
30064 IDX(NHI) = IDX1(I)
30065 ENDIF
30066 ENDIF
30067 ENDIF
30068 3 CONTINUE
30069 IF (NHI.EQ.0) THEN
30070 WRITE(LOUT,1001)
30071 1001 FORMAT(/,1X,'OUTHGR: warning! histogram indices not valid')
30072 RETURN
30073 ENDIF
30074
30075* check normalization request
30076 IF ( ((FAC.EQ.ZERO).AND.(INORM.NE.0)).OR.
30077 & ((NEVTS.LT.1).AND.((INORM.EQ.1).OR.(INORM.EQ.4).OR.
30078 & (INORM.EQ.5).OR.(INORM.EQ.6))).OR.
30079 & (INORM.LT.0).OR.(INORM.GT.8) ) THEN
30080 WRITE(LOUT,1002) NEVTS,INORM,FAC
30081 1002 FORMAT(/,1X,'OUTHGR: warning! normalization request not ',
30082 & 'valid',/,21X,'NEVTS = ',I7,4X,'INORM = ',I2,4X,
30083 & 'FAC = ',E11.4)
30084 RETURN
30085 ENDIF
30086
30087 WRITE(LOUT,'(/,1X,A,I8)') 'number of events:',NEVTS
30088
30089* apply normalization
30090 DO 4 N=1,NHI
30091
30092 I = IDX(N)
30093
30094 IF (ISWI(I).EQ.1) THEN
30095 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30096 1003 FORMAT(/,1X,'histo.',I4,', linear binning from',2X,E10.4,
30097 & ' to',2X,E10.4,',',2X,I3,' bins')
30098 ELSEIF (ISWI(I).EQ.2) THEN
30099 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30100 WRITE(LOUT,1007)
30101 1007 FORMAT(1X,'user defined bin structure')
30102 ELSEIF (ISWI(I).EQ.3) THEN
30103 WRITE(LOUT,1004)
30104 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30105 1004 FORMAT(/,1X,'histo.',I4,', logar. binning from',2X,E10.4,
30106 & ' to',2X,E10.4,',',2X,I3,' bins')
30107 ELSEIF (ISWI(I).EQ.4) THEN
30108 WRITE(LOUT,1004)
30109 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30110 WRITE(LOUT,1007)
30111 ELSE
30112 WRITE(LOUT,1008) ISWI(I)
30113 1008 FORMAT(/,1X,'warning! inconsistent bin structure flag ',I4)
30114 ENDIF
30115 WRITE(LOUT,1005) DENTRY(1,I),DENTRY(2,I),UNDERF(I),OVERF(I)
30116 1005 FORMAT(13X,'entries:',2F9.0,' underfl.:',F8.0,
30117 & ' overfl.:',F8.0)
30118 WRITE(LOUT,1009) CNORM(INORM)
30119 1009 FORMAT(1X,'normalization: ',A,/)
30120
30121 DO 5 K=1,IBINS(I)
30122 CALL DT_GETBIN(I,K,NEVTS,INORM,XLOW,XHI,XMEAN,YMEAN,YERR)
30123 YMEAN = FAC*YMEAN
30124 YERR = FAC*YERR
30125 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,YERR,HIST(2,I,K)
30126 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,YERR,HIST(2,I,K)
30127 1006 FORMAT(1X,5E11.3)
30128* small frame
30129 II = 2*K
30130 XX(II-1) = HIST(1,I,K)
30131 XX(II) = HIST(1,I,K+1)
30132 YY(II-1) = YMEAN
30133 YY(II) = YMEAN
30134* wide frame
30135 XX1(K,N) = XMEAN
30136 IF ((ISWI(I).EQ.3).OR.(ISWI(I).EQ.4))
30137 & XX1(K,N) = LOG10(XMEAN)
30138 YY1(K,N) = YMEAN
30139 5 CONTINUE
30140
30141* plot small frame
30142 IF (ABS(MODE).EQ.1) THEN
30143 IBIN2 = 2*IBINS(I)
30144 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30145 IF(ILOGY.EQ.1) THEN
30146 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30147 ELSE
30148 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30149 ENDIF
30150 ENDIF
30151
30152 4 CONTINUE
30153
30154* plot wide frame
30155 IF (ABS(MODE).EQ.2) THEN
30156 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30157 NSIZE = NDIM*NHISTO
30158 DXLOW = HIST(1,IDX(1),1)
30159 DDX = ABS(HIST(1,IDX(1),2)-HIST(1,IDX(1),1))
30160 YLOW = RLARGE
30161 YHI = SMALL
30162 DO 6 I=1,NHISTO
30163 DO 7 J=1,NDIM
30164 IF (YY1(J,I).LT.YLOW) THEN
30165 IF (ILOGY.EQ.1) THEN
30166 IF (YY1(J,I).GT.ZERO) YLOW = YY1(J,I)
30167 ELSE
30168 YLOW = YY1(J,I)
30169 ENDIF
30170 ENDIF
30171 IF (YY1(J,I).GT.YHI) YHI = YY1(J,I)
30172 7 CONTINUE
30173 6 CONTINUE
30174 DY = (YHI-YLOW)/DBLE(NDIM)
30175 IF (DY.LE.ZERO) THEN
30176 WRITE(LOUT,'(1X,A,6I4,A,2E12.4)')
30177 & 'OUTHGR: warning! zero bin width for histograms ',
30178 & IDX,': ',YLOW,YHI
30179 RETURN
30180 ENDIF
30181 IF (ILOGY.EQ.1) THEN
30182 YLOW = LOG10(YLOW)
30183 DY = (LOG10(YHI)-YLOW)/100.0D0
30184 DO 8 I=1,NHISTO
30185 DO 9 J=1,NDIM
30186 IF (YY1(J,I).LE.ZERO) THEN
30187 YY1(J,I) = YLOW
30188 ELSE
30189 YY1(J,I) = LOG10(YY1(J,I))
30190 ENDIF
30191 9 CONTINUE
30192 8 CONTINUE
30193 ENDIF
30194 CALL DT_SRPLOT(XX1,YY1,NSIZE,NHISTO,NDIM,DXLOW,DDX,YLOW,DY)
30195 ENDIF
30196
30197 RETURN
30198 END
30199
30200*$ CREATE DT_GETBIN.FOR
30201*COPY DT_GETBIN
30202*
30203*===getbin=============================================================*
30204*
30205 SUBROUTINE DT_GETBIN(IHIS,IBIN,KEVT,NORM,XLOW,XHI,
30206 & XMEAN,YMEAN,YERR)
30207
30208************************************************************************
30209* This version dated 23.4.95 is written by S. Roesler. *
30210************************************************************************
30211
30212 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30213 SAVE
30214 PARAMETER ( LINP = 10 ,
30215 & LOUT = 6 ,
30216 & LDAT = 9 )
30217
30218 PARAMETER (ZERO = 0.0D0,
30219 & ONE = 1.0D0,
30220 & TINY35 = 1.0D-35)
30221
30222* histograms
30223 PARAMETER (NHIS=150, NDIM=250)
30224 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30225 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30226
30227 XLOW = HIST(1,IHIS,IBIN)
30228 XHI = HIST(1,IHIS,IBIN+1)
30229 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
30230 XLOW = 10**XLOW
30231 XHI = 10**XHI
30232 ENDIF
30233 IF (NORM.EQ.2) THEN
30234 DX = XHI-XLOW
30235 NEVT = INT(DENTRY(1,IHIS))
30236 ELSEIF (NORM.EQ.3) THEN
30237 DX = ONE
30238 NEVT = INT(HIST(2,IHIS,IBIN))
30239 ELSEIF (NORM.EQ.4) THEN
30240 DX = XHI**2-XLOW**2
30241 NEVT = KEVT
30242 ELSEIF (NORM.EQ.5) THEN
30243 DX = LOG(ABS(XHI))-LOG(ABS(XLOW))
30244 NEVT = KEVT
30245 ELSEIF (NORM.EQ.6) THEN
30246 DX = ONE
30247 NEVT = KEVT
30248 ELSEIF (NORM.EQ.7) THEN
30249 DX = ONE
30250 NEVT = INT(HIST(7,IHIS,IBIN))
30251 ELSEIF (NORM.EQ.8) THEN
30252 DX = XHI-XLOW
30253 NEVT = INT(DENTRY(2,IHIS))
30254 ELSE
30255 DX = ABS(XHI-XLOW)
30256 NEVT = KEVT
30257 ENDIF
30258 IF (ABS(DX).LT.TINY35) DX = ONE
30259 NEVT = MAX(NEVT,1)
30260 YMEAN = HIST(5,IHIS,IBIN)/DX/DBLE(NEVT)
30261 YMEAN2 = HIST(6,IHIS,IBIN)/DX**2/DBLE(NEVT)
30262 YERR = SQRT(ABS(YMEAN2-YMEAN**2))/SQRT(DBLE(NEVT))
30263 YSUM = HIST(5,IHIS,IBIN)
30264 IF (ABS(YSUM).LT.TINY35) YSUM = ONE
30265C XMEAN = HIST(3,IHIS,IBIN)/YSUM/MAX(HIST(2,IHIS,IBIN),ONE)
30266 XMEAN = HIST(3,IHIS,IBIN)/YSUM
30267 IF (XMEAN.EQ.ZERO) XMEAN = XLOW
30268
30269 RETURN
30270 END
30271
30272*$ CREATE DT_JOIHIS.FOR
30273*COPY DT_JOIHIS
30274*
30275*===joihis=============================================================*
30276*
30277 SUBROUTINE DT_JOIHIS(IH1,IH2,COPER,FAC1,FAC2,KEVT,NORM,ILOGY,MODE)
30278
30279************************************************************************
30280* *
30281* Operation on histograms. *
30282* *
30283* input: IH1,IH2 histogram indices to be joined *
30284* COPER character defining the requested operation, *
30285* i.e. '+', '-', '*', '/' *
30286* FAC1,FAC2 factors for joining, i.e. *
30287* FAC1*histo1 COPER FAC2*histo2 *
30288* *
30289* This version dated 23.4.95 is written by S. Roesler. *
30290************************************************************************
30291
30292 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30293 SAVE
30294 PARAMETER ( LINP = 10 ,
30295 & LOUT = 6 ,
30296 & LDAT = 9 )
30297
30298 CHARACTER COPER*1
30299
30300 PARAMETER (ZERO = 0.0D0,
30301 & ONE = 1.0D0,
30302 & OHALF = 0.5D0,
30303 & TINY8 = 1.0D-8,
30304 & SMALL = -1.0D8,
30305 & RLARGE = 1.0D8 )
30306
30307* histograms
30308 PARAMETER (NHIS=150, NDIM=250)
30309 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30310 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30311
30312 PARAMETER (NDIM2 = 2*NDIM)
30313 DIMENSION XX(NDIM2),YY(NDIM2),YY1(NDIM),XX1(NDIM)
30314
30315 CHARACTER*43 CNORM(0:6)
30316 DATA CNORM /'no further normalization ',
30317 & 'per event and bin width ',
30318 & 'per entry and bin width ',
30319 & 'per bin entry ',
30320 & 'per event and "bin width" x1^2...x2^2 ',
30321 & 'per event and "log. bin width" ln x1..ln x2',
30322 & 'per event '/
30323
30324* check histogram indices
30325 IF ((IH1.LT. 1).OR.(IH2.LT. 1).OR.
30326 & (IH1.GT.IHISL).OR.(IH2.GT.IHISL)) THEN
30327 WRITE(LOUT,1000) IH1,IH2,IHISL
30328 1000 FORMAT(1X,'JOIHIS: warning! inconsistent histogram ',
30329 & 'indices (',I3,',',I3,'),',/,21X,'valid range: 1,',I3)
30330 GOTO 9999
30331 ENDIF
30332
30333* check bin structure of histograms to be joined
30334 IF (IBINS(IH1).NE.IBINS(IH2)) THEN
30335 WRITE(LOUT,1001) IH1,IH2,IBINS(IH1),IBINS(IH2)
30336 1001 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30337 & ' and ',I3,' failed',/,21X,
30338 & 'due to different numbers of bins (',I3,',',I3,')')
30339 GOTO 9999
30340 ENDIF
30341 DO 1 K=1,IBINS(IH1)+1
30342 IF (ABS(HIST(1,IH1,K)-HIST(1,IH2,K)).GT.TINY8) THEN
30343 WRITE(LOUT,1002) IH1,IH2,K,HIST(1,IH1,K),HIST(1,IH2,K)
30344 1002 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30345 & ' and ',I3,' failed at bin edge ',I3,/,21X,
30346 & 'X1,X2 = ',2E11.4)
30347 GOTO 9999
30348 ENDIF
30349 1 CONTINUE
30350
30351 WRITE(LOUT,1003) IH1,IH2,COPER,FAC1,FAC2
30352 1003 FORMAT(1X,'JOIHIS: joining histograms ',I3,',',I3,' with ',
30353 & 'operation ',A,/,11X,'and factors ',2E11.4)
30354 WRITE(LOUT,1004) CNORM(NORM)
30355 1004 FORMAT(1X,'normalization: ',A,/)
30356
30357 DO 2 K=1,IBINS(IH1)
30358 CALL DT_GETBIN(IH1,K,KEVT,NORM,XLOW1,XHI1,XMEAN1,YMEAN1,YERR1)
30359 CALL DT_GETBIN(IH2,K,KEVT,NORM,XLOW2,XHI2,XMEAN2,YMEAN2,YERR2)
30360 XLOW = XLOW1
30361 XHI = XHI1
30362 XMEAN = OHALF*(XMEAN1+XMEAN2)
30363 IF (COPER.EQ.'+') THEN
30364 YMEAN = FAC1*YMEAN1+FAC2*YMEAN2
30365 ELSEIF (COPER.EQ.'*') THEN
30366 YMEAN = FAC1*YMEAN1*FAC2*YMEAN2
30367 ELSEIF (COPER.EQ.'/') THEN
30368 IF (YMEAN2.EQ.ZERO) THEN
30369 YMEAN = ZERO
30370 ELSE
30371 IF (FAC2.EQ.ZERO) FAC2 = ONE
30372 YMEAN = FAC1*YMEAN1/(FAC2*YMEAN2)
30373 ENDIF
30374 ELSE
30375 GOTO 9998
30376 ENDIF
30377 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30378 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30379 1006 FORMAT(1X,5E11.3)
30380* small frame
30381 II = 2*K
30382 XX(II-1) = HIST(1,IH1,K)
30383 XX(II) = HIST(1,IH1,K+1)
30384 YY(II-1) = YMEAN
30385 YY(II) = YMEAN
30386* wide frame
30387 XX1(K) = XMEAN
30388 IF ((ISWI(IH1).EQ.3).OR.(ISWI(IH1).EQ.4)) XX1(K) = LOG10(XMEAN)
30389 YY1(K) = YMEAN
30390 2 CONTINUE
30391
30392* plot small frame
30393 IF (ABS(MODE).EQ.1) THEN
30394 IBIN2 = 2*IBINS(IH1)
30395 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30396 IF(ILOGY.EQ.1) THEN
30397 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30398 ELSE
30399 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30400 ENDIF
30401 ENDIF
30402
30403* plot wide frame
30404 IF (ABS(MODE).EQ.2) THEN
30405 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30406 NSIZE = NDIM
30407 DXLOW = HIST(1,IH1,1)
30408 DDX = ABS(HIST(1,IH1,2)-HIST(1,IH1,1))
30409 YLOW = RLARGE
30410 YHI = SMALL
30411 DO 3 I=1,NDIM
30412 IF (YY1(I).LT.YLOW) THEN
30413 IF (ILOGY.EQ.1) THEN
30414 IF (YY1(I).GT.ZERO) YLOW = YY1(I)
30415 ELSE
30416 YLOW = YY1(I)
30417 ENDIF
30418 ENDIF
30419 IF (YY1(I).GT.YHI) YHI = YY1(I)
30420 3 CONTINUE
30421 DY = (YHI-YLOW)/DBLE(NDIM)
30422 IF (DY.LE.ZERO) THEN
30423 WRITE(LOUT,'(1X,A,2I4,A,2E12.4)')
30424 & 'JOIHIS: warning! zero bin width for histograms ',
30425 & IH1,IH2,': ',YLOW,YHI
30426 RETURN
30427 ENDIF
30428 IF (ILOGY.EQ.1) THEN
30429 YLOW = LOG10(YLOW)
30430 DY = (LOG10(YHI)-YLOW)/100.0D0
30431 DO 4 I=1,NDIM
30432 IF (YY1(I).LE.ZERO) THEN
30433 YY1(I) = YLOW
30434 ELSE
30435 YY1(I) = LOG10(YY1(I))
30436 ENDIF
30437 4 CONTINUE
30438 ENDIF
30439 CALL DT_SRPLOT(XX1,YY1,NSIZE,1,NDIM,DXLOW,DDX,YLOW,DY)
30440 ENDIF
30441
30442 RETURN
30443
30444 9998 CONTINUE
30445 WRITE(LOUT,1005) COPER
30446 1005 FORMAT(1X,'JOIHIS: unknown operation ',A)
30447
30448 9999 CONTINUE
30449 RETURN
30450 END
30451
30452*$ CREATE DT_XGRAPH.FOR
30453*COPY DT_XGRAPH
30454*
30455*===qgraph=============================================================*
30456*
30457 SUBROUTINE DT_XGRAPH(N,IARG,X,Y1,Y2)
30458C***********************************************************************
30459C
30460C calculate quasi graphic picture with 25 lines and 79 columns
30461C ranges will be chosen automatically
30462C
30463C input N dimension of input fields
30464C IARG number of curves (fields) to plot
30465C X field of X
30466C Y1 field of Y1
30467C Y2 field of Y2
30468C
30469C This subroutine is written by R. Engel.
30470C***********************************************************************
30471 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30472 SAVE
30473
30474 PARAMETER ( LINP = 10 ,
30475 & LOUT = 6 ,
30476 & LDAT = 9 )
30477C
30478 DIMENSION X(N),Y1(N),Y2(N)
30479 PARAMETER (EPS=1.D-30)
30480 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30481 CHARACTER SYMB(5)
30482 CHARACTER COL(0:149,0:49)
30483C
30484 DATA SYMB /'0','e','z','#','x'/
30485C
30486 ISPALT=IBREIT-10
30487C
30488C*** automatic range fitting
30489C
30490 XMAX=X(1)
30491 XMIN=X(1)
30492 DO 600 I=1,N
30493 XMAX=MAX(X(I),XMAX)
30494 XMIN=MIN(X(I),XMIN)
30495 600 CONTINUE
30496 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30497C
30498 ITEST=0
30499 DO 1100 K=0,IZEIL-1
30500 ITEST=ITEST+1
30501 IF (ITEST.EQ.IYRAST) THEN
30502 DO 1010 L=1,ISPALT-1
30503 COL(L,K)='-'
305041010 CONTINUE
30505 COL(ISPALT,K)='+'
30506 ITEST=0
30507 DO 1020 L=0,ISPALT-1,IXRAST
30508 COL(L,K)='+'
305091020 CONTINUE
30510 ELSE
30511 DO 1030 L=1,ISPALT-1
30512 COL(L,K)=' '
305131030 CONTINUE
30514 DO 1040 L=0,ISPALT-1,IXRAST
30515 COL(L,K)='|'
305161040 CONTINUE
30517 COL(ISPALT,K)='|'
30518 ENDIF
305191100 CONTINUE
30520C
30521C*** plot curve Y1
30522C
30523 YMAX=Y1(1)
30524 YMIN=Y1(1)
30525 DO 500 I=1,N
30526 YMAX=MAX(Y1(I),YMAX)
30527 YMIN=MIN(Y1(I),YMIN)
30528500 CONTINUE
30529 IF(IARG.GT.1) THEN
30530 DO 550 I=1,N
30531 YMAX=MAX(Y2(I),YMAX)
30532 YMIN=MIN(Y2(I),YMIN)
30533550 CONTINUE
30534 ENDIF
30535 YMAX=(YMAX-YMIN)/40.0D0+YMAX
30536 YMIN=YMIN-(YMAX-YMIN)/40.0D0
30537 YZOOM=(YMAX-YMIN)/DBLE(IZEIL)
30538 IF(YZOOM.LT.EPS) THEN
30539 WRITE(LOUT,'(1X,A)')
30540 & 'XGRAPH:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30541 RETURN
30542 ENDIF
30543C
30544C*** plot curve Y1
30545C
30546 ILAST=-1
30547 LLAST=-1
30548 DO 1200 K=1,N
30549 L=NINT((X(K)-XMIN)/XZOOM)
30550 I=NINT((YMAX-Y1(K))/YZOOM)
30551 IF(ILAST.GE.0) THEN
30552 LD = L-LLAST
30553 ID = I-ILAST
30554 DO 55 II=0,LD,SIGN(1,LD)
30555 DO 66 KK=0,ID,SIGN(1,ID)
30556 COL(II+LLAST,KK+ILAST)=SYMB(1)
30557 66 CONTINUE
30558 55 CONTINUE
30559 ELSE
30560 COL(L,I)=SYMB(1)
30561 ENDIF
30562 ILAST = I
30563 LLAST = L
305641200 CONTINUE
30565C
30566 IF(IARG.GT.1) THEN
30567C
30568C*** plot curve Y2
30569C
30570 DO 1250 K=1,N
30571 L=NINT((X(K)-XMIN)/XZOOM)
30572 I=NINT((YMAX-Y2(K))/YZOOM)
30573 COL(L,I)=SYMB(2)
305741250 CONTINUE
30575 ENDIF
30576C
30577C*** write it
30578C
30579 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30580C
30581C*** write range of X
30582C
30583 XZOOM = (XMAX-XMIN)/DBLE(7)
30584 WRITE(LOUT,120) (XZOOM*DBLE(I-1)+XMIN,I=1,7)
30585C
30586 DO 1300 K=0,IZEIL-1
30587 YPOS=YMAX-((DBLE(K)+0.5D0)*YZOOM)
30588 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30589 110 FORMAT(1X,1PE9.2,70A1)
305901300 CONTINUE
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)
30596 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30597 120 FORMAT(6X,7(1PE10.3))
30598 END
30599
30600*$ CREATE DT_XGLOGY.FOR
30601*COPY DT_XGLOGY
30602*
30603*===qglogy=============================================================*
30604*
30605 SUBROUTINE DT_XGLOGY(N,IARG,X,Y1,Y2)
30606C***********************************************************************
30607C
30608C calculate quasi graphic picture with 25 lines and 79 columns
30609C logarithmic y axis
30610C ranges will be chosen automatically
30611C
30612C input N dimension of input fields
30613C IARG number of curves (fields) to plot
30614C X field of X
30615C Y1 field of Y1
30616C Y2 field of Y2
30617C
30618C This subroutine is written by R. Engel.
30619C***********************************************************************
30620C
30621 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30622 SAVE
30623
30624 PARAMETER ( LINP = 10 ,
30625 & LOUT = 6 ,
30626 & LDAT = 9 )
30627 DIMENSION X(N),Y1(N),Y2(N)
30628 PARAMETER (EPS=1.D-30)
30629 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30630 CHARACTER SYMB(5)
30631 CHARACTER COL(0:149,0:49)
30632 PARAMETER (DEPS = 1.D-10)
30633C
30634 DATA SYMB /'0','e','z','#','x'/
30635C
30636 ISPALT=IBREIT-10
30637C
30638C*** automatic range fitting
30639C
30640 XMAX=X(1)
30641 XMIN=X(1)
30642 DO 600 I=1,N
30643 XMAX=MAX(X(I),XMAX)
30644 XMIN=MIN(X(I),XMIN)
30645 600 CONTINUE
30646 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30647C
30648 ITEST=0
30649 DO 1100 K=0,IZEIL-1
30650 ITEST=ITEST+1
30651 IF (ITEST.EQ.IYRAST) THEN
30652 DO 1010 L=1,ISPALT-1
30653 COL(L,K)='-'
306541010 CONTINUE
30655 COL(ISPALT,K)='+'
30656 ITEST=0
30657 DO 1020 L=0,ISPALT-1,IXRAST
30658 COL(L,K)='+'
306591020 CONTINUE
30660 ELSE
30661 DO 1030 L=1,ISPALT-1
30662 COL(L,K)=' '
306631030 CONTINUE
30664 DO 1040 L=0,ISPALT-1,IXRAST
30665 COL(L,K)='|'
306661040 CONTINUE
30667 COL(ISPALT,K)='|'
30668 ENDIF
306691100 CONTINUE
30670C
30671C*** plot curve Y1
30672C
30673 YMAX=Y1(1)
30674 YMIN=MAX(Y1(1),EPS)
30675 DO 500 I=1,N
30676 YMAX =MAX(Y1(I),YMAX)
30677 IF(Y1(I).GT.EPS) THEN
30678 IF(YMIN.EQ.EPS) THEN
30679 YMIN = Y1(I)/10.D0
30680 ELSE
30681 YMIN = MIN(Y1(I),YMIN)
30682 ENDIF
30683 ENDIF
30684500 CONTINUE
30685 IF(IARG.GT.1) THEN
30686 DO 550 I=1,N
30687 YMAX=MAX(Y2(I),YMAX)
30688 IF(Y2(I).GT.EPS) THEN
30689 IF(YMIN.EQ.EPS) THEN
30690 YMIN = Y2(I)
30691 ELSE
30692 YMIN = MIN(Y2(I),YMIN)
30693 ENDIF
30694 ENDIF
30695550 CONTINUE
30696 ENDIF
30697C
30698 DO 560 I=1,N
30699 Y1(I) = MAX(Y1(I),YMIN)
30700 560 CONTINUE
30701 IF(IARG.GT.1) THEN
30702 DO 570 I=1,N
30703 Y2(I) = MAX(Y2(I),YMIN)
30704 570 CONTINUE
30705 ENDIF
30706C
30707 IF(YMAX.LE.YMIN) THEN
30708 WRITE(LOUT,'(/1X,A,2E12.3,/)')
30709 & 'XGLOGY:ERROR:YMIN,YMAX ',YMIN,YMAX
30710 WRITE(LOUT,'(1X,A)') 'MIN = MAX, OUTPUT SUPPRESSED'
30711 RETURN
30712 ENDIF
30713C
30714 YMA=(LOG10(YMAX)-LOG10(YMIN))/20.0D0+LOG10(YMAX)
30715 YMI=LOG10(YMIN)-(LOG10(YMAX)-LOG10(YMIN))/20.0D0
30716 YZOOM=(YMA-YMI)/DBLE(IZEIL)
30717 IF(YZOOM.LT.EPS) THEN
30718 WRITE(LOUT,'(1X,A)')
30719 & 'XGLOGY:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30720 RETURN
30721 ENDIF
30722C
30723C*** plot curve Y1
30724C
30725 ILAST=-1
30726 LLAST=-1
30727 DO 1200 K=1,N
30728 L=NINT((X(K)-XMIN)/XZOOM)
30729 I=NINT((YMA-LOG10(Y1(K)))/YZOOM)
30730 IF(ILAST.GE.0) THEN
30731 LD = L-LLAST
30732 ID = I-ILAST
30733 DO 55 II=0,LD,SIGN(1,LD)
30734 DO 66 KK=0,ID,SIGN(1,ID)
30735 COL(II+LLAST,KK+ILAST)=SYMB(1)
30736 66 CONTINUE
30737 55 CONTINUE
30738 ELSE
30739 COL(L,I)=SYMB(1)
30740 ENDIF
30741 ILAST = I
30742 LLAST = L
307431200 CONTINUE
30744C
30745 IF(IARG.GT.1) THEN
30746C
30747C*** plot curve Y2
30748C
30749 DO 1250 K=1,N
30750 L=NINT((X(K)-XMIN)/XZOOM)
30751 I=NINT((YMA-LOG10(Y2(K)))/YZOOM)
30752 COL(L,I)=SYMB(2)
307531250 CONTINUE
30754 ENDIF
30755C
30756C*** write it
30757C
30758 WRITE(LOUT,'(2X,A)') '(LOGARITHMIC Y AXIS)'
30759 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30760C
30761C*** write range of X
30762C
30763 XZOOM1 = (XMAX-XMIN)/DBLE(7)
30764 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30765C
30766 DO 1300 K=0,IZEIL-1
30767 YPOS=10.D0**(YMA-((DBLE(K)+0.5D0)*YZOOM))
30768 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30769 110 FORMAT(1X,1PE9.2,70A1)
307701300 CONTINUE
30771C
30772C*** write range of X
30773C
30774 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30775 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30776 120 FORMAT(6X,7(1PE10.3))
30777C
30778 END
30779
30780*$ CREATE DT_SRPLOT.FOR
30781*COPY DT_SRPLOT
30782*
30783*===plot===============================================================*
30784*
30785 SUBROUTINE DT_SRPLOT(X,Y,N,M,MM,XO,DX,YO,DY)
30786
30787 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30788 SAVE
30789
30790 PARAMETER ( LINP = 10 ,
30791 & LOUT = 6 ,
30792 & LDAT = 9 )
30793*
30794* initial version
30795* J. Ranft, (FORTRAN-Programmierung,J.R.,Teubner, Leipzig, 72)
30796* This is a subroutine of fluka to plot Y across the page
30797* as a function of X down the page. Up to 37 curves can be
30798* plotted in the same picture with different plotting characters.
30799* Output of first 10 overprinted characters addad by FB 88
30800* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
30801*
30802* Input Variables:
30803* X = array containing the values of X
30804* Y = array containing the values of Y
30805* N = number of values in X and in Y
30806* can exceed the fixed number of lines
30807* M = number of different curves X,Y are containing
30808* MM = number of points in each curve i.e. N=M*MM
30809* XO = smallest value of X to be plotted
30810* DX = increment of X between subsequent lines
30811* YO = smallest value of Y to be plotted
30812* DY = increment of Y between subsequent character spaces
30813*
30814* other variables used inside:
30815* XX = numbers along the X-coordinate axis
30816* YY = numbers along the Y-coordinate axis
30817* LL = ten lines temporary storage for the plot
30818* L = character set used to plot different curves
30819* LOV = memorizes overprinted symbols
30820* the first 10 overprinted symbols are printed on
30821* the end of the line to avoid ambiguities
30822* (added by FB as considered quite helpful)
30823*
30824*********************************************************************
30825*
30826 DIMENSION XX(61),YY(61),LL(101,10)
30827 DIMENSION X(N),Y(N),L(40),LOV(40,10)
333481d6 30828 INTEGER*4 LL, L, LOV
9aaba0d6 30829 DATA L/
30830 11H*,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1HZ,
30831 21H+,1HA,1HO,1HB,1HC,1HD,1HE,1HF,1HG,1HH,
30832 31HI,1HJ,1HK,1HL,1HM,1HN,1HO,1HP,1HQ,1HR,
30833 41HS,1HT,1HU,1HV,1HW,1HX,1HY,1H1,1H-,1H /
30834*
30835*
30836 MN=51
30837 DO 10 I=1,MN
30838 AI=I-1
30839 10 XX(I)=XO+AI*DX
30840 DO 20 I=1,11
30841 AI=I-1
30842 20 YY(I)=YO+10.0D0*AI*DY
30843 WRITE(LOUT, 500) (YY(I),I=1,11)
30844 MMN=MN-1
30845*
30846*
30847 DO 90 JJ=1,MMN,10
30848 JJJ=JJ-1
30849 DO 30 I=1,101
30850 DO 30 J=1,10
30851 30 LL(I,J)=L(40)
30852 DO 40 I=1,101
30853 40 LL(I,1)=L(39)
30854 DO 50 I=1,101,10
30855 DO 50 J=1,10
30856 50 LL(I,J)=L(38)
30857 DO 60 I=1,40
30858 DO 60 J=1,10
30859 60 LOV(I,J)=L(40)
30860*
30861*
30862 DO 70 I=1,M
30863 DO 70 J=1,MM
30864 II=J+(I-1)*MM
30865 AIX=(X(II)-(XO-DX/2.0D0))/DX+1.0D0
30866 AIY=(Y(II)-(YO-DY/2.0D0))/DY+1.0D0
30867 AIX=AIX-DBLE(JJJ)
30868* changed Sept.88 by FB to avoid INTEGER OVERFLOW
30869 IF( AIX .GT. 1.D0.AND. AIX .LT. 11.D0.AND. AIY .GT. 1.D0.AND
30870 + . AIY .LT. 102.D0) THEN
30871 IX=INT(AIX)
30872 IY=INT(AIY)
30873 IF( IX.GT. 0.AND. IX.LE. 10.AND. IY.GT. 0.AND. IY.LE. 101)
30874 + THEN
30875 IF(LL(IY,IX).NE.L(38).AND.LL(IY,IX).NE.L(39)) LOV(I,IX)
30876 + =LL(IY,IX)
30877 LL(IY,IX)=L(I)
30878 ENDIF
30879 ENDIF
30880 70 CONTINUE
30881*
30882*
30883 DO 80 I=1,10
30884 II=I+JJJ
30885 III=II+1
30886 WRITE(LOUT,510) XX(II),XX(III) , (LL(J,I),J=1,101) ,
30887 & (LOV(J,I),J=1,10)
30888 80 CONTINUE
30889 90 CONTINUE
30890*
30891*
30892 WRITE(LOUT, 520)
30893 WRITE(LOUT, 500) (YY(I),I=1,11)
30894 RETURN
30895*
30896 500 FORMAT(11X,11(1PE10.2),11HOVERPRINTED)
30897 510 FORMAT(1X,2(1PE10.2),101A1,1H ,10A1)
30898 520 FORMAT(20X,10('1---------'),'1')
30899 END
30900
30901*$ CREATE DT_DEFSET.FOR
30902*COPY DT_DEFSET
30903*
30904*===defset=============================================================*
30905*
30906 BLOCK DATA DT_DEFSET
30907
30908 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30909 SAVE
30910
30911* flags for input different options
30912 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
30913 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
30914 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
30915 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
30916* emulsion treatment
30917 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
30918 & NCOMPO,IEMUL
30919
30920* / DTFLG1 /
30921 DATA IFRAG / 2, 1 /
30922 DATA IRESCO / 1 /
30923 DATA IMSHL / 1 /
30924 DATA IRESRJ / 0 /
30925 DATA IOULEV / -1, -1, -1, -1, -1, -1 /
30926 DATA LEMCCK / .FALSE. /
30927 DATA LHADRO / .FALSE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,
30928 & .TRUE.,.TRUE.,.TRUE./
30929 DATA LSEADI / .TRUE. /
30930 DATA LEVAPO / .TRUE. /
30931 DATA IFRAME / 1 /
30932 DATA ITRSPT / 0 /
30933
30934* / DTCOMP /
30935 DATA EMUFRA / NCOMPX*0.0D0 /
30936 DATA IEMUMA / NCOMPX*1 /
30937 DATA IEMUCH / NCOMPX*1 /
30938 DATA NCOMPO / 0 /
30939 DATA IEMUL / 0 /
30940
30941 END
30942
30943*$ CREATE DT_HADPRP.FOR
30944*COPY DT_HADPRP
30945*
30946*===hadprp=============================================================*
30947*
30948 BLOCK DATA DT_HADPRP
30949
30950 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30951 SAVE
30952
30953* auxiliary common for reggeon exchange (DTUNUC 1.x)
30954 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
30955 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
30956 & IQTCHR(-6:6),MQUARK(3,39)
30957* hadron index conversion (BAMJET <--> PDG)
30958 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
30959 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
30960 & IAMCIN(210)
30961* names of hadrons used in input-cards
30962 CHARACTER*8 BTYPE
30963 COMMON /DTPAIN/ BTYPE(30)
30964
30965* / DTQUAR /
30966*----------------------------------------------------------------------*
30967* *
30968* Quark content of particles: *
30969* index quark el. charge bar. charge isospin isospin3 *
30970* 1 = u 2/3 1/3 1/2 1/2 *
30971* -1 = ubar -2/3 -1/3 1/2 -1/2 *
30972* 2 = d -1/3 1/3 1/2 -1/2 *
30973* -2 = dbar 1/3 -1/3 1/2 1/2 *
30974* 3 = s -1/3 1/3 0 0 *
30975* -3 = sbar 1/3 -1/3 0 0 *
30976* 4 = c 2/3 1/3 0 0 *
30977* -4 = cbar -2/3 -1/3 0 0 *
30978* 5 = b -1/3 1/3 0 0 *
30979* -5 = bbar 1/3 -1/3 0 0 *
30980* 6 = t 2/3 1/3 0 0 *
30981* -6 = tbar -2/3 -1/3 0 0 *
30982* *
30983* Mquark = particle quark composition (Paprop numbering) *
30984* Iqechr = electric charge ( in 1/3 unit ) *
30985* Iqbchr = baryonic charge ( in 1/3 unit ) *
30986* Iqichr = isospin ( in 1/2 unit ), z component *
30987* Iqschr = strangeness *
30988* Iqcchr = charm *
30989* Iquchr = beauty *
30990* Iqtchr = ...... *
30991* *
30992*----------------------------------------------------------------------*
30993 DATA IQECHR / -2, 1, -2, 1, 1, -2, 0, 2, -1, -1, 2, -1, 2 /
30994 DATA IQBCHR / 6*-1, 0, 6*1 /
30995 DATA IQICHR / 4*0, 1, -1, 0, 1, -1, 4*0 /
30996 DATA IQSCHR / 3*0, 1, 5*0, -1, 3*0 /
30997 DATA IQCCHR / 2*0, -1, 7*0, 1, 2*0 /
30998 DATA IQUCHR / 0, 1, 9*0, -1, 0 /
30999 DATA IQTCHR / -1, 11*0, 1 /
31000 DATA MQUARK /
31001 & 2, 1, 1, -2,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31002 & 0, 0, 0, 0, 0, 0, 2, 2, 1, -2,-2,-1, 0, 0, 0,
31003 & 0, 0, 0, 0, 0, 0, 1,-2, 0, 2,-1, 0, 1,-3, 0,
31004 & 3,-1, 0, 1, 2, 3, -1,-2,-3, 0, 0, 0, 2, 2, 3,
31005 & 1, 1, 3, 1, 2, 3, 1,-1, 0, 2,-3, 0, 3,-2, 0,
31006 & 2,-2, 0, 3,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31007 & -1,-1,-3, -1,-2,-3, -2,-2,-3, 1, 3, 3, -1,-3,-3,
31008 & 2, 3, 3, -2,-3,-3, 3, 3, 3, -3,-3,-3 /
31009
31010* / DTHAIC /
31011* (renamed) (HAdron InDex COnversion)
31012* translation table version filled up by r.e. 25.01.94 *
31013 DATA IAMCIN /
31014 &2212,-2212,11,-11,12, -12,22,2112,-2112,-13,
31015 &13,130,211,-211,321, -321,3122,-3122,310,3112,
31016 &3222,3212,111,311,-311, 0,0,0,0,0,
31017 &221,213,113,-213,223, 323,313,-323,-313,10323,
31018 &10313,-10323,-10313,30323,30313, -30323,-30313,3224,3214,3114,
31019 &3216,3218,2224,2214,2114, 1114,12224,12214,12114,11114,
31020 &99999,99999,22212,22112,32124, 31214,-2224,-2214,-2114,-1114,
31021 &-12224,-12214,-12114,-11114,-2124, -1214,4*99999,
31022 &5*99999, 5*99999,
31023 &4*99999,331, 333,3322,3312,-3222,-3212,
31024 &-3112,-3322,-3312,3224,3214, 3114,3324,3314,3334,-3224,
31025 &-3214,-3114,-3324,-3314,-3334, 421,411,-411,-421,431,
31026 &-431,441,423,413,-413, -423,433,-433,20443,443,
31027 &-15,15,16,-16,14, -14,4122,4232,4132,4222,
31028 &4212,4112,3*99999, 3*99999,-4122,-4232,
31029 &-4132,-4222,-4212,-4112,99999, 5*99999,
31030 &5*99999, 5*99999,
31031 &10*99999,
31032 &5*99999 , 20211,20111,-20211,99999,20321,
31033 &-20321,20311,-20311,7*99999 ,
31034 &7*99999,12212,12112,99999/
31035
31036* / DTHAIC /
31037* (HAdron InDex COnversion)
31038 DATA (IPDG2(1,K),K=1,7)
31039 & / -11, -12, -13, -15, -16, -14, 0/
31040 DATA (IBAM2(1,K),K=1,7)
31041 & / 4, 6, 10, 131, 134, 136, 0/
31042 DATA (IPDG2(2,K),K=1,7)
31043 & / 11, 12, 22, 13, 15, 16, 14/
31044 DATA (IBAM2(2,K),K=1,7)
31045 & / 3, 5, 7, 11, 132, 133, 135/
31046 DATA (IPDG3(1,K),K=1,22)
31047 & / -211, -321, -311, -213, -323, -313, -411, -421,
31048 & -431, -413, -423, -433, 0, 0, 0, 0,
31049 & 0, 0, 0, 0, 0, 0/
31050 DATA (IBAM3(1,K),K=1,22)
31051 & / 14, 16, 25, 34, 38, 39, 118, 119,
31052 & 121, 125, 126, 128, 0, 0, 0, 0,
31053 & 0, 0, 0, 0, 0, 0/
31054 DATA (IPDG3(2,K),K=1,22)
31055 & / 130, 211, 321, 310, 111, 311, 221, 213,
31056 & 113, 223, 323, 313, 331, 333, 421, 411,
31057 & 431, 441, 423, 413, 433, 443/
31058 DATA (IBAM3(2,K),K=1,22)
31059 & / 12, 13, 15, 19, 23, 24, 31, 32,
31060 & 33, 35, 36, 37, 95, 96, 116, 117,
31061 & 120, 122, 123, 124, 127, 130/
31062 DATA (IPDG4(1,K),K=1,29)
31063 & / -2212, -2112, -3122, -2224, -2214, -2114, -1114, -2124,
31064 & -1214, -3222, -3212, -3112, -3322, -3312, -3224, -3214,
31065 & -3114, -3324, -3314, -3334, -4122, -4232, -4132, -4222,
31066 & -4212, -4112, 0, 0, 0/
31067 DATA (IBAM4(1,K),K=1,29)
31068 & / 2, 9, 18, 67, 68, 69, 70, 75,
31069 & 76, 99, 100, 101, 102, 103, 110, 111,
31070 & 112, 113, 114, 115, 149, 150, 151, 152,
31071 & 153, 154, 0, 0, 0/
31072 DATA (IPDG4(2,K),K=1,29)
31073 & / 2212, 2112, 3122, 3112, 3222, 3212, 3224, 3214,
31074 & 3114, 3216, 3218, 2224, 2214, 2114, 1114, 3322,
31075 & 3312, 3224, 3214, 3114, 3324, 3314, 3334, 4122,
31076 & 4232, 4132, 4222, 4212, 4112/
31077 DATA (IBAM4(2,K),K=1,29)
31078 & / 1, 8, 17, 20, 21, 22, 48, 49,
31079 & 50, 51, 52, 53, 54, 55, 56, 97,
31080 & 98, 104, 105, 106, 107, 108, 109, 137,
31081 & 138, 139, 140, 141, 142/
31082 DATA (IPDG5(1,K),K=1,19)
31083 & /-10323,-10313,-30323,-30313,-12224,-12214,-12114,-11114,
31084 & -20211,-20321,-20311, 0, 0, 0, 0, 0,
31085 & 0, 0, 0/
31086 DATA (IBAM5(1,K),K=1,19)
31087 & / 42, 43, 46, 47, 71, 72, 73, 74,
31088 & 188, 191, 193, 0, 0, 0, 0, 0,
31089 & 0, 0, 0/
31090 DATA (IPDG5(2,K),K=1,19)
31091 & / 10323, 10313, 30323, 30313, 12224, 12214, 12114, 11114,
31092 & 22212, 22112, 32124, 31214, 20443, 20211, 20111, 20321,
31093 & 20311, 12212, 12112/
31094 DATA (IBAM5(2,K),K=1,19)
31095 & / 40, 41, 44, 45, 57, 58, 59, 60,
31096 & 63, 64, 65, 66, 129, 186, 187, 190,
31097 & 192, 208, 209/
31098
31099* / DTPAIN /
31100* internal particle names
31101 DATA BTYPE / 'PROTON ' , 'APROTON ' , 'ELECTRON' , 'POSITRON' ,
31102 &'NEUTRIE ' , 'ANEUTRIE' , 'PHOTON ' , 'NEUTRON ' , 'ANEUTRON' ,
31103 &'MUON+ ' , 'MUON- ' , 'KAONLONG' , 'PION+ ' , 'PION- ' ,
31104 &'KAON+ ' , 'KAON- ' , 'LAMBDA ' , 'ALAMBDA ' , 'KAONSHRT' ,
31105 &'SIGMA- ' , 'SIGMA+ ' , 'SIGMAZER' , 'PIZERO ' , 'KAONZERO' ,
31106 &'AKAONZER' , 'NEUTRIM ' , 'ANEUTRIM' , 'NEUTRIT ' , 'ANEUTRIT' ,
31107 &'BLANK ' /
31108
31109 END
31110
31111*$ CREATE DT_BLKD46.FOR
31112*COPY DT_BLKD46
31113*
31114*===blkd46=============================================================*
31115*
31116 BLOCK DATA DT_BLKD46
31117
31118 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31119 SAVE
31120
31121 PARAMETER ( AMELCT = 0.51099906 D-03 )
31122 PARAMETER ( AMMUON = 0.105658389 D+00 )
31123
31124* particle properties (BAMJET index convention)
31125 CHARACTER*8 ANAME
31126 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
31127 & IICH(210),IIBAR(210),K1(210),K2(210)
31128
31129* / DTPART /
31130* Particle masses Engel version JETSET compatible
31131C DATA (AAM(K),K=1,85) /
31132C & .9383D+00, .9383D+00, AMELCT , AMELCT , .0000D+00,
31133C & .0000D+00, .0000D+00, .9396D+00, .9396D+00, AMMUON ,
31134C & AMMUON , .4977D+00, .1396D+00, .1396D+00, .4936D+00,
31135C & .4936D+00, .1116D+01, .1116D+01, .4977D+00, .1197D+01,
31136C & .1189D+01, .1193D+01, .1350D+00, .4977D+00, .4977D+00,
31137C & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31138C & .5488D+00, .7669D+00, .7700D+00, .7669D+00, .7820D+00,
31139C & .8921D+00, .8962D+00, .8921D+00, .8962D+00, .1300D+01,
31140C & .1300D+01, .1300D+01, .1300D+01, .1421D+01, .1421D+01,
31141C & .1421D+01, .1421D+01, .1383D+01, .1384D+01, .1387D+01,
31142C & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31143C & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31144C & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31145C & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31146C & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31147C & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31148C & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31149C DATA (AAM(K),K=86,183) /
31150C & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31151C & .1700D+01, .1700D+01, .1820D+01, .2030D+01, .9575D+00,
31152C & .1019D+01, .1315D+01, .1321D+01, .1189D+01, .1193D+01,
31153C & .1197D+01, .1315D+01, .1321D+01, .1383D+01, .1384D+01,
31154C & .1387D+01, .1532D+01, .1535D+01, .1672D+01, .1383D+01,
31155C & .1384D+01, .1387D+01, .1532D+01, .1535D+01, .1672D+01,
31156C & .1865D+01, .1869D+01, .1869D+01, .1865D+01, .1969D+01,
31157C & .1969D+01, .2980D+01, .2007D+01, .2010D+01, .2010D+01,
31158C & .2007D+01, .2113D+01, .2113D+01, .3686D+01, .3097D+01,
31159C & .1784D+01, .1784D+01, .0000D+00, .0000D+00, .0000D+00,
31160C & .0000D+00, .2285D+01, .2460D+01, .2460D+01, .2452D+01,
31161C & .2453D+01, .2454D+01, .2560D+01, .2560D+01, .2730D+01,
31162C & .3610D+01, .3610D+01, .3790D+01, .2285D+01, .2460D+01,
31163C & .2460D+01, .2452D+01, .2453D+01, .2454D+01, .2560D+01,
31164C & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31165C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31166C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31167C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31168C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31169C & .1250D+01, .1250D+01, .1250D+01 /
31170C DATA (AAM ( I ), I = 184,210 ) /
31171C & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31172C & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31173C & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31174C & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31175C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31176C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31177C & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31178C & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31179C & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31180* sr 25.1.06: particle masses adjusted to Pythia
31181 DATA (AAM(K),K=1,85) /
31182 & .938270E+00,.938270E+00, AMELCT , AMELCT ,.000000E+00,
31183 & .000000E+00,.000000E+00,.939570E+00,.939570E+00, AMMUON ,
31184 & AMMUON ,.497670E+00,.139570E+00,.139570E+00,.493600E+00,
31185 & .493600E+00,.111568E+01,.111568E+01,.497670E+00,.119744E+01,
31186 & .118937E+01,.119255E+01,.134980E+00,.497670E+00,.497670E+00,
31187 & .0000D+00, .0000D+00, .0000D+00 , .0000D+00, .0000D+00,
31188 & .547450E+00,.766900E+00,.768500E+00,.766900E+00,.781940E+00,
31189 & .891600E+00,.896100E+00,.891600E+00,.896100E+00,.129000E+01,
31190 & .129000E+01,.129000E+01,.129000E+01, .1421D+01, .1421D+01,
31191 & .1421D+01, .1421D+01,.138280E+01,.138370E+01,.138720E+01,
31192 & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31193 & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31194 & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31195 & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31196 & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31197 & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31198 & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31199 DATA (AAM(K),K=86,183) /
31200 & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31201 & .1700D+01, .1700D+01, .1820D+01, .2030D+01,.957770E+00,
31202 & .101940E+01,.131490E+01,.132130E+01,.118937E+01,.119255E+01,
31203 & .119744E+01,.131490E+01,.132130E+01,.138280E+01,.138370E+01,
31204 & .138720E+01,.153180E+01, .1535D+01,.167245E+01,.138280E+01,
31205 & .138370E+01,.138720E+01,.153180E+01, .1535D+01,.167245E+01,
31206 & .186450E+01,.186930E+01,.186930E+01,.186450E+01,.196850E+01,
31207 & .196850E+01,.297980E+01,.200670E+01, .2010D+01, .2010D+01,
31208 & .200670E+01,.211240E+01,.211240E+01, .3686D+01,.309688E+01,
31209 & .177700E+01,.177700E+01, .0000D+00, .0000D+00, .0000D+00,
31210 & .0000D+00,.228490E+01,.246560E+01,.247030E+01,.245290E+01,
31211 & .245350E+01,.245210E+01, .2560D+01, .2560D+01, .2730D+01,
31212 & .3610D+01, .3610D+01, .3790D+01,.228490E+01,.246560E+01,
31213 & .2460D+01,.245290E+01,.245350E+01,.245210E+01, .2560D+01,
31214 & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31215 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31216 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31217 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31218 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31219 & .1250D+01, .1250D+01, .1250D+01 /
31220 DATA (AAM ( I ), I = 184,210 ) /
31221 & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31222 & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31223 & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31224 & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31225 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31226 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31227 & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31228 & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31229 & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31230* Particle mean lives
31231 DATA (TAU(K),K=1,183) /
31232 & .1000D+19, .1000D+19, .1000D+19, .1000D+19, .1000D+19,
31233 & .1000D+19, .1000D+19, .9180D+03, .9180D+03, .2200D-05,
31234 & .2200D-05, .5200D-07, .2600D-07, .2600D-07, .1200D-07,
31235 & .1200D-07, .2600D-09, .2600D-09, .9000D-10, .1500D-09,
31236 & .8000D-10, .5000D-14, .8000D-16, .0000D+00, .0000D+00,
31237 & 70*.0000D+00,
31238 & .0000D+00, .3000D-09, .1700D-09, .8000D-10, .1000D-13,
31239 & .1500D-09, .3000D-09, .1700D-09, .0000D+00, .0000D+00,
31240 & .0000D+00, .0000D+00, .0000D+00, .1000D-09, .0000D+00,
31241 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .1000D-09,
31242 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31243 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31244 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31245 & .9000D-11, .9000D-11, .9000D-11, .9000D-11, .1000D+19,
31246 & .1000D+19, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31247 & 40*.0000D+00,
31248 & .0000D+00, .0000D+00, .0000D+00 /
31249 DATA ( TAU ( I ), I = 184,210 ) /
31250 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31251 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31252 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31253 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31254 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31255 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31256 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31257 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31258 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00/
31259* Resonance width Gamma in GeV
31260 DATA (GA(K),K= 1,85) /
31261 & 30*.0000D+00,
31262 & .8500D-06, .1520D+00, .1520D+00, .1520D+00, .1000D-01,
31263 & .7900D-01, .7900D-01, .7900D-01, .7900D-01, .4500D+00,
31264 & .4500D+00, .4500D+00, .4500D+00, .1080D+00, .1080D+00,
31265 & .1080D+00, .1080D+00, .5000D-01, .5000D-01, .5000D-01,
31266 & .8500D-01, .1800D+00, .1150D+00, .1150D+00, .1150D+00,
31267 & .1150D+00, .2000D+00, .2000D+00, .2000D+00, .2000D+00,
31268 & .2000D+00, .2000D+00, .1000D+00, .1000D+00, .2000D+00,
31269 & .2000D+00, .1150D+00, .1150D+00, .1150D+00, .1150D+00,
31270 & .2000D+00, .2000D+00, .2000D+00, .2000D+00, .1000D+00,
31271 & .1000D+00, .2000D+00, .1000D+00, .1000D+00, .1000D+00,
31272 & .1000D+00, .1000D+00, .1000D+00, .1000D+00, .2000D+00 /
31273 DATA (GA(K),K= 86,183) /
31274 & .2000D+00, .2000D+00, .2000D+00, .1500D+00, .1500D+00,
31275 & .1500D+00, .1500D+00, .8500D-01, .1800D+00, .2000D-02,
31276 & .4000D-02, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31277 & .0000D+00, .0000D+00, .0000D+00, .3400D-01, .3400D-01,
31278 & .3600D-01, .9000D-02, .9000D-02, .0000D+00, .3400D-01,
31279 & .3400D-01, .3600D-01, .9000D-02, .9000D-02, .0000D+00,
31280 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31281 & .0000D+00, .0000D+00, .5000D-02, .2000D-02, .2000D-02,
31282 & .5000D-02, .2000D-02, .2000D-02, .2000D-03, .7000D-03,
31283 & 50*.0000D+00,
31284 & .3000D+00, .3000D+00, .3000D+00 /
31285 DATA ( GA ( I ), I = 184,210 ) /
31286 & 2.00000000000000D-01, 2.00000000000000D-01, 3.00000000000000D-01,
31287 & 3.00000000000000D-01, 3.00000000000000D-01, 2.70000000000000D-01,
31288 & 2.50000000000000D-01, 2.50000000000000D-01, 2.50000000000000D-01,
31289 & 2.50000000000000D-01, 1.50000000000000D-01, 1.50000000000000D-01,
31290 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31291 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31292 & 6.00000000000000D-02, 6.00000000000000D-02, 6.00000000000000D-02,
31293 & 6.00000000000000D-02, 5.50000000000000D-02, 5.50000000000000D-02,
31294 & 2.00000000000000D-01, 2.00000000000000D-01, 0.00000000000000D+00/
31295* Particle names
31296* S+1385+Sigma+(1385) L02030+Lambda0(2030)
31297* Rho77=Rho(770) Om783=Omega(783) K*14=K*(1420) and so on
31298* designation N*@@ means N*@1(@2)
31299 DATA (ANAME(K),K=1,85) /
31300 & 'P ','AP ','E- ','E+ ','NUE ',
31301 & 'ANUE ','GAM ','NEU ','ANEU ','MUE+ ',
31302 & 'MUE- ','K0L ','PI+ ','PI- ','K+ ',
31303 & 'K- ','LAM ','ALAM ','K0S ','SIGM- ',
31304 & 'SIGM+ ','SIGM0 ','PI0 ','K0 ','AK0 ',
31305 & 'BLANK ','BLANK ','BLANK ','BLANK ','BLANK ',
31306 & 'ETA550 ','RHO+77 ','RHO077 ','RHO-77 ','OM0783 ',
31307 & 'K*+892 ','K*0892 ','K*-892 ','AK*089 ','KA+125 ',
31308 & 'KA0125 ','KA-125 ','AKA012 ','K*+142 ','K*0142 ',
31309 & 'K*-142 ','AK*014 ','S+1385 ','S01385 ','S-1385 ',
31310 & 'L01820 ','L02030 ','N*++12 ','N*+ 12 ','N*012 ',
31311 & 'N*-12 ','N*++16 ','N*+16 ','N*016 ','N*-16 ',
31312 & 'N*+14 ','N*014 ','N*+15 ','N*015 ','N*+18 ',
31313 & 'N*018 ','AN--12 ','AN*-12 ','AN*012 ','AN*+12 ',
31314 & 'AN--16 ','AN*-16 ','AN*016 ','AN*+16 ','AN*-15 ',
31315 & 'AN*015 ','DE*=24 ','RPI+49 ','RPI049 ','RPI-49 ',
31316 & 'PIN++ ','PIN+0 ','PIN+- ','PIN-0 ','PPPI ' /
31317 DATA (ANAME(K),K=86,183) /
31318 & 'PNPI ','APPPI ','APNPI ','K+PPI ','K-PPI ',
31319 & 'K+NPI ','K-NPI ','S+1820 ','S-2030 ','ETA* ',
31320 & 'PHI ','TETA0 ','TETA- ','ASIG- ','ASIG0 ',
31321 & 'ASIG+ ','ATETA0 ','ATETA+ ','SIG*+ ','SIG*0 ',
31322 & 'SIG*- ','TETA*0 ','TETA* ','OMEGA- ','ASIG*- ',
31323 & 'ASIG*0 ','ASIG*+ ','ATET*0 ','ATET*+ ','OMEGA+ ',
31324 & 'D0 ','D+ ','D- ','AD0 ','F+ ',
31325 & 'F- ','ETAC ','D*0 ','D*+ ','D*- ',
31326 & 'AD*0 ','F*+ ','F*- ','PSI ','JPSI ',
31327 & 'TAU+ ','TAU- ','NUET ','ANUET ','NUEM ',
31328 & 'ANUEM ','C0+ ','A+ ','A0 ','C1++ ',
31329 & 'C1+ ','C10 ','S+ ','S0 ','T0 ',
31330 & 'XU++ ','XD+ ','XS+ ','AC0- ','AA- ',
31331 & 'AA0 ','AC1-- ','AC1- ','AC10 ','AS- ',
31332 & 'AS0 ','AT0 ','AXU-- ','AXD- ','AXS ',
31333 & 'C1*++ ','C1*+ ','C1*0 ','S*+ ','S*0 ',
31334 & 'T*0 ','XU*++ ','XD*+ ','XS*+ ','TETA++ ',
31335 & 'AC1*-- ','AC1*- ','AC1*0 ','AS*- ','AS*0 ',
31336 & 'AT*0 ','AXU*-- ','AXD*- ','AXS*- ','ATET-- ',
31337 & 'RO ','R+ ','R- ' /
31338 DATA ( ANAME ( I ), I = 184,210 ) /
31339 &'AN*-14 ','AN*014 ','PI+130 ','PI0130 ','PI-130 ','F01400 ',
31340 &'K*+146 ','K*-146 ','K*0146 ','AK0146 ','L01600 ','AL0160 ',
31341 &'S+1660 ','S01660 ','S-1660 ','AS-166 ','AS0166 ','AS+166 ',
31342 &'X01950 ','X-1950 ','AX0195 ','AX+195 ','OM-225 ','AOM+22 ',
31343 &'N*+14 ','N*014 ','BLANK '/
31344* Charge of particles and resonances
31345 DATA (IICH ( I ), I = 1,210 ) /
31346 & 1, -1, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1,
31347 & -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31348 & 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0,
31349 & -1, 0, 1, 0, -1, 0, 0, 2, 1, 0, -1, 2, 1, 0, -1,
31350 & 1, 0, 1, 0, 1, 0, -2, -1, 0, 1, -2, -1, 0, 1, -1,
31351 & 0, 1, 1, 0, -1, 2, 1, 0, -1, 2, 1, 0, -1, 2, 0,
31352 & 1, -1, 1, -1, 0, 0, 0, -1, -1, 0, 1, 0, 1, 1, 0,
31353 & -1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 0, 1, -1, 0, 1,
31354 & -1, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, -1, 0, 0, 0,
31355 & 0, 1, 1, 0, 2, 1, 0, 1, 0, 0, 2, 1, 1, -1, -1,
31356 & 0, -2, -1, 0, -1, 0, 0, -2, -1, -1, 2, 1, 0, 1, 0,
31357 & 0, 2, 1, 1, 2, -2, -1, 0, -1, 0, 0, -2, -1, -1, -2,
31358 & 0, 1, -1, -1, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0,
31359 & 1, 0, -1, -1, 0, 1, 0, -1, 0, 1, -1, 1, 1, 0, 0/
31360* Particle baryonic charges
31361 DATA (IIBAR ( I ), I = 1,210 ) /
31362 & 1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0,
31363 & 0, 1, -1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
31364 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31365 & 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
31366 & 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31367 & -1, 2, 0, 0, 0, 1, 1, 1, 1, 2, 2, 0, 0, 1, 1,
31368 & 1, 1, 1, 1, 0, 0, 1, 1, -1, -1, -1, -1, -1, 1, 1,
31369 & 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0,
31370 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31371 & 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1,
31372 & -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1,
31373 & 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31374 & 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1,
31375 & 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 0/
31376* First number of decay channels used for resonances
31377* and decaying particles
31378 DATA K1/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17,
31379 & 18, 24, 30, 34, 38, 40, 41, 43, 44, 136, 138, 330, 327, 328,
31380 & 2*330, 46, 51, 52, 54, 55, 58,
31381* 50
31382 & 60, 62, 64, 66, 68, 70, 72, 74, 82, 90, 98, 106, 109, 112, 114,
31383 & 123, 140, 141, 143, 145, 146, 150, 157, 164, 168, 174, 180, 187,
31384 & 194, 202, 210, 211, 213, 215, 216, 220, 227, 234, 238, 245, 252,
31385* 85
31386 & 254, 255, 256, 257, 259, 262, 265, 267, 269, 272, 276, 279, 282,
31387 & 286, 290, 293, 299, 331, 335, 339, 340, 341, 343, 344, 345, 346,
31388 & 347, 350, 353, 356, 358, 360, 363, 366, 369, 372, 374, 376, 379,
31389 & 383, 385, 387, 391, 394, 397, 400, 402, 405, 408, 410, 412, 414,
31390 & 417, 420, 425, 430, 431, 432, 433, 434, 448, 452, 457, 458, 459,
31391 & 460, 461, 462, 466, 468, 470, 472, 486, 490, 495, 496, 497, 498,
31392 & 499, 500, 504, 506, 508, 510, 511, 512, 513, 514, 515, 516, 517,
31393 & 518, 519, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 534,
31394 & 537, 539, 541, 547, 553, 558, 563, 568, 572, 573, 574, 575, 576,
31395 & 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
31396 & 590, 596, 602 /
31397* Last number of decay channels used for resonances
31398* and decaying particles
31399 DATA K2/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17,
31400 & 23, 29, 31, 35, 39, 40, 42, 43, 45, 137, 139, 330, 327, 328,
31401 & 2* 330, 50, 51, 53, 54, 57,
31402* 50
31403 & 59, 61, 63, 65, 67, 69, 71, 73, 81, 89, 97, 105, 108, 111, 113,
31404 & 122, 135, 140, 142, 144, 145, 149, 156, 163, 167, 173, 179, 186,
31405 & 193, 201, 209, 210, 212, 214, 215, 219, 226, 233, 237, 244, 251,
31406* 85
31407 & 253, 254, 255, 256, 258, 261, 264, 266, 268, 271, 275, 278, 281,
31408 & 285, 289, 292, 298, 307, 334, 338, 339, 340, 342, 343, 344, 345,
31409 & 346, 349, 352, 355, 357, 359, 362, 365, 368, 371, 373, 375, 378,
31410 & 382, 384, 386, 390, 393, 396, 399, 401, 404, 407, 409, 411, 413,
31411 & 416, 419, 424, 429, 430, 431, 432, 433, 447, 451, 456, 457, 458,
31412 & 459, 460, 461, 465, 467, 469, 471, 485, 489, 494, 495, 496, 497,
31413 & 498, 499, 503, 505, 507, 509, 510, 511, 512, 513, 514, 515, 516,
31414 & 517, 518, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 533,
31415 & 536, 538, 540, 546, 552, 557, 562, 567, 571, 572, 573, 574, 575,
31416 & 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
31417 & 589, 595, 601, 602 /
31418
31419 END
31420
31421*$ CREATE DT_BLKD47.FOR
31422*COPY DT_BLKD47
31423*
31424*===blkd47=============================================================*
31425*
31426 BLOCK DATA DT_BLKD47
31427
31428 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31429 SAVE
31430
31431* HADRIN: decay channel information
31432 PARAMETER (IDMAX9=602)
31433 CHARACTER*8 ZKNAME
31434 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
31435
31436* Name of decay channel
31437* Designation N*@ means N*@1(1236)
31438* @1=# means ++, @1 = = means --
31439* Designation P+/0/- means Pi+/Pi0/Pi- , respectively
31440 DATA (ZKNAME(K),K= 1, 85) /
31441 & 'P ','AP ','E- ','E+ ','NUE ',
31442 & 'ANUE ','GAM ','PE-NUE ','APEANU ','EANUNU ',
31443 & 'E-NUAN ','3PI0 ','PI+-0 ','PIMUNU ','PIE-NU ',
31444 & 'MU+NUE ','MU-NUE ','MU+NUE ','PI+PI0 ','PI++- ',
31445 & 'PI+00 ','M+P0NU ','E+P0NU ','MU-NU ','PI-0 ',
31446 & 'PI+-- ','PI-00 ','M-P0NU ','E-P0NU ','PPI- ',
31447 & 'NPI0 ','PD-NUE ','PM-NUE ','APPI+ ','ANPI0 ',
31448 & 'APE+NU ','APM+NU ','PI+PI- ','PI0PI0 ','NPI- ',
31449 & 'PPI0 ','NPI+ ','LAGA ','GAGA ','GAE+E- ',
31450 & 'GAGA ','GAGAP0 ','PI000 ','PI+-0 ','PI+-GA ',
31451 & 'PI+0 ','PI+- ','PI00 ','PI-0 ','PI+-0 ',
31452 & 'PI+- ','PI0GA ','K+PI0 ','K0PI+ ','KOPI0 ',
31453 & 'K+PI- ','K-PI0 ','AK0PI- ','AK0PI0 ','K-PI+ ',
31454 & 'K+PI0 ','K0PI+ ','K0PI0 ','K+PI- ','K-PI0 ',
31455 & 'K0PI- ','AK0PI0 ','K-PI+ ','K+PI0 ','K0PI+ ',
31456 & 'K+89P0 ','K08PI+ ','K+RO77 ','K0RO+7 ','K+OM07 ',
31457 & 'K+E055 ','K0PI0 ','K+PI+ ','K089P0 ','K+8PI- ' /
31458 DATA (ZKNAME(K),K= 86,170) /
31459 & 'K0R077 ','K+R-77 ','K+R-77 ','K0OM07 ','K0E055 ',
31460 & 'K-PI0 ','K0PI- ','K-89P0 ','AK08P- ','K-R077 ',
31461 & 'AK0R-7 ','K-OM07 ','K-E055 ','AK0PI0 ','K-PI+ ',
31462 & 'AK08P0 ','K-8PI+ ','AK0R07 ','AK0OM7 ','AK0E05 ',
31463 & 'LA0PI+ ','SI0PI+ ','SI+PI0 ','LA0PI0 ','SI+PI- ',
31464 & 'SI-PI+ ','LA0PI- ','SI0PI- ','NEUAK0 ','PK- ',
31465 & 'SI+PI- ','SI0PI0 ','SI-PI+ ','LA0ET0 ','S+1PI- ',
31466 & 'S-1PI+ ','SO1PI0 ','NEUAK0 ','PK- ','LA0PI0 ',
31467 & 'LA0OM0 ','LA0RO0 ','SI+RO- ','SI-RO+ ','SI0RO0 ',
31468 & 'LA0ET0 ','SI0ET0 ','SI+PI- ','SI-PI+ ','SI0PI0 ',
31469 & 'K0S ','K0L ','K0S ','K0L ','P PI+ ',
31470 & 'P PI0 ','N PI+ ','P PI- ','N PI0 ','N PI- ',
31471 & 'P PI+ ','N*#PI0 ','N*+PI+ ','PRHO+ ','P PI0 ',
31472 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31473 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31474 & 'N*-PI+ ','PRHO- ','NRHO0 ','N PI- ','N*0PI- ',
31475 & 'N*-PI0 ','NRHO- ','PETA0 ','N*#PI- ','N*+PI0 ' /
31476 DATA (ZKNAME(K),K=171,255) /
31477 & 'N*0PI+ ','PRHO0 ','NRHO+ ','NETA0 ','N*+PI- ',
31478 & 'N*0PI0 ','N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ',
31479 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31480 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31481 & 'N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ','N PI+ ',
31482 & 'PRHO0 ','NRHO+ ','LAMK+ ','S+ K0 ','S0 K+ ',
31483 & 'PETA0 ','P PI- ','N PI0 ','PRHO- ','NRHO0 ',
31484 & 'LAMK0 ','S0 K0 ','S- K+ ','NETA/ ','APPI- ',
31485 & 'APPI0 ','ANPI- ','APPI+ ','ANPI0 ','ANPI+ ',
31486 & 'APPI- ','AN*=P0 ','AN*-P- ','APRHO- ','APPI0 ',
31487 & 'ANPI- ','AN*=P+ ','AN*-P0 ','AN*0P- ','APRHO0 ',
31488 & 'ANRHO- ','APPI+ ','ANPI0 ','AN*-P+ ','AN*0P0 ',
31489 & 'AN*+P- ','APRHO+ ','ANRHO0 ','ANPI+ ','AN*0P+ ',
31490 & 'AN*+P0 ','ANRHO+ ','APPI0 ','ANPI- ','AN*=P+ ',
31491 & 'AN*-P0 ','AN*0P- ','APRHO0 ','ANRHO- ','APPI+, ',
31492 & 'ANPI0 ','AN*-P+ ','AN*0P0 ','AN*+P- ','APRHO+ ',
31493 & 'ANRHO0 ','PN*014 ','NN*=14 ','PI+0 ','PI+- ' /
31494 DATA (ZKNAME(K),K=256,340) /
31495 & 'PI-0 ','P+0 ','N++ ','P+- ','P00 ',
31496 & 'N+0 ','N+- ','N00 ','P-0 ','N-0 ',
31497 & 'P-- ','PPPI0 ','PNPI+ ','PNPI0 ','PPPI- ',
31498 & 'NNPI+ ','APPPI0 ','APNPI+ ','ANNPI0 ','ANPPI- ',
31499 & 'APNPI0 ','APPPI- ','ANNPI- ','K+PPI0 ','K+NPI+ ',
31500 & 'K0PPI0 ','K-PPI0 ','K-NPI+ ','AKPPI- ','AKNPI0 ',
31501 & 'K+NPI0 ','K+PPI- ','K0PPI0 ','K0NPI+ ','K-NPI0 ',
31502 & 'K-PPI- ','AKNPI- ','PAK0 ','SI+PI0 ','SI0PI+ ',
31503 & 'SI+ETA ','S+1PI0 ','S01PI+ ','NEUK- ','LA0PI- ',
31504 & 'SI-OM0 ','LA0RO- ','SI0RO- ','SI-RO0 ','SI-ET0 ',
31505 & 'SI0PI- ','SI-0 ','BLANC ','BLANC ','BLANC ',
31506 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31507 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31508 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31509 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31510 & 'EPI+- ','EPI00 ','GAPI+- ','GAGA* ','K+- ',
31511 & 'KLKS ','PI+-0 ','EGA ','LPI0 ','LPI ' /
31512 DATA (ZKNAME(K),K=341,425) /
31513 & 'APPI0 ','ANPI- ','ALAGA ','ANPI ','ALPI0 ',
31514 & 'ALPI+ ','LAPI+ ','SI+PI0 ','SI0PI+ ','LAPI0 ',
31515 & 'SI+PI- ','SI-PI+ ','LAPI- ','SI-PI0 ','SI0PI- ',
31516 & 'TE0PI0 ','TE-PI+ ','TE0PI- ','TE-PI0 ','TE0PI ',
31517 & 'TE-PI ','LAK- ','ALPI- ','AS-PI0 ','AS0PI- ',
31518 & 'ALPI0 ','AS+PI- ','AS-PI+ ','ALPI+ ','AS+PI0 ',
31519 & 'AS0PI+ ','AT0PI0 ','AT+PI- ','AT0PI+ ','AT+PI0 ',
31520 & 'AT0PI ','AT+PI ','ALK+ ','K-PI+ ','K-PI+0 ',
31521 & 'K0PI+- ','K0PI0 ','K-PI++ ','AK0PI+ ','K+PI-- ',
31522 & 'K0PI- ','K+PI- ','K+PI-0 ','AKPI-+ ','AK0PI0 ',
31523 & 'ETAPIF ','K++- ','K+AK0 ','ETAPI- ','K--+ ',
31524 & 'K-K0 ','PI00 ','PI+- ','GAGA ','D0PI0 ',
31525 & 'D0GA ','D0PI+ ','D+PI0 ','DFGA ','AD0PI- ',
31526 & 'D-PI0 ','D-GA ','AD0PI0 ','AD0GA ','F+GA ',
31527 & 'F+GA ','F-GA ','F-GA ','PSPI+- ','PSPI00 ',
31528 & 'PSETA ','E+E- ','MUE+- ','PI+-0 ','M+NN ',
31529 & 'E+NN ','RHO+NT ','PI+ANT ','K*+ANT ','M-NN ' /
31530 DATA (ZKNAME(K),K=426,510) /
31531 & 'E-NN ','RHO-NT ','PI-NT ','K*-NT ','NUET ',
31532 & 'ANUET ','NUEM ','ANUEM ','SI+ETA ','SI+ET* ',
31533 & 'PAK0 ','TET0K+ ','SI*+ET ','N*+AK0 ','N*++K- ',
31534 & 'LAMRO+ ','SI0RO+ ','SI+RO0 ','SI+OME ','PAK*0 ',
31535 & 'N*+AK* ','N*++K* ','SI+AK0 ','TET0PI ','SI+AK* ',
31536 & 'TET0RO ','SI0AK* ','SI+K*- ','TET0OM ','TET-RO ',
31537 & 'SI*0AK ','C0+PI+ ','C0+PI0 ','C0+PI- ','A+GAM ',
31538 & 'A0GAM ','TET0AK ','TET0K* ','OM-RO+ ','OM-PI+ ',
31539 & 'C1++AK ','A+PI+ ','C0+AK0 ','A0PI+ ','A+AK0 ',
31540 & 'T0PI+ ','ASI-ET ','ASI-E* ','APK0 ','ATET0K ',
31541 & 'ASI*-E ','AN*-K0 ','AN*--K ','ALAMRO ','ASI0RO ',
31542 & 'ASI-RO ','ASI-OM ','APK*0 ','AN*-K* ','AN*--K ',
31543 & 'ASI-K0 ','ATETPI ','ASI-K* ','ATETRO ','ASI0K* ',
31544 & 'ASI-K* ','ATE0OM ','ATE+RO ','ASI*0K ','AC-PI- ',
31545 & 'AC-PI0 ','AC-PI+ ','AA-GAM ','AA0GAM ','ATET0K ',
31546 & 'ATE0K* ','AOM+RO ','AOM+PI ','AC1--K ','AA-PI- ',
31547 & 'AC0-K0 ','AA0PI- ','AA-K0 ','AT0PI- ','C1++GA ' /
31548 DATA (ZKNAME(K),K=511,540) /
31549 & 'C1++GA ','C10GAM ','S+GAM ','S0GAM ','T0GAM ',
31550 & 'XU++GA ','XD+GAM ','XS+GAM ','A+AKPI ','T02PI+ ',
31551 & 'C1++2K ','AC1--G ','AC1-GA ','AC10GA ','AS-GAM ',
31552 & 'AS0GAM ','AT0GAM ','AXU--G ','AXD-GA ','AXS-GA ',
31553 & 'AA-KPI ','AT02PI ','AC1--K ','RH-PI+ ','RH+PI- ',
31554 & 'RH3PI0 ','RH0PI+ ','RH+PI0 ','RH0PI- ','RH-PI0 ' /
31555 DATA (ZKNAME(I),I=541,602)/
31556 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHO0','ANRHO-','ANETA ',
31557 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0','RH0PI+','RH+PI0',
31558 & '3PI+00','3PI-++','F0PI+ ','RH+PI-','RH0PI0','3PI000','3PI0+-',
31559 & 'F0PI0 ','RH0PI-','RH-PI0','3PI-00','3PI--+','F0PI- ','PI0PI0',
31560 & 'PI+PI-','K+K- ','K0AK0 ','L01600','AL0160','K*+146','K*-146',
31561 & 'K*0146','AK0146','S+1660','S01660','S-1660','AS-166','AS0166',
31562 & 'AS+166','X01690','X-1690','AX0169','AX+169','OM-225','AOM+22',
31563 & 'N*PPI0','N*NPI+','N*P2P0','N*PP+-','N*D+P0','N*D0P+','N*NPI0',
31564 & 'N*PPI-','N*N2P0','N*NP+-','N*D+P-','N*D0P0','BLANK '/
31565* Weight of decay channel
31566 DATA (WT(K),K= 1, 85) /
31567 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31568 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31569 & .1000D+01, .2100D+00, .1200D+00, .2700D+00, .4000D+00,
31570 & .1000D+01, .1000D+01, .6400D+00, .2100D+00, .6000D-01,
31571 & .2000D-01, .3000D-01, .4000D-01, .6400D+00, .2100D+00,
31572 & .6000D-01, .2000D-01, .3000D-01, .4000D-01, .6400D+00,
31573 & .3600D+00, .0000D+00, .0000D+00, .6400D+00, .3600D+00,
31574 & .0000D+00, .0000D+00, .6900D+00, .3100D+00, .1000D+01,
31575 & .5200D+00, .4800D+00, .1000D+01, .9900D+00, .1000D-01,
31576 & .3800D+00, .3000D-01, .3000D+00, .2400D+00, .5000D-01,
31577 & .1000D+01, .1000D+01, .0000D+00, .1000D+01, .9000D+00,
31578 & .1000D-01, .9000D-01, .3300D+00, .6700D+00, .3300D+00,
31579 & .6700D+00, .3300D+00, .6700D+00, .3300D+00, .6700D+00,
31580 & .3300D+00, .6700D+00, .3300D+00, .6700D+00, .3300D+00,
31581 & .6700D+00, .3300D+00, .6700D+00, .1900D+00, .3800D+00,
31582 & .9000D-01, .2000D+00, .3000D-01, .4000D-01, .5000D-01,
31583 & .2000D-01, .1900D+00, .3800D+00, .9000D-01, .2000D+00 /
31584 DATA (WT(K),K= 86,170) /
31585 & .3000D-01, .4000D-01, .5000D-01, .2000D-01, .1900D+00,
31586 & .3800D+00, .9000D-01, .2000D+00, .3000D-01, .4000D-01,
31587 & .5000D-01, .2000D-01, .1900D+00, .3800D+00, .9000D-01,
31588 & .2000D+00, .3000D-01, .4000D-01, .5000D-01, .2000D-01,
31589 & .8800D+00, .6000D-01, .6000D-01, .8800D+00, .6000D-01,
31590 & .6000D-01, .8800D+00, .1200D+00, .1900D+00, .1900D+00,
31591 & .1600D+00, .1600D+00, .1700D+00, .3000D-01, .3000D-01,
31592 & .3000D-01, .4000D-01, .1000D+00, .1000D+00, .2000D+00,
31593 & .1200D+00, .1000D+00, .4000D-01, .4000D-01, .5000D-01,
31594 & .7500D-01, .7500D-01, .3000D-01, .3000D-01, .4000D-01,
31595 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01,
31596 & .6700D+00, .3300D+00, .3300D+00, .6700D+00, .1000D+01,
31597 & .2500D+00, .2700D+00, .1800D+00, .3000D+00, .1700D+00,
31598 & .8000D-01, .1800D+00, .3000D-01, .2400D+00, .2000D+00,
31599 & .1000D+00, .8000D-01, .1700D+00, .2400D+00, .3000D-01,
31600 & .1800D+00, .1000D+00, .2000D+00, .2500D+00, .1800D+00,
31601 & .2700D+00, .3000D+00, .4000D+00, .2000D+00, .1250D+00 /
31602 DATA (WT(K),K=171,255) /
31603 & .7500D-01, .7500D-01, .1250D+00, .4000D+00, .7500D-01,
31604 & .1250D+00, .2000D+00, .1250D+00, .7500D-01, .1800D+00,
31605 & .3700D+00, .1300D+00, .8000D-01, .4000D-01, .7000D-01,
31606 & .1300D+00, .3700D+00, .1800D+00, .4000D-01, .8000D-01,
31607 & .1300D+00, .1300D+00, .7000D-01, .7000D-01, .1300D+00,
31608 & .2300D+00, .4700D+00, .5000D-01, .2000D-01, .1000D-01,
31609 & .2000D-01, .1300D+00, .7000D-01, .4700D+00, .2300D+00,
31610 & .5000D-01, .1000D-01, .2000D-01, .2000D-01, .1000D+01,
31611 & .6700D+00, .3300D+00, .3300D+00, .6700D+00, .1000D+01,
31612 & .2500D+00, .2700D+00, .1800D+00, .3000D+00, .1700D+00,
31613 & .8000D-01, .1800D+00, .3000D-01, .2400D+00, .2000D+00,
31614 & .1000D+00, .8000D-01, .1700D+00, .2400D+00, .3000D-01,
31615 & .1800D+00, .1000D+00, .2000D+00, .2500D+00, .1800D+00,
31616 & .2700D+00, .3000D+00, .1800D+00, .3700D+00, .1300D+00,
31617 & .8000D-01, .4000D-01, .7000D-01, .1300D+00, .3700D+00,
31618 & .1800D+00, .4000D-01, .8000D-01, .1300D+00, .1300D+00,
31619 & .7000D-01, .5000D+00, .5000D+00, .1000D+01, .1000D+01 /
31620 DATA (WT(K),K=256,340) /
31621 & .1000D+01, .8000D+00, .2000D+00, .6000D+00, .3000D+00,
31622 & .1000D+00, .6000D+00, .3000D+00, .1000D+00, .8000D+00,
31623 & .2000D+00, .3300D+00, .6700D+00, .6600D+00, .1700D+00,
31624 & .1700D+00, .3200D+00, .1700D+00, .3200D+00, .1900D+00,
31625 & .3300D+00, .3300D+00, .3400D+00, .3000D+00, .5000D-01,
31626 & .6500D+00, .3800D+00, .1200D+00, .3800D+00, .1200D+00,
31627 & .3800D+00, .1200D+00, .3800D+00, .1200D+00, .3000D+00,
31628 & .5000D-01, .6500D+00, .3800D+00, .2500D+00, .2500D+00,
31629 & .2000D-01, .5000D-01, .5000D-01, .2000D+00, .2000D+00,
31630 & .1200D+00, .1000D+00, .7000D-01, .7000D-01, .1400D+00,
31631 & .5000D-01, .5000D-01, .1000D+01, .1000D+01, .1000D+01,
31632 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31633 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31634 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31635 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31636 & .4800D+00, .2400D+00, .2600D+00, .2000D-01, .4700D+00,
31637 & .3500D+00, .1500D+00, .3000D-01, .1000D+01, .1000D+01 /
31638 DATA (WT(K),K=341,425) /
31639 & .5200D+00, .4800D+00, .1000D+01, .1000D+01, .1000D+01,
31640 & .1000D+01, .9000D+00, .5000D-01, .5000D-01, .9000D+00,
31641 & .5000D-01, .5000D-01, .9000D+00, .5000D-01, .5000D-01,
31642 & .3300D+00, .6700D+00, .6700D+00, .3300D+00, .2500D+00,
31643 & .2500D+00, .5000D+00, .9000D+00, .5000D-01, .5000D-01,
31644 & .9000D+00, .5000D-01, .5000D-01, .9000D+00, .5000D-01,
31645 & .5000D-01, .3300D+00, .6700D+00, .6700D+00, .3300D+00,
31646 & .2500D+00, .2500D+00, .5000D+00, .1000D+00, .5000D+00,
31647 & .1600D+00, .2400D+00, .7000D+00, .3000D+00, .7000D+00,
31648 & .3000D+00, .1000D+00, .5000D+00, .1600D+00, .2400D+00,
31649 & .3000D+00, .4000D+00, .3000D+00, .3000D+00, .4000D+00,
31650 & .3000D+00, .4900D+00, .4900D+00, .2000D-01, .5500D+00,
31651 & .4500D+00, .6800D+00, .3000D+00, .2000D-01, .6800D+00,
31652 & .3000D+00, .2000D-01, .5500D+00, .4500D+00, .9000D+00,
31653 & .1000D+00, .9000D+00, .1000D+00, .6000D+00, .3000D+00,
31654 & .1000D+00, .1000D+00, .1000D+00, .8000D+00, .2800D+00,
31655 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .2800D+00 /
31656 DATA (WT(K),K=426,510) /
31657 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .1000D+01,
31658 & .1000D+01, .1000D+01, .1000D+01, .2000D-01, .3000D-01,
31659 & .7000D-01, .2000D-01, .2000D-01, .4000D-01, .1300D+00,
31660 & .7000D-01, .6000D-01, .6000D-01, .2000D+00, .1400D+00,
31661 & .4000D-01, .1000D+00, .2500D+00, .3000D-01, .3000D+00,
31662 & .4200D+00, .2200D+00, .3500D+00, .1900D+00, .1600D+00,
31663 & .8000D-01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31664 & .1000D+01, .3700D+00, .2000D+00, .3600D+00, .7000D-01,
31665 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00,
31666 & .5000D+00, .2000D-01, .3000D-01, .7000D-01, .2000D-01,
31667 & .2000D-01, .4000D-01, .1300D+00, .7000D-01, .6000D-01,
31668 & .6000D-01, .2000D+00, .1400D+00, .4000D-01, .1000D+00,
31669 & .2500D+00, .3000D-01, .3000D+00, .4200D+00, .2200D+00,
31670 & .3500D+00, .1900D+00, .1600D+00, .8000D-01, .1000D+01,
31671 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .3700D+00,
31672 & .2000D+00, .3600D+00, .7000D-01, .5000D+00, .5000D+00,
31673 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01 /
31674 DATA (WT(K),K=511,540) /
31675 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31676 & .1000D+01, .1000D+01, .1000D+01, .3000D+00, .3000D+00,
31677 & .4000D+00, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31678 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31679 & .3000D+00, .3000D+00, .4000D+00, .3300D+00, .3300D+00,
31680 & .3400D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00 /
31681C
31682 DATA (WT(I),I=541,602) / .0D+00, .3334D+00, .2083D+00, 2*.125D+00,
31683 & .2083D+00, .0D+00, .125D+00, .2083D+00, .3334D+00, .2083D+00,
31684 & .125D+00, 0.2D+00, 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00,
31685 & 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00, 0.2D+00, 0.3D+00,
31686 & 0.3D+00, 0.0D+00, 0.31D+00, 0.62D+00, 0.035D+00, 0.035D+00,
31687 & 18*1.D+00, 0.5D+00, 0.16D+00, 2*0.12D+00, 2*0.05D+00, 0.5D+00,
31688 & 0.16D+00, 2*0.12D+00, 2*0.05D+00, 1.D+00 /
31689* Particle numbers in decay channel
31690 DATA (NZK(K,1),K= 1,170) /
31691 & 1, 2, 3, 4, 5, 6, 7, 1, 2, 4,
31692 & 3, 23, 13, 13, 13, 10, 11, 10, 13, 13,
31693 & 13, 10, 4, 11, 14, 14, 14, 11, 3, 1,
31694 & 8, 1, 1, 2, 9, 2, 2, 13, 23, 8,
31695 & 1, 8, 17, 7, 7, 7, 23, 23, 13, 13,
31696 & 13, 13, 23, 14, 13, 13, 23, 15, 24, 24,
31697 & 15, 16, 25, 25, 16, 15, 24, 24, 15, 16,
31698 & 24, 25, 16, 15, 24, 36, 37, 15, 24, 15,
31699 & 15, 24, 15, 37, 36, 24, 15, 24, 24, 16,
31700 & 24, 38, 39, 16, 25, 16, 16, 25, 16, 39,
31701 & 38, 25, 16, 25, 25, 17, 22, 21, 17, 21,
31702 & 20, 17, 22, 8, 1, 21, 22, 20, 17, 48,
31703 & 50, 49, 8, 1, 17, 17, 17, 21, 20, 22,
31704 & 17, 22, 21, 20, 22, 19, 12, 19, 12, 1,
31705 & 1, 8, 1, 8, 8, 1, 53, 54, 1, 1,
31706 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31707 & 56, 1, 8, 8, 55, 56, 8, 1, 53, 54 /
31708 DATA (NZK(K,1),K=171,340) /
31709 & 55, 1, 8, 8, 54, 55, 56, 1, 8, 1,
31710 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31711 & 56, 1, 8, 1, 8, 1, 8, 17, 21, 22,
31712 & 1, 1, 8, 1, 8, 17, 22, 20, 8, 2,
31713 & 2, 9, 2, 9, 9, 2, 67, 68, 2, 2,
31714 & 9, 67, 68, 69, 2, 9, 2, 9, 68, 69,
31715 & 70, 2, 9, 9, 69, 70, 9, 2, 9, 67,
31716 & 68, 69, 2, 9, 2, 9, 68, 69, 70, 2,
31717 & 9, 1, 8, 13, 13, 14, 1, 8, 1, 1,
31718 & 8, 8, 8, 1, 8, 1, 1, 1, 1, 1,
31719 & 8, 2, 2, 9, 9, 2, 2, 9, 15, 15,
31720 & 24, 16, 16, 25, 25, 15, 15, 24, 24, 16,
31721 & 16, 25, 1, 21, 22, 21, 48, 49, 8, 17,
31722 & 20, 17, 22, 20, 20, 22, 20, 0, 0, 0,
31723 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31724 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31725 & 31, 31, 13, 7, 15, 12, 13, 31, 17, 17 /
31726 DATA (NZK(K,1),K=341,510) /
31727 & 2, 9, 18, 9, 18, 18, 17, 21, 22, 17,
31728 & 21, 20, 17, 20, 22, 97, 98, 97, 98, 97,
31729 & 98, 17, 18, 99, 100, 18, 101, 99, 18, 101,
31730 & 100, 102, 103, 102, 103, 102, 103, 18, 16, 16,
31731 & 24, 24, 16, 25, 15, 24, 15, 15, 25, 25,
31732 & 31, 15, 15, 31, 16, 16, 23, 13, 7, 116,
31733 & 116, 116, 117, 117, 119, 118, 118, 119, 119, 120,
31734 & 120, 121, 121, 130, 130, 130, 4, 10, 13, 10,
31735 & 4, 32, 13, 36, 11, 3, 34, 14, 38, 133,
31736 & 134, 135, 136, 21, 21, 1, 97, 104, 54, 53,
31737 & 17, 22, 21, 21, 1, 54, 53, 21, 97, 21,
31738 & 97, 22, 21, 97, 98, 105, 137, 137, 137, 138,
31739 & 139, 97, 97, 109, 109, 140, 138, 137, 139, 138,
31740 & 145, 99, 99, 2, 102, 110, 68, 67, 18, 100,
31741 & 99, 99, 2, 68, 67, 99, 102, 99, 102, 100,
31742 & 99, 102, 103, 111, 149, 149, 149, 150, 151, 113,
31743 & 113, 115, 115, 152, 150, 149, 151, 150, 157, 140 /
31744 DATA (NZK(K,1),K=511,540) /
31745 & 141, 142, 143, 144, 145, 146, 147, 148, 138, 145,
31746 & 140, 152, 153, 154, 155, 156, 157, 158, 159, 160,
31747 & 150, 157, 152, 34, 32, 33, 33, 32, 33, 34 /
31748 DATA (NZK(I,1),I=541,602) / 2, 67, 68, 69, 2, 9, 9, 68, 69,
31749 & 70, 2, 9, 33, 32, 13, 14, 189, 32, 34, 23, 23, 189, 33, 34, 14,
31750 & 14, 189, 23, 13, 15, 24, 36, 38, 37, 39, 194, 195, 196, 197,
31751 & 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 1, 8, 1, 1, 54,
31752 & 55, 8, 1, 8, 8, 54, 55, 210/
31753 DATA (NZK(K,2),K= 1,170) /
31754 & 0, 0, 0, 0, 0, 0, 0, 3, 4, 6,
31755 & 5, 23, 14, 11, 3, 5, 5, 5, 23, 13,
31756 & 23, 23, 23, 5, 23, 13, 23, 23, 23, 14,
31757 & 23, 3, 11, 13, 23, 4, 10, 14, 23, 14,
31758 & 23, 13, 7, 7, 4, 7, 7, 23, 14, 14,
31759 & 23, 14, 23, 23, 14, 14, 7, 23, 13, 23,
31760 & 14, 23, 14, 23, 13, 23, 13, 23, 14, 23,
31761 & 14, 23, 13, 23, 13, 23, 13, 33, 32, 35,
31762 & 31, 23, 14, 23, 14, 33, 34, 35, 31, 23,
31763 & 14, 23, 14, 33, 34, 35, 31, 23, 13, 23,
31764 & 13, 33, 32, 35, 31, 13, 13, 23, 23, 14,
31765 & 13, 14, 14, 25, 16, 14, 23, 13, 31, 14,
31766 & 13, 23, 25, 16, 23, 35, 33, 34, 32, 33,
31767 & 31, 31, 14, 13, 23, 0, 0, 0, 0, 13,
31768 & 23, 13, 14, 23, 14, 13, 23, 13, 78, 23,
31769 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31770 & 13, 80, 79, 14, 14, 23, 80, 31, 14, 23 /
31771 DATA (NZK(K,2),K=171,340) /
31772 & 13, 79, 78, 31, 14, 23, 13, 80, 79, 23,
31773 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31774 & 13, 80, 79, 23, 13, 33, 32, 15, 24, 15,
31775 & 31, 14, 23, 34, 33, 24, 24, 15, 31, 14,
31776 & 23, 14, 13, 23, 13, 14, 23, 14, 80, 23,
31777 & 14, 13, 23, 14, 79, 80, 13, 23, 13, 23,
31778 & 14, 78, 79, 13, 13, 23, 78, 23, 14, 13,
31779 & 23, 14, 79, 80, 13, 23, 13, 23, 14, 78,
31780 & 79, 62, 61, 23, 14, 23, 13, 13, 13, 23,
31781 & 13, 13, 23, 14, 14, 14, 1, 8, 8, 1,
31782 & 8, 1, 8, 8, 1, 8, 1, 8, 1, 8,
31783 & 1, 1, 8, 1, 8, 8, 1, 1, 8, 8,
31784 & 1, 8, 25, 23, 13, 31, 23, 13, 16, 14,
31785 & 35, 34, 34, 33, 31, 14, 23, 0, 0, 0,
31786 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31787 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31788 & 13, 23, 14, 7, 16, 19, 14, 7, 23, 14 /
31789 DATA (NZK(K,2),K=341,510) /
31790 & 23, 14, 7, 13, 23, 13, 13, 23, 13, 23,
31791 & 14, 13, 14, 23, 14, 23, 13, 14, 23, 14,
31792 & 23, 16, 14, 23, 14, 23, 14, 13, 13, 23,
31793 & 13, 23, 14, 13, 23, 13, 23, 15, 13, 13,
31794 & 13, 23, 13, 13, 14, 14, 14, 14, 14, 23,
31795 & 13, 16, 25, 14, 15, 24, 23, 14, 7, 23,
31796 & 7, 13, 23, 7, 14, 23, 7, 23, 7, 7,
31797 & 7, 7, 7, 13, 23, 31, 3, 11, 14, 135,
31798 & 5, 134, 134, 134, 136, 6, 133, 133, 133, 0,
31799 & 0, 0, 0, 31, 95, 25, 15, 31, 95, 16,
31800 & 32, 32, 33, 35, 39, 39, 38, 25, 13, 39,
31801 & 32, 39, 38, 35, 32, 39, 13, 23, 14, 7,
31802 & 7, 25, 37, 32, 13, 25, 13, 25, 13, 25,
31803 & 13, 31, 95, 24, 16, 31, 24, 15, 34, 34,
31804 & 33, 35, 37, 37, 36, 24, 14, 37, 34, 37,
31805 & 36, 35, 34, 37, 14, 23, 13, 7, 7, 24,
31806 & 39, 34, 14, 24, 14, 24, 14, 24, 14, 7 /
31807 DATA (NZK(K,2),K=511,540) /
31808 & 7, 7, 7, 7, 7, 7, 7, 7, 25, 13,
31809 & 25, 7, 7, 7, 7, 7, 7, 7, 7, 7,
31810 & 24, 14, 24, 13, 14, 23, 13, 23, 14, 23 /
31811 DATA (NZK(I,2),I=541,602) / 31, 13, 23, 14, 79, 80, 31, 13, 23,
31812 & 14, 78, 79, 13, 23, 23, 13, 13, 14, 13, 23, 13, 23, 14, 23, 23,
31813 & 14, 14, 23, 14, 16, 25,
31814 & 4*23, 14*0, 23, 13, 23, 13, 23, 13, 23, 14,
31815 & 23, 13, 14, 23, 0 /
31816 DATA (NZK(K,3),K= 1,170) /
31817 & 0, 0, 0, 0, 0, 0, 0, 5, 6, 5,
31818 & 6, 23, 23, 5, 5, 0, 0, 0, 0, 14,
31819 & 23, 5, 5, 0, 0, 14, 23, 5, 5, 0,
31820 & 0, 5, 5, 0, 0, 5, 5, 0, 0, 0,
31821 & 0, 0, 0, 0, 3, 0, 7, 23, 23, 7,
31822 & 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
31823 & 110*0 /
31824 DATA (NZK(K,3),K=171,340) /
31825 & 80*0,
31826 & 0, 0, 0, 0, 0, 0, 23, 13, 14, 23,
31827 & 23, 14, 23, 23, 23, 14, 23, 13, 23, 14,
31828 & 13, 23, 13, 23, 14, 23, 14, 14, 23, 13,
31829 & 13, 23, 13, 14, 23, 23, 14, 23, 13, 23,
31830 & 14, 14, 0, 0, 0, 0, 0, 0, 0, 0,
31831 & 30*0,
31832 & 14, 23, 7, 0, 0, 0, 23, 0, 0, 0 /
31833 DATA (NZK(K,3),K=341,510) /
31834 & 30*0,
31835 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
31836 & 14, 0, 13, 0, 14, 0, 0, 23, 13, 0,
31837 & 0, 15, 0, 0, 16, 0, 0, 0, 0, 0,
31838 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31839 & 0, 0, 0, 14, 23, 0, 0, 0, 23, 134,
31840 & 134, 0, 0, 0, 133, 133, 0, 0, 0, 0,
31841 & 80*0 /
31842 DATA (NZK(K,3),K=511,540) /
31843 & 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
31844 & 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31845 & 14, 14, 24, 0, 0, 0, 0, 0, 0, 0 /
31846 DATA (NZK(I,3),I=541,602) / 12*0, 2*0, 23, 13, 0, 2*0, 23, 14, 0,
31847 & 2*0, 23, 13, 0, 4*0, 18*0, 2*0, 23, 14, 2*0, 2*0, 23, 14, 2*0, 0/
31848
31849 END
31850
31851*$ CREATE DT_BDEVAP.FOR
31852*COPY DT_BDEVAP
31853*
31854*=== bdevap ===========================================================*
31855*
31856 BLOCK DATA DT_BDEVAP
31857
31858C INCLUDE '(DBLPRC)'
31859* DBLPRC.ADD
31860 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31861 SAVE
31862* (original name: GLOBAL)
31863 PARAMETER ( KALGNM = 2 )
31864 PARAMETER ( ANGLGB = 5.0D-16 )
31865 PARAMETER ( ANGLSQ = 2.5D-31 )
31866 PARAMETER ( AXCSSV = 0.2D+16 )
31867 PARAMETER ( ANDRFL = 1.0D-38 )
31868 PARAMETER ( AVRFLW = 1.0D+38 )
31869 PARAMETER ( AINFNT = 1.0D+30 )
31870 PARAMETER ( AZRZRZ = 1.0D-30 )
31871 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
31872 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
31873 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
31874 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
31875 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
31876 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
31877 PARAMETER ( CSNNRM = 2.0D-15 )
31878 PARAMETER ( DMXTRN = 1.0D+08 )
31879 PARAMETER ( ZERZER = 0.D+00 )
31880 PARAMETER ( ONEONE = 1.D+00 )
31881 PARAMETER ( TWOTWO = 2.D+00 )
31882 PARAMETER ( THRTHR = 3.D+00 )
31883 PARAMETER ( FOUFOU = 4.D+00 )
31884 PARAMETER ( FIVFIV = 5.D+00 )
31885 PARAMETER ( SIXSIX = 6.D+00 )
31886 PARAMETER ( SEVSEV = 7.D+00 )
31887 PARAMETER ( EIGEIG = 8.D+00 )
31888 PARAMETER ( ANINEN = 9.D+00 )
31889 PARAMETER ( TENTEN = 10.D+00 )
31890 PARAMETER ( HLFHLF = 0.5D+00 )
31891 PARAMETER ( ONETHI = ONEONE / THRTHR )
31892 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
31893 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
31894 PARAMETER ( THRTWO = THRTHR / TWOTWO )
31895 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
31896 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
31897 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
31898 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
31899 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
31900 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
31901 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
31902 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
31903 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
31904 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
31905 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
31906 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
31907 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
31908 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
31909 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
31910 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
31911 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
31912 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
31913 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
31914 PARAMETER ( CLIGHT = 2.99792458 D+10 )
31915 PARAMETER ( AVOGAD = 6.0221367 D+23 )
31916 PARAMETER ( BOLTZM = 1.380658 D-23 )
31917 PARAMETER ( AMELGR = 9.1093897 D-28 )
31918 PARAMETER ( PLCKBR = 1.05457266 D-27 )
31919 PARAMETER ( ELCCGS = 4.8032068 D-10 )
31920 PARAMETER ( ELCMKS = 1.60217733 D-19 )
31921 PARAMETER ( AMUGRM = 1.6605402 D-24 )
31922 PARAMETER ( AMMUMU = 0.113428913 D+00 )
31923 PARAMETER ( AMPRMU = 1.007276470 D+00 )
31924 PARAMETER ( AMNEMU = 1.008664904 D+00 )
31925 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
31926 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
31927 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
31928 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
31929 PARAMETER ( PLABRC = 0.197327053 D+00 )
31930 PARAMETER ( AMELCT = 0.51099906 D-03 )
31931 PARAMETER ( AMUGEV = 0.93149432 D+00 )
31932 PARAMETER ( AMMUON = 0.105658389 D+00 )
31933 PARAMETER ( AMPRTN = 0.93827231 D+00 )
31934 PARAMETER ( AMNTRN = 0.93956563 D+00 )
31935 PARAMETER ( AMDEUT = 1.87561339 D+00 )
31936 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
31937 & * 1.D-09 )
31938 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
31939 PARAMETER ( BLTZMN = 8.617385 D-14 )
31940 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
31941 PARAMETER ( GFOHB3 = 1.16639 D-05 )
31942 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
31943 PARAMETER ( SIN2TW = 0.2319 D+00 )
31944 PARAMETER ( GEVMEV = 1.0 D+03 )
31945 PARAMETER ( EMVGEV = 1.0 D-03 )
31946 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
31947 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
31948 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
31949 LOGICAL LGBIAS, LGBANA
31950 COMMON /FKGLOB/ LGBIAS, LGBANA
31951C INCLUDE '(DIMPAR)'
31952* DIMPAR.ADD
31953 PARAMETER ( MXXRGN = 5000 )
31954 PARAMETER ( MXXMDF = 82 )
31955 PARAMETER ( MXXMDE = 54 )
31956 PARAMETER ( MFSTCK = 1000 )
31957 PARAMETER ( MESTCK = 100 )
31958 PARAMETER ( NELEMX = 80 )
31959 PARAMETER ( MPDPDX = 8 )
31960 PARAMETER ( ICOMAX = 180 )
31961 PARAMETER ( NSTBIS = 304 )
31962 PARAMETER ( IDMAXP = 220 )
31963 PARAMETER ( IDMXDC = 640 )
31964 PARAMETER ( MKBMX1 = 1 )
31965 PARAMETER ( MKBMX2 = 1 )
31966C INCLUDE '(IOUNIT)'
31967* IOUNIT.ADD
31968 PARAMETER ( LUNIN = 5 )
31969 PARAMETER ( LUNOUT = 6 )
31970**sr 19.5. set error output-unit from 15 to 6
31971 PARAMETER ( LUNERR = 6 )
31972 PARAMETER ( LUNBER = 14 )
31973 PARAMETER ( LUNECH = 8 )
31974 PARAMETER ( LUNFLU = 13 )
31975 PARAMETER ( LUNGEO = 16 )
31976 PARAMETER ( LUNPMF = 12 )
31977 PARAMETER ( LUNRAN = 2 )
31978 PARAMETER ( LUNXSC = 9 )
31979 PARAMETER ( LUNDET = 17 )
31980 PARAMETER ( LUNRAY = 10 )
31981 PARAMETER ( LUNRDB = 1 )
31982 PARAMETER ( LUNPGO = 7 )
31983 PARAMETER ( LUNPGS = 4 )
31984 PARAMETER ( LUNSCR = 3 )
31985*
31986*----------------------------------------------------------------------*
31987* *
31988* Block Data for the EVAPoration routines: *
31989* *
31990* Created on 20 may 1990 by Alfredo Ferrari & Paola Sala *
31991* Infn - Milan *
31992* *
31993* Modified from the original version of J.M.Zazula *
31994* and, for cookcm, from a LAHET block data kindly provided by *
31995* R.E.Prael-LANL *
31996* *
31997* Last change on 20-feb-95 by Alfredo Ferrari *
31998* *
31999* *
32000*----------------------------------------------------------------------*
32001*
32002* (original name: COOKCM)
32003 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
32004 LOGICAL LDEFOZ, LDEFON
32005 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
32006 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
32007 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
32008 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
32009* (original name: EVA0)
32010 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
32011 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
32012 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
32013 * T (4,7), RMASS (297), ALPH (297), BET (297),
32014 * APRIME (250), IA (6), IZ (6)
32015* (original name: HETTP)
32016 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
32017* (original name: HETC7)
32018 COMMON /FKHET7/ COSKS,SINKS, COSTH,SINTH, COSPHI,SINPHI
32019* (original name: INPFLG)
32020 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
32021*
32022 DATA B0 / 8.D+00 /, Y0 / 1.5D+00 /
32023 DATA IANG / 1 /, IFISS / 1 /, IB0 / 2 /, IGEOM / 0 /
32024 DATA ISTRAG /0/, KEYDK /0/
32025 DATA NBERTP /LUNBER/
32026 DATA COSTH /ONEONE/, SINTH /ZERZER/, COSPHI /ONEONE/,
32027 & SINPHI/ZERZER/
32028* /cookcm/
32029 DATA ( PZCOOK(I),I = 1, IZCOOK ) /
32030 & 0.000D+00, 5.440D+00, 0.000D+00, 2.760D+00, 0.000D+00, 3.340D+00,
32031 & 0.000D+00, 2.700D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.460D+00,
32032 & 0.000D+00, 2.090D+00, 0.000D+00, 1.620D+00, 0.000D+00, 1.620D+00,
32033 & 0.000D+00, 1.830D+00, 0.000D+00, 1.730D+00, 0.000D+00, 1.350D+00,
32034 & 0.000D+00, 1.540D+00, 0.000D+00, 1.280D+00, 2.600D-01, 8.800D-01,
32035 & 1.900D-01, 1.350D+00,-5.000D-02, 1.520D+00,-9.000D-02, 1.170D+00,
32036 & 4.000D-02, 1.240D+00, 2.900D-01, 1.090D+00, 2.600D-01, 1.170D+00,
32037 & 2.300D-01, 1.150D+00,-8.000D-02, 1.350D+00, 3.400D-01, 1.050D+00,
32038 & 2.800D-01, 1.270D+00, 0.000D+00, 1.050D+00, 0.000D+00, 1.000D+00,
32039 & 9.000D-02, 1.200D+00, 2.000D-01, 1.400D+00, 9.300D-01, 1.000D+00,
32040 &-2.000D-01, 1.190D+00, 9.000D-02, 9.700D-01, 0.000D+00, 9.200D-01,
32041 & 1.100D-01, 6.800D-01, 5.000D-02, 6.800D-01,-2.200D-01, 7.900D-01,
32042 & 9.000D-02, 6.900D-01, 1.000D-02, 7.200D-01, 0.000D+00, 4.000D-01,
32043 & 1.600D-01, 7.300D-01, 0.000D+00, 4.600D-01, 1.700D-01, 8.900D-01,
32044 & 0.000D+00, 7.900D-01, 0.000D+00, 8.900D-01, 0.000D+00, 8.100D-01,
32045 &-6.000D-02, 6.900D-01,-2.000D-01, 7.100D-01,-1.200D-01, 7.200D-01,
32046 & 0.000D+00, 7.700D-01/
32047 DATA ( PNCOOK(I),I = 1, 90 ) /
32048 & 0.000D+00, 5.980D+00, 0.000D+00, 2.770D+00, 0.000D+00, 3.160D+00,
32049 & 0.000D+00, 3.010D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.670D+00,
32050 & 0.000D+00, 1.800D+00, 0.000D+00, 1.670D+00, 0.000D+00, 1.860D+00,
32051 & 0.000D+00, 2.040D+00, 0.000D+00, 1.640D+00, 0.000D+00, 1.440D+00,
32052 & 0.000D+00, 1.540D+00, 0.000D+00, 1.300D+00, 0.000D+00, 1.270D+00,
32053 & 0.000D+00, 1.290D+00, 8.000D-02, 1.410D+00,-8.000D-02, 1.500D+00,
32054 &-5.000D-02, 2.240D+00,-4.700D-01, 1.430D+00,-1.500D-01, 1.440D+00,
32055 & 6.000D-02, 1.560D+00, 2.500D-01, 1.570D+00,-1.600D-01, 1.460D+00,
32056 & 0.000D+00, 9.300D-01, 1.000D-02, 6.200D-01,-5.000D-01, 1.420D+00,
32057 & 1.300D-01, 1.520D+00,-6.500D-01, 8.000D-01,-8.000D-02, 1.290D+00,
32058 &-4.700D-01, 1.250D+00,-4.400D-01, 9.700D-01, 8.000D-02, 1.650D+00,
32059 &-1.100D-01, 1.260D+00,-4.600D-01, 1.060D+00, 2.200D-01, 1.550D+00,
32060 &-7.000D-02, 1.370D+00, 1.000D-01, 1.200D+00,-2.700D-01, 9.200D-01,
32061 &-3.500D-01, 1.190D+00, 0.000D+00, 1.050D+00,-2.500D-01, 1.610D+00,
32062 &-2.100D-01, 9.000D-01,-2.100D-01, 7.400D-01,-3.800D-01, 7.200D-01/
32063 DATA ( PNCOOK(I),I = 91, INCOOK ) /
32064 &-3.400D-01, 9.200D-01,-2.600D-01, 9.400D-01, 1.000D-02, 6.500D-01,
32065 &-3.600D-01, 8.300D-01, 1.100D-01, 6.700D-01, 5.000D-02, 1.000D+00,
32066 & 5.100D-01, 1.040D+00, 3.300D-01, 6.800D-01,-2.700D-01, 8.100D-01,
32067 & 9.000D-02, 7.500D-01, 1.700D-01, 8.600D-01, 1.400D-01, 1.100D+00,
32068 &-2.200D-01, 8.400D-01,-4.700D-01, 4.800D-01, 2.000D-02, 8.800D-01,
32069 & 2.400D-01, 5.200D-01, 2.700D-01, 4.100D-01,-5.000D-02, 3.800D-01,
32070 & 1.500D-01, 6.700D-01, 0.000D+00, 6.100D-01, 0.000D+00, 7.800D-01,
32071 & 0.000D+00, 6.700D-01, 0.000D+00, 6.700D-01, 0.000D+00, 7.900D-01,
32072 & 0.000D+00, 6.000D-01, 4.000D-02, 6.400D-01,-6.000D-02, 4.500D-01,
32073 & 5.000D-02, 2.600D-01,-2.200D-01, 3.900D-01, 0.000D+00, 3.900D-01/
32074 DATA ( SZCOOK(I),I = 1, 98) /
32075 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32076 & 0.000D+00, 0.000D+00,-1.100D-01,-8.100D-01,-2.910D+00,-4.170D+00,
32077 &-5.720D+00,-7.800D+00,-8.970D+00,-9.700D+00,-1.010D+01,-1.070D+01,
32078 &-1.138D+01,-1.207D+01,-1.255D+01,-1.324D+01,-1.393D+01,-1.471D+01,
32079 &-1.553D+01,-1.637D+01,-1.736D+01,-1.860D+01,-1.870D+01,-1.801D+01,
32080 &-1.787D+01,-1.708D+01,-1.660D+01,-1.675D+01,-1.650D+01,-1.635D+01,
32081 &-1.622D+01,-1.641D+01,-1.689D+01,-1.643D+01,-1.668D+01,-1.673D+01,
32082 &-1.745D+01,-1.729D+01,-1.744D+01,-1.782D+01,-1.862D+01,-1.827D+01,
32083 &-1.939D+01,-1.991D+01,-1.914D+01,-1.826D+01,-1.740D+01,-1.642D+01,
32084 &-1.577D+01,-1.437D+01,-1.391D+01,-1.310D+01,-1.311D+01,-1.143D+01,
32085 &-1.089D+01,-1.075D+01,-1.062D+01,-1.041D+01,-1.021D+01,-9.850D+00,
32086 &-9.470D+00,-9.030D+00,-8.610D+00,-8.130D+00,-7.460D+00,-7.480D+00,
32087 &-7.200D+00,-7.130D+00,-7.060D+00,-6.780D+00,-6.640D+00,-6.640D+00,
32088 &-7.680D+00,-7.890D+00,-8.410D+00,-8.490D+00,-7.880D+00,-6.300D+00,
32089 &-5.470D+00,-4.780D+00,-4.370D+00,-4.170D+00,-4.130D+00,-4.320D+00,
32090 &-4.550D+00,-5.040D+00,-5.280D+00,-6.060D+00,-6.280D+00,-6.870D+00,
32091 &-7.200D+00,-7.740D+00/
32092 DATA ( SNCOOK(I),I = 1, 90 ) /
32093 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32094 & 0.000D+00, 0.000D+00, 1.030D+01, 5.660D+00, 6.800D+00, 7.530D+00,
32095 & 7.550D+00, 7.210D+00, 7.440D+00, 8.070D+00, 8.940D+00, 9.810D+00,
32096 & 1.060D+01, 1.139D+01, 1.254D+01, 1.368D+01, 1.434D+01, 1.419D+01,
32097 & 1.383D+01, 1.350D+01, 1.300D+01, 1.213D+01, 1.260D+01, 1.326D+01,
32098 & 1.413D+01, 1.492D+01, 1.552D+01, 1.638D+01, 1.716D+01, 1.755D+01,
32099 & 1.803D+01, 1.759D+01, 1.903D+01, 1.871D+01, 1.880D+01, 1.899D+01,
32100 & 1.846D+01, 1.825D+01, 1.776D+01, 1.738D+01, 1.672D+01, 1.562D+01,
32101 & 1.438D+01, 1.288D+01, 1.323D+01, 1.381D+01, 1.490D+01, 1.486D+01,
32102 & 1.576D+01, 1.620D+01, 1.762D+01, 1.773D+01, 1.816D+01, 1.867D+01,
32103 & 1.969D+01, 1.951D+01, 2.017D+01, 1.948D+01, 1.998D+01, 1.983D+01,
32104 & 2.020D+01, 1.972D+01, 1.987D+01, 1.924D+01, 1.844D+01, 1.761D+01,
32105 & 1.710D+01, 1.616D+01, 1.590D+01, 1.533D+01, 1.476D+01, 1.354D+01,
32106 & 1.263D+01, 1.065D+01, 1.010D+01, 8.890D+00, 1.025D+01, 9.790D+00,
32107 & 1.139D+01, 1.172D+01, 1.243D+01, 1.296D+01, 1.343D+01, 1.337D+01/
32108 DATA ( SNCOOK(I),I = 91, INCOOK ) /
32109 & 1.296D+01, 1.211D+01, 1.192D+01, 1.100D+01, 1.080D+01, 1.042D+01,
32110 & 1.039D+01, 9.690D+00, 9.270D+00, 8.930D+00, 8.570D+00, 8.020D+00,
32111 & 7.590D+00, 7.330D+00, 7.230D+00, 7.050D+00, 7.420D+00, 6.750D+00,
32112 & 6.600D+00, 6.380D+00, 6.360D+00, 6.490D+00, 6.250D+00, 5.850D+00,
32113 & 5.480D+00, 4.530D+00, 4.300D+00, 3.390D+00, 2.350D+00, 1.660D+00,
32114 & 8.100D-01, 4.600D-01,-9.600D-01,-1.690D+00,-2.530D+00,-3.160D+00,
32115 &-1.870D+00,-4.100D-01, 7.100D-01, 1.660D+00, 2.620D+00, 3.220D+00,
32116 & 3.760D+00, 4.100D+00, 4.460D+00, 4.830D+00, 5.090D+00, 5.180D+00,
32117 & 5.170D+00, 5.100D+00, 5.010D+00, 4.970D+00, 5.090D+00, 5.030D+00,
32118 & 4.930D+00, 5.280D+00, 5.490D+00, 5.500D+00, 5.370D+00, 5.300D+00/
32119 DATA LDEFOZ / 53*.FALSE.,25*.TRUE.,7*.FALSE.,13*.TRUE. /
32120 DATA LDEFON / 85*.FALSE.,37*.TRUE.,7*.FALSE.,21*.TRUE. /
32121*=== End of Block Data Bdevap =========================================*
32122 END
32123
32124*$ CREATE DT_BDNOPT.FOR
32125*COPY DT_BDNOPT
32126*
32127*=== bdnopt ===========================================================*
32128*== *
32129 BLOCK DATA DT_BDNOPT
32130
32131C INCLUDE '(DBLPRC)'
32132* DBLPRC.ADD
32133 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32134 SAVE
32135* (original name: GLOBAL)
32136 PARAMETER ( KALGNM = 2 )
32137 PARAMETER ( ANGLGB = 5.0D-16 )
32138 PARAMETER ( ANGLSQ = 2.5D-31 )
32139 PARAMETER ( AXCSSV = 0.2D+16 )
32140 PARAMETER ( ANDRFL = 1.0D-38 )
32141 PARAMETER ( AVRFLW = 1.0D+38 )
32142 PARAMETER ( AINFNT = 1.0D+30 )
32143 PARAMETER ( AZRZRZ = 1.0D-30 )
32144 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32145 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32146 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32147 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32148 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32149 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32150 PARAMETER ( CSNNRM = 2.0D-15 )
32151 PARAMETER ( DMXTRN = 1.0D+08 )
32152 PARAMETER ( ZERZER = 0.D+00 )
32153 PARAMETER ( ONEONE = 1.D+00 )
32154 PARAMETER ( TWOTWO = 2.D+00 )
32155 PARAMETER ( THRTHR = 3.D+00 )
32156 PARAMETER ( FOUFOU = 4.D+00 )
32157 PARAMETER ( FIVFIV = 5.D+00 )
32158 PARAMETER ( SIXSIX = 6.D+00 )
32159 PARAMETER ( SEVSEV = 7.D+00 )
32160 PARAMETER ( EIGEIG = 8.D+00 )
32161 PARAMETER ( ANINEN = 9.D+00 )
32162 PARAMETER ( TENTEN = 10.D+00 )
32163 PARAMETER ( HLFHLF = 0.5D+00 )
32164 PARAMETER ( ONETHI = ONEONE / THRTHR )
32165 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32166 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32167 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32168 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32169 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32170 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32171 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32172 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32173 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32174 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32175 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32176 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32177 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32178 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32179 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32180 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32181 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32182 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32183 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32184 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32185 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32186 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32187 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32188 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32189 PARAMETER ( BOLTZM = 1.380658 D-23 )
32190 PARAMETER ( AMELGR = 9.1093897 D-28 )
32191 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32192 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32193 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32194 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32195 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32196 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32197 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32198 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32199 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32200 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32201 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32202 PARAMETER ( PLABRC = 0.197327053 D+00 )
32203 PARAMETER ( AMELCT = 0.51099906 D-03 )
32204 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32205 PARAMETER ( AMMUON = 0.105658389 D+00 )
32206 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32207 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32208 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32209 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32210 & * 1.D-09 )
32211 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32212 PARAMETER ( BLTZMN = 8.617385 D-14 )
32213 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32214 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32215 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32216 PARAMETER ( SIN2TW = 0.2319 D+00 )
32217 PARAMETER ( GEVMEV = 1.0 D+03 )
32218 PARAMETER ( EMVGEV = 1.0 D-03 )
32219 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32220 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32221 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32222 LOGICAL LGBIAS, LGBANA
32223 COMMON /FKGLOB/ LGBIAS, LGBANA
32224C INCLUDE '(DIMPAR)'
32225* DIMPAR.ADD
32226 PARAMETER ( MXXRGN = 5000 )
32227 PARAMETER ( MXXMDF = 82 )
32228 PARAMETER ( MXXMDE = 54 )
32229 PARAMETER ( MFSTCK = 1000 )
32230 PARAMETER ( MESTCK = 100 )
32231 PARAMETER ( NELEMX = 80 )
32232 PARAMETER ( MPDPDX = 8 )
32233 PARAMETER ( ICOMAX = 180 )
32234 PARAMETER ( NSTBIS = 304 )
32235 PARAMETER ( IDMAXP = 220 )
32236 PARAMETER ( IDMXDC = 640 )
32237 PARAMETER ( MKBMX1 = 1 )
32238 PARAMETER ( MKBMX2 = 1 )
32239C INCLUDE '(IOUNIT)'
32240* IOUNIT.ADD
32241 PARAMETER ( LUNIN = 5 )
32242 PARAMETER ( LUNOUT = 6 )
32243**sr 19.5. set error output-unit from 15 to 6
32244 PARAMETER ( LUNERR = 6 )
32245 PARAMETER ( LUNBER = 14 )
32246 PARAMETER ( LUNECH = 8 )
32247 PARAMETER ( LUNFLU = 13 )
32248 PARAMETER ( LUNGEO = 16 )
32249 PARAMETER ( LUNPMF = 12 )
32250 PARAMETER ( LUNRAN = 2 )
32251 PARAMETER ( LUNXSC = 9 )
32252 PARAMETER ( LUNDET = 17 )
32253 PARAMETER ( LUNRAY = 10 )
32254 PARAMETER ( LUNRDB = 1 )
32255 PARAMETER ( LUNPGO = 7 )
32256 PARAMETER ( LUNPGS = 4 )
32257 PARAMETER ( LUNSCR = 3 )
32258*
32259*----------------------------------------------------------------------*
32260* *
32261* Created on 20 september 1989 by Alfredo Ferrari - Infn Milan *
32262* *
32263* Last change on 20-apr-95 by Alfredo Ferrari *
32264* *
32265*----------------------------------------------------------------------*
32266*
32267C INCLUDE '(BLNKCM)'
32268* BLNKCM.ADD
32269**sr 17.5. commented since not used here
32270C PARAMETER ( NBLNMX = 1100000 )
32271C DIMENSION GMSTOR ( NBLNMX ), BRMBRR ( NBLNMX ), BRMEXP ( NBLNMX ),
32272C & BRMSIG ( NBLNMX ), SIGGTT ( KALGNM*NBLNMX ),
32273C & COMSCO ( NBLNMX ), LBSTOR ( KALGNM*NBLNMX )
32274C REAL SIGGTT
32275C LOGICAL LBSTOR
32276C COMMON NSTOR ( KALGNM*NBLNMX )
32277**
32278**sr 18.5. commented since not used for evap.
32279C COMMON / ADDRCM / MBLNMX, KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST,
32280C & KISBGN, KISLST, KDTBGN, KDTLST, KUBBGN, KUBLST,
32281C & KUXBGN, KUXLST, KTCBGN, KTCLST, KRNBGN, KRNLST,
32282C & KYLBGN, KYLLST, KXSBGN, KXSLST, KIHBGN, KIHLST,
32283C & KINBGN, KINLST, KIEBGN, KIELST, KETBGN, KETLST,
32284C & KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32285C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST,
32286C & KWLBGN, KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST,
32287C & KWSBGN, KWSLST, KNDBGN, KNDLST, KDPBGN, KDPLST,
32288C & KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN, KBRLST,
32289C & KTMBGN
32290**
32291
32292C EQUIVALENCE ( NSTOR (1), GMSTOR (1) )
32293C EQUIVALENCE ( NSTOR (1), BRMBRR (1) )
32294C EQUIVALENCE ( NSTOR (1), BRMEXP (1) )
32295C EQUIVALENCE ( NSTOR (1), BRMSIG (1) )
32296C EQUIVALENCE ( NSTOR (1), COMSCO (1) )
32297C EQUIVALENCE ( NSTOR (1), SIGGTT (1) )
32298C EQUIVALENCE ( NSTOR (1), LBSTOR (1) )
32299C INCLUDE '(BLNTMP)'
32300* BLNTMP.ADD
32301**sr 18.5. commented since not used for evap.
32302C COMMON / BLNTMP / KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM,
32303C & KGCBTM, KGDWTM, KBDWTM, KWLOTM, KWHITM, KWMUTM,
32304C & KWSHTM, KEXTTM, KSTXTM, KSTNTM, KECTTM, KPCTTM,
32305C & KLPBTM, NXXRGN
32306**
32307C INCLUDE '(CMMDNR)'
32308* CMMDNR.ADD
32309**sr 18.5. commented since not used for evap.
32310C LOGICAL LFLDNR
32311C COMMON / CMMDNR / DDNEAR, LFLDNR
32312**
32313C INCLUDE '(CTITLE)'
32314* CTITLE.ADD
32315**sr 18.5. commented since not used for evap.
32316C CHARACTER RUNTIT*80, RUNTIM*32, RUNKEY*10
32317C COMMON / CTITLE / RUNTIT, RUNTIM, RUNKEY
32318C COMMON / CEXPCK / ITEXPI, ITEXMX
32319**
32320C INCLUDE '(DETECT)'
32321* DETECT.ADD
32322**sr 18.5. commented since not used for evap.
32323C PARAMETER (NRGNMX = 10)
32324C PARAMETER (NDTCMX = 10)
32325C PARAMETER (NSCRMX = 10)
32326C PARAMETER (NDTBIN = 1024)
32327C CHARACTER*10 TITDET,TITSCO
32328C LOGICAL LDTCTR
32329C COMMON /DETCT/ EDTMIN(NDTCMX), EDTBIN(NDTCMX), EDTCUT(NDTCMX),
32330C & KDTREG(NRGNMX,NDTCMX), KDTDET(NDTCMX,NSCRMX),
32331C & NDTSCO, NDTDET, LDTCTR, IDTREG(MXXRGN),
32332C & KDTSCD(NSCRMX)
32333C COMMON /DETCH/ TITDET(NDTCMX), TITSCO(NSCRMX)
32334**
32335C INCLUDE '(DETLOC)'
32336* DETLOC.ADD
32337**sr 18.5. commented since not used for evap.
32338C PARAMETER (NDTCM2 = 10)
32339C COMMON /DETLOC/ ACCUMP (NDTCM2), ACCUMN (NDTCM2),
32340C & ICOINC(NDTCM2), NCLAS
32341**
32342C INCLUDE '(EMGTRN)'
32343* EMGTRN.ADD
32344**sr 18.5. commented since not used for evap.
32345C LOGICAL LMCSMG
32346C COMMON / EMGTRN / UMCSMG, VMCSMG, WMCSMG, LMCSMG
32347**
32348C INCLUDE '(EMSHO)'
32349* EMSHO.ADD
32350**sr 18.5. commented since not used for evap.
32351C LOGICAL EMFLO, EMFHLO, EMFELO, LIMPRE, LEXPTE
32352C COMMON /EMSHO/ EMFETH, EMFPTH, EMFHET, EMFHPT, EMFBIA, EMFLO,
32353C & EMFHLO, EMFELO, LIMPRE, LEXPTE
32354**
32355C INCLUDE '(EPISOR)'
32356* EPISOR.ADD
32357**sr 18.5. commented since not used for evap.
32358C LOGICAL LUSSRC
32359C COMMON/EPISOR/TKESUM,LUSSRC
32360**
32361* (original name: FHEAVY,FHEAVC)
32362 PARAMETER ( MXHEAV = 100 )
32363 CHARACTER*8 ANHEAV
32364 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
32365 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
32366 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
32367 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
32368 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
32369 & IBHEAV ( 12 ) , NPHEAV
32370 COMMON /FKFHVC/ ANHEAV ( 12 )
32371* (original name: FINUC)
32372 PARAMETER (MXP=999)
32373 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
32374 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
32375 & TKI (MXP), PLR (MXP), WEI (MXP),
32376 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
32377 & KPART (MXP)
32378C INCLUDE '(GENTHR)'
32379* GENTHR.ADD
32380**sr 18.5. commented since not used for evap.
32381C COMMON / GENTHR / PEANCT, PEAPIT, PLDNCT, PTHRSH (NALLWP),
32382C & PTHDFF (NALLWP), IJNUCR (NALLWP)
32383**
32384C INCLUDE '(LOWNEU)'
32385* LOWNEU.ADD
32386**sr 18.5. commented since not used for evap.
32387C PARAMETER ( MXGTHN = 15 )
32388C PARAMETER ( MXGLWN = 200 )
32389C PARAMETER ( MXSHPP = 5 )
32390C LOGICAL LCOMPN, LIMPRN, LBIASN, LDOWNN, LRECPR, LLOWWW, LLOWET
32391C CHARACTER*10 TITLOW
32392C COMMON / LOWNEU / ATOLOW (MXXMDF), WSHPLN (MXGLWN,MXSHPP), EXTWWL,
32393C & SHPIMP (MXGLWN), EXTETL (MXGLWN), WWAMFL,
32394C & VLLNTH (MXGTHN,MXXMDF), ABLNTH (MXGTHN,MXXMDF),
32395C & STLNTH (MXGTHN,MXXMDF), TMRTLN (MXXMDF),
32396C & TMNMLN (MXXMDF), ICHCPT (MXXMDF),
32397C & IGTMRT (MXXMDF), NEUMED (MXXMDF),
32398C & ID1MED (MXXMDF), ID2MED (MXXMDF),
32399C & ID3MED (MXXMDF), MGTMED (MXXMDF),
32400C & LCOMPN (MXXMDF), LRECPR (MXXMDF), KPRLOW, NMGP,
32401C & NMTG , IGRTHN, LIMPRN, LBIASN, LDOWNN, LLOWWW,
32402C & LLOWET, ICLMED, IKRBGN, INABGN, IDWBGN, IETBGN,
32403C & I0XSEC, IDXSEC, ISENAV, ISVELN, ISPNAV, IWWLWB,
32404C & IWWLWT, IPXBGN, NPXSEC
32405C COMMON / CHLWNT / TITLOW (MXXMDF)
32406**
32407C INCLUDE '(LTCLCM)'
32408* LTCLCM.ADD
32409**sr 18.5. commented since not used for evap.
32410C COMMON / LTCLCM / MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1
32411**
32412C INCLUDE '(MULBOU)'
32413* MULBOU.ADD
32414**sr 18.5. commented since not used for evap.
32415C LOGICAL LLDA , LAGAIN, LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32416C COMMON / MULBOU / UOLD , VOLD , WOLD , UMAG , VMAG , WMAG ,
32417C & UNORML, VNORML, WNORML, USENSE, VSENSE, WSENSE,
32418C & TSENSE, DDSENS, DSMALL, NSSENS, LLDA , LAGAIN,
32419C & LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32420**
32421C INCLUDE '(MULHD)'
32422* MULHD.ADD
32423**sr 18.5. commented since not used for evap.
32424C PARAMETER ( MXXPT1 = 1 )
32425C PARAMETER ( TIMESS = 2.00D+00 )
32426C PARAMETER ( TMSRLX = 1.50D+00 )
32427C PARAMETER ( EPSINS = 0.15D+00 )
32428C PARAMETER ( EPSRLX = 0.50D+00 )
32429C PARAMETER ( SQEPSN = 0.3872983346207417 D+00 )
32430C PARAMETER ( SQEPSR = 0.7071067811865475 D+00 )
32431C PARAMETER ( PARNSI = 1.732050807568877 D+00 * SQEPSN )
32432C PARAMETER ( PRNSR0 = 1.732050807568877 D+00 * SQEPSR )
32433C PARAMETER ( R0NCMS = 1.20 D+00 )
32434C LOGICAL LTOPT, LSRCRH, LNSCRH
32435C COMMON / MULHD / BLCC ( MXXMDF ), BLCCRA ( MXXMDF ),
32436C & XCC ( MXXMDF ), ZTILDE ( MXXMDF, 0:MXXPT1 ),
32437C & ALPZTL ( MXXMDF, 0:MXXPT1 ), RLDU ( MXXMDF ),
32438C & ALPZT2 ( MXXMDF, 0:MXXPT1 ), TEFF0 ( MXXMDF ),
32439C & XR0 ( MXXMDF ), ECUTM ( MXXMDF, 39, 2 ),
32440C & ESTEPF ( MXXMDF ), HTHNSZ ( MXXMDF, 39 ),
32441C & AE1O3 ( MXXMDF ), PARNSR ( MXXMDF ),
32442C & HEESLI ( MXXMDF ), THMSPR, THMSSC, HMSAMP,
32443C & HMREJE, LSRCRH ( MXXMDF ), LNSCRH ( MXXMDF ),
32444C & LTOPT ( MXXMDF ), NFSCAT
32445**
32446* (original name: PAREVT)
32447 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
32448 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
32449 PARAMETER ( NALLWP = 39 )
32450 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
32451 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
32452 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
32453 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
32454* (original name: RESNUC)
32455 LOGICAL LRNFSS, LFRAGM
32456 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
32457 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
32458 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
32459 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
32460 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
32461 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
32462 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
32463 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
32464 & LFRAGM
32465C INCLUDE '(SCOHLP)'
32466* SCOHLP.ADD
32467**sr 18.5. commented since not used for evap.
32468C LOGICAL LSCZER
32469C COMMON / SCOHLP / ISCRNG, JSCRNG, LSCZER
32470**
32471C INCLUDE '(TRACKR)'
32472* TRACKR.ADD
32473**sr 18.5. commented since not used for evap.
32474C PARAMETER ( MXTRCK = 2500 )
32475C LOGICAL LFSSSC
32476C COMMON / TRACKR / XTRACK ( 0:MXTRCK ), YTRACK ( 0:MXTRCK ),
32477C & ZTRACK ( 0:MXTRCK ), TTRACK ( MXTRCK ),
32478C & DTRACK ( MXTRCK ), ETRACK, PTRACK, WTRACK,
32479C & ATRACK, CTRACK, AKSHRT, AKLONG, WSCRNG,
32480C & NTRACK, MTRACK, JTRACK, KTRACK, MMTRCK,
32481C & LT1TRK, LT2TRK, LTRACK, LLOUSE, LFSSSC
32482**
32483C INCLUDE '(USRBDX)'
32484* USRBDX.ADD
32485**sr 18.5. commented since not used for evap.
32486C PARAMETER ( MXUSBX = 600 )
32487C LOGICAL LUSBDX, LFUSBX, LWUSBX, LLNUSX
32488C CHARACTER*10 TITUSX
32489C COMMON /USRBX/ EBXLOW(MXUSBX), EBXHGH(MXUSBX), ABXLOW(MXUSBX),
32490C & ABXHGH(MXUSBX), DEBXBN(MXUSBX), DABXBN(MXUSBX),
32491C & AUSBDX(MXUSBX),
32492C & NEBXBN(MXUSBX), NABXBN(MXUSBX), NR1USX(MXUSBX),
32493C & NR2USX(MXUSBX), ITUSBX(MXUSBX), IDUSBX(MXUSBX),
32494C & KBUSBX(MXUSBX), IPUSBX(MXUSBX), IGMUSX(MXUSBX),
32495C & LFUSBX(MXUSBX), LWUSBX(MXUSBX), LLNUSX(MXUSBX),
32496C & NUSRBX, LUSBDX
32497C COMMON /USXCH/ TITUSX(MXUSBX)
32498**
32499C INCLUDE '(USRBIN)'
32500* USRBIN.ADD
32501**sr 18.5. commented since not used for evap.
32502C PARAMETER ( MXUSBN = 100 )
32503C LOGICAL LUSBIN, LEVTBN, LNTZER, LUSEVT, LUSTKB, LTRKBN
32504C CHARACTER*10 TITUSB
32505C COMMON /USRBN/ XLOW (MXUSBN), XHIGH (MXUSBN), YLOW (MXUSBN),
32506C & YHIGH (MXUSBN), ZLOW (MXUSBN), ZHIGH (MXUSBN),
32507C & DXUSBN(MXUSBN), DYUSBN(MXUSBN), DZUSBN(MXUSBN),
32508C & TCUSBN(MXUSBN), BKUSBN(MXUSBN), B2USBN(MXUSBN),
32509C & NXBIN (MXUSBN), NYBIN (MXUSBN), NZBIN (MXUSBN),
32510C & ITUSBN(MXUSBN), IDUSBN(MXUSBN), KBUSBN(MXUSBN),
32511C & IPUSBN(MXUSBN), LEVTBN(MXUSBN), LNTZER(MXUSBN),
32512C & LTRKBN(MXUSBN), NUSRBN, LUSBIN, LUSEVT, LUSTKB
32513C COMMON /USRCH/ TITUSB(MXUSBN)
32514**
32515C INCLUDE '(USRSNC)'
32516* USRSNC.ADD
32517**sr 18.5. commented since not used for evap.
32518C PARAMETER ( MXRSNC = 400 )
32519C PARAMETER ( NMZMIN = -5 )
32520C LOGICAL LURSNC
32521C CHARACTER*10 TIURSN
32522C COMMON /USRSNC/ VURSNC(MXRSNC), IZRHGH(MXRSNC), IMRHGH(MXRSNC),
32523C & NRURSN(MXRSNC), ITURSN(MXRSNC), KBURSN(MXRSNC),
32524C & IPURSN(MXRSNC), NURSNC, LURSNC
32525C COMMON /USRSCH/ TIURSN(MXRSNC)
32526C INCLUDE '(USRTRC)'
32527* USRTRC.ADD
32528**sr 18.5. commented since not used for evap.
32529C PARAMETER ( MXUSTC = 400 )
32530C LOGICAL LUSRTC, LUSTRK, LUSCLL, LLNUTC
32531C CHARACTER*10 TITUTC
32532C COMMON /USRTC/ ETCLOW(MXUSTC), ETCHGH(MXUSTC), DETCBN(MXUSTC),
32533C & VUSRTC(MXUSTC),
32534C & IUSTRK(MXUSTC), IUSCLL(MXUSTC), NETCBN(MXUSTC),
32535C & NRUSTC(MXUSTC), ITUSTC(MXUSTC), IDUSTC(MXUSTC),
32536C & KBUSTC(MXUSTC), IPUSTC(MXUSTC), IGMUTC(MXUSTC),
32537C & LLNUTC(MXUSTC), NUSRTC, NUSTRK, NUSCLL, LUSRTC,
32538C & LUSTRK, LUSCLL
32539C COMMON /USTCH/ TITUTC(MXUSTC)
32540**
32541C INCLUDE '(USRYLD)'
32542* USRYLD.ADD
32543**sr 18.5. commented since not used for evap.
32544C PARAMETER ( MXUSYL = 500 )
32545C LOGICAL LUSRYL, LLNUYL, LSCUYL
32546C CHARACTER*10 TITUYL
32547C COMMON /USRYL/ EYLLOW(MXUSYL), EYLHGH(MXUSYL), DEYLBN(MXUSYL),
32548C & USNRYL(MXUSYL), SGUSYL(MXUSYL), AYLLOW(MXUSYL),
32549C & AYLHGH(MXUSYL), PUSRYL, UUSRYL, VUSRYL, WUSRYL,
32550C & ETXUYL, ETYUYL, ETZUYL, GAMUYL, SQSUYL, UCMUYL,
32551C & VCMUYL, WCMUYL, IJUSYL, JTUSYL,
32552C & NEYLBN(MXUSYL), NR1UYL(MXUSYL), NR2UYL(MXUSYL),
32553C & IXUSYL(MXUSYL), ITUSYL(MXUSYL), IDUSYL(MXUSYL),
32554C & KBUSYL(MXUSYL), IPUSYL(MXUSYL), IGMUYL(MXUSYL),
32555C & IEUSYL(MXUSYL), IAUSYL(MXUSYL), LLNUYL(MXUSYL),
32556C & NUSRYL, LUSRYL, LSCUYL
32557C COMMON /USYCH/ TITUYL(MXUSYL)
32558**
32559C INCLUDE '(WWINDW)'
32560* WWINDW.ADD
32561**sr 18.5. commented since not used for evap.
32562C PARAMETER ( MXWWSP = 3 )
32563C PARAMETER ( WWSPMX = 50.D+00 )
32564C LOGICAL LWWNDW, LWWPRM
32565C COMMON / WWINDW / ETHWW1 (NALLWP), ETHWW2 (NALLWP),
32566C & WWEXWD (NALLWP), EXTWWN (NALLWP),
32567C & IWLBGN, IWHBGN, IWMBGN, LWWNDW, LWWPRM
32568**
32569
32570* /blnkcm/
32571* *** If blank common dimension has to be superseded substitute in the
32572* *** following two lines the new dimension in real*8 units to Nblnmx
32573**sr 18.5. commented since not used for evap.
32574C PARAMETER (MXDUMM = KALGNM * NBLNMX)
32575C DATA KTMBGN / NBLNMX /
32576C DATA MBLNMX / MXDUMM /
32577C DATA KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST, KISBGN, KISLST,
32578C & KDTBGN, KDTLST, KUBBGN, KUBLST, KUXBGN, KUXLST, KTCBGN,
32579C & KTCLST, KRNBGN, KRNLST, KYLBGN, KYLLST, KXSBGN, KXSLST,
32580C & KIHBGN, KIHLST, KINBGN, KINLST, KIEBGN, KIELST, KETBGN,
32581C & KETLST, KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32582C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST, KWLBGN,
32583C & KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST, KWSBGN, KWSLST,
32584C & KDPBGN, KDPLST, KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN,
32585C & KBRLST / 57*0 /
32586
32587* /blntmp/
32588**sr 18.5. commented since not used for evap.
32589C DATA KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM, KGDWTM,
32590C & KBDWTM, KGCBTM, KWLOTM, KWHITM, KWMUTM, KWSHTM, KEXTTM,
32591C & KSTXTM, KSTNTM, KECTTM, KPCTTM, KLPBTM / 19*0 /
32592
32593* /cmmdnr/
32594**sr 18.5. commented since not used for evap.
32595C DATA DDNEAR / 0.D+00 /, LFLDNR / .FALSE. /
32596
32597* /ctitle/
32598**sr 18.5. commented since not used for evap.
32599C DATA RUNTIT (1:40) / '****************************************' /
32600C DATA RUNTIT(41:80) / '****************************************' /
32601C DATA ITEXPI, ITEXMX / 100000000, 150 /
32602* /detect/
32603**sr 18.5. commented since not used for evap.
32604C PARAMETER (NNN1 = NRGNMX*NDTCMX)
32605C PARAMETER (NNN2 = NSCRMX*NDTCMX)
32606C DATA LDTCTR /.FALSE./, NDTSCO /0/, NDTDET /0/
32607C DATA EDTMIN/NDTCMX*0.D0/, EDTBIN/NDTCMX*0.D0/, EDTCUT/NDTCMX*0.D0/
32608C DATA KDTREG/NNN1*0/, KDTDET/NNN2*0/, KDTSCD/NSCRMX*0/
32609C DATA TITDET/NDTCMX*' '/, TITSCO/NSCRMX*' '/
32610
32611* /detloc/
32612**sr 18.5. commented since not used for evap.
32613C DATA ACCUMP /NDTCM2*0.D0/, ACCUMN /NDTCM2*0.D0/, ICOINC /NDTCM2*0/
32614C DATA NCLAS /0/
32615
32616* /emgtrn/
32617**sr 18.5. commented since not used for evap.
32618C DATA LMCSMG / .FALSE. /
32619
32620* /emsho/
32621**sr 18.5. commented since not used for evap.
32622C DATA LIMPRE, LEXPTE / 2 * .FALSE. /
32623
32624* /episor/
32625**sr 18.5. commented since not used for evap.
32626C DATA TKESUM / 0.D+00 /, LUSSRC / .FALSE. /
32627
32628* /fheavy/
32629 DATA AMHEAV / 12 * 0.D+00 /
32630 DATA ANHEAV / 'NEUTRON ', 'PROTON ', 'DEUTERON', '3-H ',
32631 & '3-He ', '4-He ', 'H-FRAG-1', 'H-FRAG-2',
32632 & 'H-FRAG-3', 'H-FRAG-4', 'H-FRAG-5', 'H-FRAG-6'/
32633 DATA ICHEAV / 0, 1, 1, 1, 2, 2, 6*0 /,
32634 & IBHEAV / 1, 1, 2, 3, 3, 4, 6*0 /
32635 DATA NPHEAV / 0 /
32636
32637* /finuc/
32638 DATA NP / 0 /, TV / 0.D+00 /, TVCMS / 0.D+00 /, TVRECL / 0.D+00/,
32639 & TVHEAV / 0.D+00 /, TVBIND / 0.D+00 /
32640
32641* /genthr/
32642* Up to 20-apr-'95
32643* DATA PEANCT, PEAPIT / 2*1.D+00 /
32644* DATA PTHRSH / 16*5.D+00,2*2.5D+00,5.D+00,3*2.5D+00,8*5.D+00,
32645* & 9*2.5D+00 /
32646* DATA PTHDFF / 39*5.D+00 /
32647* & 9*2.5D+00 /
32648* New values:
32649**sr 18.5. commented since not used for evap.
32650C DATA PEANCT, PEAPIT / 1.3D+00, 1.1D+00 /
32651C DATA PTHRSH / 12*5.D+00, 2*3.5D+00, 2*5.D+00, 2*2.5D+00, 5.D+00,
32652C & 3*2.5D+00, 3.5D+00, 2*5.D+00, 3.5D+00, 4*5.D+00,
32653C & 9*2.5D+00 /
32654C DATA PTHDFF / 12*5.D+00, 2*3.5D+00, 8*5.D+00, 3.5D+00, 2*5.D+00,
32655C & 3.5D+00, 13*5.D+00 /
32656C DATA PLDNCT / 0.26D+00 /
32657C DATA IJNUCR / 16*1, 2*0, 1, 3*0, 8*1, 9*0 /
32658
32659* /lowneu/
32660**sr 18.5. commented since not used for evap.
32661C DATA WWAMFL / 10.D+00 /, EXTWWL / 1.D+00 /
32662C DATA IWWLWB, IWWLWT / 2 * 100000000 /
32663C DATA ICLMED, INABGN, IDWBGN, IETBGN / 4*0 /
32664C DATA IGRTHN / 1 /
32665C DATA LIMPRN / .FALSE. /, LBIASN / .FALSE. /, LDOWNN / .FALSE. /,
32666C & LLOWWW / .FALSE. /, LLOWET / .FALSE. /
32667
32668* /ltclcm/
32669**sr 18.5. commented since not used for evap.
32670C DATA MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1 / 6*0 /
32671
32672* /mulbou/
32673**sr 18.5. commented since not used for evap.
32674C DATA LLDA, LAGAIN, LSTNEW, LARTEF, LSENSE, LNORML, LMGNOR
32675C & / 7 * .FALSE. /
32676C DATA TSENSE / AINFNT /, NSSENS / -1 /
32677C DATA DSMALL / ANGLGB /
32678
32679* /mulhd/
32680**sr 18.5. commented since not used for evap.
32681C DATA LTOPT / MXXMDF * .FALSE. /, NFSCAT / 0 /
32682C DATA ESTEPF / MXXMDF * 0.1D+00 /
32683C DATA LSRCRH / MXXMDF * .FALSE. /, LNSCRH / MXXMDF * .FALSE. /
32684C DATA THMSPR / 0.02D+00 /, THMSSC / 1.D+00 /
32685
32686* /parevt/
32687 DATA DPOWER /-13.D+00 /, FSPRD0 / 0.6D+00 /, FSHPFN / 0.0D+00 /,
32688 & RN1GSC /-1.0D+00 /, RN2GSC /-1.0D+00 /
32689 DATA LDIFFR / .TRUE., .TRUE., 6 * .TRUE., .TRUE., 8 * .TRUE.,
32690 & .TRUE., 4 * .TRUE., .TRUE., 3 * .TRUE.,
32691 & 4 * .FALSE., 9 * .TRUE./
32692**sr 17.5.95
32693* default value for LEVPRT changed (reset sr 25.7.97)
32694* default value for LHEAVY changed 25.7.97
32695C DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32696C & LHEAVY / .FALSE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32697C & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32698C & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32699 DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32700 & LHEAVY / .TRUE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32701 & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32702 & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32703**
32704**sr 27.5.97
32705* default value for ILVMOD changed
32706C DATA ILVMOD / 0 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32707 DATA ILVMOD / 1 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32708**
32709
32710* /resnuc/
32711 DATA IPREEH / 0 /, IPRTRI / 0 /, IPRDEU / 0 /, IPR3HE / 0 /,
32712 & IPR4HE / 0 /
32713 DATA IEVAPL / 0 /, IEVAPH / 0 /, IEVNEU / 0 /, IEVPRO / 0 /,
32714 & IEVTRI / 0 /, IEVDEU / 0 /, IEV3HE / 0 /, IEV4HE / 0 /,
32715 & IDEEXG / 0 /
32716 DATA LRNFSS / .FALSE. /
32717
32718* /scohlp/
32719**sr 18.5. commented since not used for evap.
32720C DATA ISCRNG, JSCRNG / 2*0 /, LSCZER / .FALSE. /
32721
32722* /trackr/
32723**sr 18.5. commented since not used for evap.
32724C DATA ETRACK /0.D+00/, WTRACK /0.D+00/, ATRACK /0.D+00/,
32725C & CTRACK /0.D+00/, NTRACK /0/, MTRACK /0/, JTRACK /0/
32726
32727* /usrbin/
32728**sr 18.5. commented since not used for evap.
32729C DATA LUSBIN, LUSEVT, LUSTKB /3*.FALSE./, NUSRBN /0/
32730
32731* /usrbdx/
32732**sr 18.5. commented since not used for evap.
32733C DATA LUSBDX /.FALSE./, NUSRBX /0/
32734
32735* /usrsnc/
32736**sr 18.5. commented since not used for evap.
32737C DATA LURSNC /.FALSE./, NURSNC /0/
32738
32739* /usrtrc/
32740**sr 18.5. commented since not used for evap.
32741C DATA LUSRTC, LUSTRK, LUSCLL / 3*.FALSE. /
32742C DATA NUSRTC, NUSTRK, NUSCLL / 3*0 /
32743
32744* /usryld/
32745**sr 18.5. commented since not used for evap.
32746C DATA LUSRYL / .FALSE./, LSCUYL / .FALSE. /, NUSRYL /0/,
32747C & IJUSYL /0/, JTUSYL /0/
32748C DATA PUSRYL, UUSRYL, VUSRYL, WUSRYL / 4*ZERZER /
32749
32750* /wwindw/
32751**sr 18.5. commented since not used for evap.
32752C DATA IWLBGN, IWHBGN, IWMBGN / 3*0 /
32753C DATA LWWPRM / .TRUE. /
32754
32755*= end*block.bdnopt *
32756 END
32757
32758*$ CREATE DT_BDPREE.FOR
32759*COPY DT_BDPREE
32760*
32761*=== bdpree ===========================================================*
32762*
32763 BLOCK DATA DT_BDPREE
32764
32765C INCLUDE '(DBLPRC)'
32766* DBLPRC.ADD
32767 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32768 SAVE
32769* (original name: GLOBAL)
32770 PARAMETER ( KALGNM = 2 )
32771 PARAMETER ( ANGLGB = 5.0D-16 )
32772 PARAMETER ( ANGLSQ = 2.5D-31 )
32773 PARAMETER ( AXCSSV = 0.2D+16 )
32774 PARAMETER ( ANDRFL = 1.0D-38 )
32775 PARAMETER ( AVRFLW = 1.0D+38 )
32776 PARAMETER ( AINFNT = 1.0D+30 )
32777 PARAMETER ( AZRZRZ = 1.0D-30 )
32778 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32779 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32780 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32781 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32782 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32783 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32784 PARAMETER ( CSNNRM = 2.0D-15 )
32785 PARAMETER ( DMXTRN = 1.0D+08 )
32786 PARAMETER ( ZERZER = 0.D+00 )
32787 PARAMETER ( ONEONE = 1.D+00 )
32788 PARAMETER ( TWOTWO = 2.D+00 )
32789 PARAMETER ( THRTHR = 3.D+00 )
32790 PARAMETER ( FOUFOU = 4.D+00 )
32791 PARAMETER ( FIVFIV = 5.D+00 )
32792 PARAMETER ( SIXSIX = 6.D+00 )
32793 PARAMETER ( SEVSEV = 7.D+00 )
32794 PARAMETER ( EIGEIG = 8.D+00 )
32795 PARAMETER ( ANINEN = 9.D+00 )
32796 PARAMETER ( TENTEN = 10.D+00 )
32797 PARAMETER ( HLFHLF = 0.5D+00 )
32798 PARAMETER ( ONETHI = ONEONE / THRTHR )
32799 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32800 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32801 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32802 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32803 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32804 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32805 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32806 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32807 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32808 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32809 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32810 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32811 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32812 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32813 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32814 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32815 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32816 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32817 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32818 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32819 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32820 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32821 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32822 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32823 PARAMETER ( BOLTZM = 1.380658 D-23 )
32824 PARAMETER ( AMELGR = 9.1093897 D-28 )
32825 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32826 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32827 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32828 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32829 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32830 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32831 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32832 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32833 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32834 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32835 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32836 PARAMETER ( PLABRC = 0.197327053 D+00 )
32837 PARAMETER ( AMELCT = 0.51099906 D-03 )
32838 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32839 PARAMETER ( AMMUON = 0.105658389 D+00 )
32840 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32841 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32842 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32843 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32844 & * 1.D-09 )
32845 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32846 PARAMETER ( BLTZMN = 8.617385 D-14 )
32847 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32848 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32849 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32850 PARAMETER ( SIN2TW = 0.2319 D+00 )
32851 PARAMETER ( GEVMEV = 1.0 D+03 )
32852 PARAMETER ( EMVGEV = 1.0 D-03 )
32853 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32854 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32855 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32856 LOGICAL LGBIAS, LGBANA
32857 COMMON /FKGLOB/ LGBIAS, LGBANA
32858C INCLUDE '(DIMPAR)'
32859* DIMPAR.ADD
32860 PARAMETER ( MXXRGN = 5000 )
32861 PARAMETER ( MXXMDF = 82 )
32862 PARAMETER ( MXXMDE = 54 )
32863 PARAMETER ( MFSTCK = 1000 )
32864 PARAMETER ( MESTCK = 100 )
32865 PARAMETER ( NALLWP = 39 )
32866 PARAMETER ( NELEMX = 80 )
32867 PARAMETER ( MPDPDX = 8 )
32868 PARAMETER ( ICOMAX = 180 )
32869 PARAMETER ( NSTBIS = 304 )
32870 PARAMETER ( IDMAXP = 220 )
32871 PARAMETER ( IDMXDC = 640 )
32872 PARAMETER ( MKBMX1 = 1 )
32873 PARAMETER ( MKBMX2 = 1 )
32874C INCLUDE '(IOUNIT)'
32875* IOUNIT.ADD
32876 PARAMETER ( LUNIN = 5 )
32877 PARAMETER ( LUNOUT = 6 )
32878**sr 19.5. set error output-unit from 15 to 6
32879 PARAMETER ( LUNERR = 6 )
32880 PARAMETER ( LUNBER = 14 )
32881 PARAMETER ( LUNECH = 8 )
32882 PARAMETER ( LUNFLU = 13 )
32883 PARAMETER ( LUNGEO = 16 )
32884 PARAMETER ( LUNPMF = 12 )
32885 PARAMETER ( LUNRAN = 2 )
32886 PARAMETER ( LUNXSC = 9 )
32887 PARAMETER ( LUNDET = 17 )
32888 PARAMETER ( LUNRAY = 10 )
32889 PARAMETER ( LUNRDB = 1 )
32890 PARAMETER ( LUNPGO = 7 )
32891 PARAMETER ( LUNPGS = 4 )
32892 PARAMETER ( LUNSCR = 3 )
32893*
32894*----------------------------------------------------------------------*
32895* *
32896* Created on 16 september 1991 by Alfredo Ferrari & Paola Sala *
32897* Infn - Milan *
32898* *
32899* Last change on 03-feb-94 by Alfredo Ferrari *
32900* *
32901* *
32902*----------------------------------------------------------------------*
32903*
32904* (original name: CMPISG,CHPISG)
32905 PARAMETER ( TPPPI0 = 0.279656044337515D+00 )
32906 PARAMETER ( TNNPI0 = 0.279642680857450D+00 )
32907 PARAMETER ( TPPPIP = 0.292295207182790D+00 )
32908 PARAMETER ( TPPDEP = 0.287514778898469D+00 )
32909 PARAMETER ( TNNPIM = 0.286723140900975D+00 )
32910 PARAMETER ( TNNDEM = 0.281949292916434D+00 )
32911 PARAMETER ( TPNPI0 = 0.279456888147740D+00 )
32912 PARAMETER ( TPNDE0 = 0.274693916135245D+00 )
32913 PARAMETER ( TPNPIP = 0.292086756473890D+00 )
32914 PARAMETER ( TNPPI0 = 0.279842093144975D+00 )
32915 PARAMETER ( TNPDE0 = 0.275072555824202D+00 )
32916 PARAMETER ( TNPPIP = 0.292489370554958D+00 )
32917 PARAMETER ( PIRSMX = 1.2D+00 )
32918 PARAMETER ( NPIREA = 10 )
32919 PARAMETER ( NPIRTA = 68 )
32920 PARAMETER ( NPIRLN = 21 )
32921 PARAMETER ( NPIRLG = NPIRTA - NPIRLN )
32922 PARAMETER ( NPISIS = NPIRLN + 20 )
32923 PARAMETER ( NPISEX = NPIRLN + 21 )
32924 PARAMETER ( NPIIMN = 14 )
32925 PARAMETER ( NPIIRC = 6 )
32926 PARAMETER ( DELWLL = 0.035D+00 )
32927 CHARACTER CHPIRE*8
32928 LOGICAL LDLRES
32929 COMMON /FKCMPI/ PMNPIS, PMMPIS, PISPIS, PEXPIS, PMXPIS, DPPISG,
32930 & RTPISG, AMNPIS, AMMPIS, AISPIS, AEXPIS, AMXPIS,
32931 & ARPISG, BPISLO (NPIRLN:NPIRTA,NPIREA),
32932 & CPISLO (NPIRLN:NPIRTA,NPIREA), PPITHR (NPIREA),
32933 & SPISLO (NPIRLN:NPIRTA,NPIREA), APITHR (NPIREA),
32934 & SGPIIN (NPIIMN:NPIRTA,NPIIRC), RHPICR (1:5) ,
32935 & SGPICU (0:20,NPIRTA,NPIREA) , SGRTRS (NPIREA),
32936 & SGPIDF (0:20,NPIRTA,NPIREA) , BRREIN (NPIREA),
32937 & SGPIIS (NPIRTA,NPIREA) , BRREOU (NPIREA),
32938 & BRD3OU (2,2,-1:2), BRDEOU (2,-1:2),
32939 & SGABSR (2,2,4) , PRRSDL,
32940 & IPIREA (2,2,3:5) , IPIINE (2,3:5) , NPIRVR ,
32941 & KPIIRE (2,NPIREA), KPIORE (2,NPIREA) ,
32942 & JSTOKP (5), KPTOJS (23), ITTRRS (3:5), LDLRES
32943 COMMON /FKCHPI/ CHPIRE (NPIREA)
32944 DIMENSION SG2BRS (2,2), SGABSW (2,2), SG3BRS (2,2,2)
32945 EQUIVALENCE ( SG2BRS (1,1), SGABSR (1,1,1) )
32946 EQUIVALENCE ( SGABSW (1,1), SGABSR (1,1,2) )
32947 EQUIVALENCE ( SG3BRS (1,1,1), SGABSR (1,1,3) )
32948* (original name: FRBKCM)
32949 PARAMETER ( MXFFBK = 6 )
32950 PARAMETER ( MXZFBK = 9 )
32951 PARAMETER ( MXNFBK = 10 )
32952 PARAMETER ( MXAFBK = 16 )
32953 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
32954 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
32955 PARAMETER ( NXAFBK = MXAFBK + 1 )
32956 PARAMETER ( MXPSST = 300 )
32957 PARAMETER ( MXPSFB = 41000 )
32958 LOGICAL LFRMBK, LNCMSS
32959 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
32960 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
32961 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
32962 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
32963 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
32964 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
32965 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
32966 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
32967 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
32968* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
32969 PARAMETER ( PI = PIPIPI )
32970 PARAMETER ( PISQ = PIPISQ )
32971 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
32972 PARAMETER ( RZNUCL = 1.12 D+00 )
32973 PARAMETER ( RMSPRO = 0.8 D+00 )
32974 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
32975 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
32976 & / R0PROT )
32977 PARAMETER ( RLLE04 = RZNUCL )
32978 PARAMETER ( RLLE16 = RZNUCL )
32979 PARAMETER ( RLGT16 = RZNUCL )
32980 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
32981 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
32982 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
32983 PARAMETER ( SKLE04 = 1.4D+00 )
32984 PARAMETER ( SKLE16 = 1.9D+00 )
32985 PARAMETER ( SKGT16 = 2.4D+00 )
32986 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
32987 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
32988 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
32989 PARAMETER ( ALPHA0 = 0.1D+00 )
32990 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
32991 PARAMETER ( GAMSK0 = 0.9D+00 )
32992 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
32993 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
32994 PARAMETER ( POTBA0 = 1.D+00 )
32995 PARAMETER ( PNFRAT = 1.533D+00 )
32996 PARAMETER ( RADPIM = 0.035D+00 )
32997 PARAMETER ( RDPMHL = 14.D+00 )
32998 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
32999 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
33000 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
33001 PARAMETER ( AP0PFS = 0.5D+00 )
33002 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
33003 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
33004 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
33005 PARAMETER ( MXSCIN = 50 )
33006 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
33007 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
33008 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
33009 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
33010 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
33011 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
33012 & PFRTAB (2:260)
33013 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
33014 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
33015 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
33016 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
33017 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
33018 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
33019 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
33020 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
33021 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
33022 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
33023 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
33024 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
33025 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
33026 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
33027 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
33028 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
33029 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
33030 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
33031 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
33032 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
33033 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
33034 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
33035 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
33036 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
33037 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
33038 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
33039 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
33040 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
33041 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
33042 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
33043 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
33044 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
33045 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
33046 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
33047 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
33048 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
33049 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
33050 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
33051 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
33052 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
33053 & LNCDCY, LNUSCT
33054 DIMENSION AWSTAB (2:260), SIGMAB (3)
33055 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
33056 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
33057 EQUIVALENCE ( RHOIPP, RHONCP (1) )
33058 EQUIVALENCE ( RHOINP, RHONCP (2) )
33059 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
33060 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
33061 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
33062 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
33063 EQUIVALENCE ( RHOIPT, RHONCT (1) )
33064 EQUIVALENCE ( RHOINT, RHONCT (2) )
33065 EQUIVALENCE ( OMALHL, SK3PAR )
33066 EQUIVALENCE ( ALPHAL, HABPAR )
33067 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
33068 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
33069 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
33070 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
33071 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
33072 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
33073 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
33074 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
33075 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
33076 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
33077 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
33078 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
33079 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
33080* (original name: NUCLEV)
33081 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
33082 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
33083 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
33084 & CUMRAD (0:160,2), RUSNUC (2),
33085 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
33086 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
33087 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
33088 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
33089 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
33090 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
33091 & LFLVSL, LRLVSL, LEQSBL
33092 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
33093 & MGSSPR (19) , MGSSNE (25)
33094 EQUIVALENCE ( RUSNUC (1), RUSPRO )
33095 EQUIVALENCE ( RUSNUC (2), RUSNEU )
33096 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
33097 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
33098 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
33099 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
33100 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
33101 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
33102 EQUIVALENCE ( NTANUC (1), NTAPRO )
33103 EQUIVALENCE ( NTANUC (2), NTANEU )
33104 EQUIVALENCE ( NAVNUC (1), NAVPRO )
33105 EQUIVALENCE ( NAVNUC (2), NAVNEU )
33106 EQUIVALENCE ( NLSNUC (1), NLSPRO )
33107 EQUIVALENCE ( NLSNUC (2), NLSNEU )
33108 EQUIVALENCE ( NCONUC (1), NCOPRO )
33109 EQUIVALENCE ( NCONUC (2), NCONEU )
33110 EQUIVALENCE ( NSKNUC (1), NSKPRO )
33111 EQUIVALENCE ( NSKNUC (2), NSKNEU )
33112 EQUIVALENCE ( NHANUC (1), NHAPRO )
33113 EQUIVALENCE ( NHANUC (2), NHANEU )
33114 EQUIVALENCE ( NUSNUC (1), NUSPRO )
33115 EQUIVALENCE ( NUSNUC (2), NUSNEU )
33116 EQUIVALENCE ( NACNUC (1), NACPRO )
33117 EQUIVALENCE ( NACNUC (2), NACNEU )
33118 EQUIVALENCE ( JMXNUC (1), JMXPRO )
33119 EQUIVALENCE ( JMXNUC (2), JMXNEU )
33120 EQUIVALENCE ( MAGNUC (1), MAGPRO )
33121 EQUIVALENCE ( MAGNUC (2), MAGNEU )
33122* (original name: PARNUC)
33123 PARAMETER ( PIGRK = PIPIPI )
33124 PARAMETER ( ALEVEL = 8.D-03 )
33125 PARAMETER ( RCNUCL = 1.12D+00 )
33126 PARAMETER ( R0SIG = 1.3D+00 )
33127 PARAMETER ( R0SIGK = 1.5D+00 )
33128 PARAMETER ( RCOULB = 1.5D+00 )
33129 PARAMETER ( COULBH = 0.88235D-03 )
33130 PARAMETER ( RHONU0 = 0.75D+00 / PIGRK / RCNUCL / RCNUCL / RCNUCL )
33131 PARAMETER ( TAUFO0 = 10.0D+00 )
33132 PARAMETER ( EKEEXP = 0.03D+00 )
33133 PARAMETER ( EKREXP = 0.05D+00 )
33134 PARAMETER ( EKEMNM = 0.01D+00 )
33135 PARAMETER ( NCPMX = 120 )
33136 COMMON /FKPARN/ EKORI , PXORI , PYORI , PZORI , PTORI , TAUFOR,
33137 & ENNUC (NCPMX), PNUCL (NCPMX), EKFNUC (NCPMX),
33138 & XSTNUC (NCPMX), YSTNUC (NCPMX), ZSTNUC (NCPMX),
33139 & PXNUCL (NCPMX), PYNUCL (NCPMX), PZNUCL (NCPMX),
33140 & RSTNUC (NCPMX), FREEPA (NCPMX), CRRPAN (NCPMX),
33141 & CRRPAP (NCPMX), BSTNUC (NCPMX), AGENUC (NCPMX),
33142 & TAUFPA (NCPMX), RHNUCL(NCPMX,2), BNDGAV, DEFMIN,
33143 & KPNUCL (NCPMX), KRFNUC (NCPMX), ILINUC (NCPMX),
33144 & INUCTS (NCPMX), ISFNUC (NCPMX), KPORI , IBORI ,
33145 & IBNUCL, NPNUC , NNUCTS
33146*
33147 DATA LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH / 6*.FALSE. /
33148 DATA POTBAR / POTBA0 /, POTMES / POTME0 /, WLLRES / 0.D+00 /
33149 DATA JUSNUC / 320 * 0 /, INUCLV / 1 /, IEVPRE / 0 /
33150 DATA MAGNUM / 2, 8, 20, 28, 50, 82, 126, 160 /
33151 DATA LPREEQ / .FALSE. /
33152* /cmpisg/
33153 DATA JSTOKP / 1, 8, 13, 14, 23 /
33154 DATA KPTOJS / 1, 6*0, 2, 4*0, 3, 4, 8*0, 5 /
33155 DATA CHPIRE / 'PI+PPI+P','PI-PPI-P','PI-PPI0N','PI0PPI0P',
33156 & 'PI0PPI+N','PI-NPI-N','PI+NPI+N','PI+NPI0P',
33157 & 'PI0NPI0N','PI0NPI-P' /
33158 DATA KPIIRE / 13, 1, 14, 1, 14, 1, 23, 1, 23, 1, 14, 8,
33159 & 13, 8, 13, 8, 23, 8, 23, 8 /
33160 DATA KPIORE / 13, 1, 14, 1, 23, 8, 23, 1, 13, 8, 14, 8,
33161 & 13, 8, 23, 1, 23, 8, 14, 1 /
33162 DATA IPIREA / 1, 0, 7, 8, 2, 3, 6, 0, 4, 5, 9, 10 /
33163 DATA IPIINE / 1, 2, 3, 4, 5, 6 /
33164* /frbkcm/
33165 DATA LFRMBK / .FALSE. /
33166 DATA NBUFBK / 500 /
33167 DATA EXMXFB / 80.0 D+00 /
33168 DATA R0FRBK / 1.18 D+00 /
33169 DATA R0CFBK / 2.173D+00 /
33170 DATA C1CFBK / 6.103D-03 /
33171 DATA C2CFBK / 9.443D-03 /
33172* /parnuc/
33173 DATA TAUFOR / TAUFO0 /
33174*=== End of Block Data Bdpree =========================================*
33175 END
33176
33177*$ CREATE DT_XHOINI.FOR
33178*COPY DT_XHOINI
33179*
33180*====phoini============================================================*
33181*
33182 SUBROUTINE DT_XHOINI
33183C SUBROUTINE DT_PHOINI
33184
33185 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33186 SAVE
33187 PARAMETER ( LINP = 10 ,
33188 & LOUT = 6 ,
33189 & LDAT = 9 )
33190
33191 RETURN
33192 END
33193
33194*$ CREATE DT_XVENTB.FOR
33195*COPY DT_XVENTB
33196*
33197*====eventb============================================================*
33198*
33199 SUBROUTINE DT_XVENTB(NCSY,IREJ)
33200C SUBROUTINE DT_EVENTB(NCSY,IREJ)
33201
33202 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33203 SAVE
33204 PARAMETER ( LINP = 10 ,
33205 & LOUT = 6 ,
33206 & LDAT = 9 )
33207
33208 WRITE(LOUT,1000)
33209 1000 FORMAT(1X,'EVENTB: PHOJET-package requested but not linked!')
33210 STOP
33211
33212 END
33213
33214*$ CREATE DT_XVENT.FOR
33215*COPY DT_XVENT
33216*
33217*===event==============================================================*
33218*
33219 SUBROUTINE DT_XVENT(IDUM,PP,PT,DUM,IREJ)
33220C SUBROUTINE EVENT(IDUM,PP,PT,DUM,IREJ)
33221
33222 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33223 SAVE
33224
33225 DIMENSION PP(4),PT(4)
33226
33227 RETURN
33228 END
33229
33230*$ CREATE DT_XOHISX.FOR
33231*COPY DT_XOHISX
33232*
33233*===pohisx=============================================================*
33234*
33235 SUBROUTINE DT_XOHISX(I,X)
33236C SUBROUTINE POHISX(I,X)
33237
33238 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33239 SAVE
33240
33241 RETURN
33242 END
33243
33244*$ CREATE PHO_LHIST.FOR
33245*COPY PHO_LHIST
33246*
33247*===poluhi=============================================================*
33248*
33249 SUBROUTINE PHO_LHIST(I,X)
33250**
33251
33252 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33253 SAVE
33254
33255 RETURN
33256 END
33257
33258*$ CREATE PDFSET.FOR
33259*COPY PDFSET
33260*
33261C**********************************************************************
33262C
33263C dummy subroutines, remove to link PDFLIB
33264C
33265C**********************************************************************
33266 SUBROUTINE PDFSET(PARAM,VALUE)
33267 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33268 DIMENSION PARAM(20),VALUE(20)
33269 CHARACTER*20 PARAM
33270 END
33271
33272*$ CREATE STRUCTM.FOR
33273*COPY STRUCTM
33274*
33275 SUBROUTINE STRUCTM(XI,SCALE2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33276 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33277 END
33278
33279*$ CREATE STRUCTP.FOR
33280*COPY STRUCTP
33281*
33282 SUBROUTINE STRUCTP(XI,SCALE2,P2,IP2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33283 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33284 END
33285
33286*$ CREATE DT_DIQBRK.FOR
33287*COPY DT_DIQBRK
33288*
33289*===diqbrk=============================================================*
33290*
33291 SUBROUTINE DT_XIQBRK
33292C SUBROUTINE DT_DIQBRK
33293
33294 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33295 SAVE
33296
33297 STOP 'diquark-breaking not implemeted !'
33298
33299 RETURN
33300 END
33301
33302*$ CREATE DT_ELHAIN.FOR
33303*COPY DT_ELHAIN
33304*
33305*===elhain=============================================================*
33306*
33307 SUBROUTINE DT_ELHAIN(IP,PLA,ELAB,CX,CY,CZ,IT,IREJ)
33308
33309************************************************************************
33310* Elastic hadron-hadron scattering. *
33311* This is a revised version of the original. *
33312* This version dated 03.04.98 is written by S. Roesler *
33313************************************************************************
33314
33315 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33316 SAVE
33317 PARAMETER ( LINP = 10 ,
33318 & LOUT = 6 ,
33319 & LDAT = 9 )
33320 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33321 & TINY10=1.0D-10)
33322
33323 PARAMETER (ENNTHR = 3.5D0)
33324 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0,
33325 & BLOWB=0.05D0,BHIB=0.2D0,
33326 & BLOWM=0.1D0, BHIM=2.0D0)
33327
33328* particle properties (BAMJET index convention)
33329 CHARACTER*8 ANAME
33330 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33331 & IICH(210),IIBAR(210),K1(210),K2(210)
33332* final state from HADRIN interaction
33333 PARAMETER (MAXFIN=10)
33334 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33335 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33336
33337C DATA TSLOPE /10.0D0/
33338
33339 IREJ = 0
33340
33341 1 CONTINUE
33342
33343 PLAB = SQRT( (ELAB-AAM(IP))*(ELAB+AAM(IP)) )
33344 EKIN = ELAB-AAM(IP)
33345* kinematical quantities in cms of the hadrons
33346 AMP2 = AAM(IP)**2
33347 AMT2 = AAM(IT)**2
33348 S = AMP2+AMT2+TWO*ELAB*AAM(IT)
33349 ECM = SQRT(S)
33350 ECMP = OHALF*ECM+(AMP2-AMT2)/(TWO*ECM)
33351 PCM = SQRT( (ECMP-AAM(IP))*(ECMP+AAM(IP)) )
33352
33353* nucleon-nucleon scattering at E_kin<3.5: use DT_TSAMCS(HETC-KFA)
33354 IF ( ((IP.EQ.1).OR.(IP.EQ.8)).AND.
33355 & ((IT.EQ.1).OR.(IT.EQ.8)).AND.(EKIN.LT.ENNTHR) ) THEN
33356* TSAMCS treats pp and np only, therefore change pn into np and
33357* nn into pp
33358 IF (IT.EQ.1) THEN
33359 KPROJ = IP
33360 ELSE
33361 KPROJ = 8
33362 IF (IP.EQ.8) KPROJ = 1
33363 ENDIF
33364 CALL DT_TSAMCS(KPROJ,EKIN,CTCMS)
33365 T = TWO*PCM**2*(CTCMS-ONE)
33366
33367* very crude treatment otherwise: sample t from exponential dist.
33368 ELSE
33369* momentum transfer t
33370 TMAX = TWO*TWO*PCM**2
33371 RR = (PLAB-PLOWH)/(PHIH-PLOWH)
33372 IF (IIBAR(IP).NE.0) THEN
33373 TSLOPE = BLOWB+RR*(BHIB-BLOWB)
33374 ELSE
33375 TSLOPE = BLOWM+RR*(BHIM-BLOWM)
33376 ENDIF
33377 FMAX = EXP(-TSLOPE*TMAX)-ONE
33378 R = DT_RNDM(RR)
33379 T = LOG(ONE+R*FMAX+TINY10)/TSLOPE
33380 IF (T.GT.ZERO) T = LOG(ONE+R*FMAX)/TSLOPE
33381 ENDIF
33382
33383* target hadron in Lab after scattering
33384 ELRH(2) = (TWO*AMT2-T)/(TWO*AAM(IT))
33385 PLRH(2) = SQRT( ABS(ELRH(2)-AAM(IT))*(ELRH(2)+AAM(IT)) )
33386 IF (PLRH(2).LE.TINY10) THEN
33387C WRITE(*,*)'ELHAIN: T,PLRH(2) ',T,PLRH(2)
33388 GOTO 1
33389 ENDIF
33390* projectile hadron in Lab after scattering
33391 ELRH(1) = ELAB+AAM(IT)-ELRH(2)
33392 PLRH(1) = SQRT( ABS(ELRH(1)-AAM(IP))*(ELRH(1)+AAM(IP)) )
33393* scattering angle of projectile in Lab
33394 CTLABP = (T-TWO*AMP2+TWO*ELAB*ELRH(1))/(TWO*PLAB*PLRH(1))
33395 STLABP = SQRT( (ONE-CTLABP)*(ONE+CTLABP) )
33396 CALL DT_DSFECF(SPLABP,CPLABP)
33397* direction cosines of projectile in Lab
33398 CALL DT_STTRAN(CX,CY,CZ,CTLABP,STLABP,SPLABP,CPLABP,
33399 & CXRH(1),CYRH(1),CZRH(1))
33400* scattering angle of target in Lab
33401 PLLABT = PLAB-CTLABP*PLRH(1)
33402 CTLABT = PLLABT/PLRH(2)
33403 STLABT = SQRT( (ONE-CTLABT)*(ONE+CTLABT) )
33404* direction cosines of target in Lab
33405 CALL DT_STTRAN(CX,CY,CZ,CTLABT,STLABT,-SPLABP,-CPLABP,
33406 & CXRH(2),CYRH(2),CZRH(2))
33407* fill /HNFSPA/
33408 IRH = 2
33409 ITRH(1) = IP
33410 ITRH(2) = IT
33411
33412 RETURN
33413 END
33414
33415*$ CREATE DT_TSAMCS.FOR
33416*COPY DT_TSAMCS
33417*
33418*===tsamcs=============================================================*
33419*
33420 SUBROUTINE DT_TSAMCS(KPROJ,EKIN,CST)
33421
33422************************************************************************
33423* Sampling of cos(theta) for nucleon-proton scattering according to *
33424* hetkfa2/bertini parametrization. *
33425* This is a revised version of the original (HJM 24/10/88) *
33426* This version dated 28.10.95 is written by S. Roesler *
33427************************************************************************
33428
33429 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33430 SAVE
33431 PARAMETER ( LINP = 10 ,
33432 & LOUT = 6 ,
33433 & LDAT = 9 )
33434 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33435 & TINY10=1.0D-10)
33436
33437 DIMENSION DCLIN(195),DCHN(143),DCHNA(36),DCHNB(60)
33438 DIMENSION PDCI(60),PDCH(55)
33439
33440 DATA (DCLIN(I),I=1,80) /
33441 & 5.000D-01, 1.000D+00, 0.000D+00, 1.000D+00, 0.000D+00,
33442 & 4.993D-01, 9.881D-01, 5.963D-02, 9.851D-01, 5.945D-02,
33443 & 4.936D-01, 8.955D-01, 5.224D-01, 8.727D-01, 5.091D-01,
33444 & 4.889D-01, 8.228D-01, 8.859D-01, 7.871D-01, 8.518D-01,
33445 & 4.874D-01, 7.580D-01, 1.210D+00, 7.207D-01, 1.117D+00,
33446 & 4.912D-01, 6.969D-01, 1.516D+00, 6.728D-01, 1.309D+00,
33447 & 5.075D-01, 6.471D-01, 1.765D+00, 6.667D-01, 1.333D+00,
33448 & 5.383D-01, 6.054D-01, 1.973D+00, 7.059D-01, 1.176D+00,
33449 & 5.397D-01, 5.990D-01, 2.005D+00, 7.023D-01, 1.191D+00,
33450 & 5.336D-01, 6.083D-01, 1.958D+00, 6.959D-01, 1.216D+00,
33451 & 5.317D-01, 6.075D-01, 1.962D+00, 6.897D-01, 1.241D+00,
33452 & 5.300D-01, 6.016D-01, 1.992D+00, 6.786D-01, 1.286D+00,
33453 & 5.281D-01, 6.063D-01, 1.969D+00, 6.786D-01, 1.286D+00,
33454 & 5.280D-01, 5.960D-01, 2.020D+00, 6.667D-01, 1.333D+00,
33455 & 5.273D-01, 5.920D-01, 2.040D+00, 6.604D-01, 1.358D+00,
33456 & 5.273D-01, 5.862D-01, 2.069D+00, 6.538D-01, 1.385D+00/
33457 DATA (DCLIN(I),I=81,160) /
33458 & 5.223D-01, 5.980D-01, 2.814D+00, 6.538D-01, 1.385D+00,
33459 & 5.202D-01, 5.969D-01, 2.822D+00, 6.471D-01, 1.412D+00,
33460 & 5.183D-01, 5.881D-01, 2.883D+00, 6.327D-01, 1.469D+00,
33461 & 5.159D-01, 5.866D-01, 2.894D+00, 6.250D-01, 1.500D+00,
33462 & 5.133D-01, 5.850D-01, 2.905D+00, 6.170D-01, 1.532D+00,
33463 & 5.106D-01, 5.833D-01, 2.917D+00, 6.087D-01, 1.565D+00,
33464 & 5.084D-01, 5.801D-01, 2.939D+00, 6.000D-01, 1.600D+00,
33465 & 5.063D-01, 5.763D-01, 2.966D+00, 5.909D-01, 1.636D+00,
33466 & 5.036D-01, 5.730D-01, 2.989D+00, 5.814D-01, 1.674D+00,
33467 & 5.014D-01, 5.683D-01, 3.022D+00, 5.714D-01, 1.714D+00,
33468 & 4.986D-01, 5.641D-01, 3.051D+00, 5.610D-01, 1.756D+00,
33469 & 4.964D-01, 5.580D-01, 3.094D+00, 5.500D-01, 1.800D+00,
33470 & 4.936D-01, 5.573D-01, 3.099D+00, 5.431D-01, 1.827D+00,
33471 & 4.909D-01, 5.509D-01, 3.144D+00, 5.313D-01, 1.875D+00,
33472 & 4.885D-01, 5.512D-01, 3.142D+00, 5.263D-01, 1.895D+00,
33473 & 4.857D-01, 5.437D-01, 3.194D+00, 5.135D-01, 1.946D+00/
33474 DATA (DCLIN(I),I=161,195) /
33475 & 4.830D-01, 5.353D-01, 3.253D+00, 5.000D-01, 2.000D+00,
33476 & 4.801D-01, 5.323D-01, 3.274D+00, 4.915D-01, 2.034D+00,
33477 & 4.770D-01, 5.228D-01, 3.341D+00, 4.767D-01, 2.093D+00,
33478 & 4.738D-01, 5.156D-01, 3.391D+00, 4.643D-01, 2.143D+00,
33479 & 4.701D-01, 5.010D-01, 3.493D+00, 4.444D-01, 2.222D+00,
33480 & 4.672D-01, 4.990D-01, 3.507D+00, 4.375D-01, 2.250D+00,
33481 & 4.634D-01, 4.856D-01, 3.601D+00, 4.194D-01, 2.323D+00/
33482
33483 DATA PDCI /
33484 & 4.400D+02, 1.896D-01, 1.931D-01, 1.982D-01, 1.015D-01,
33485 & 1.029D-01, 4.180D-02, 4.228D-02, 4.282D-02, 4.350D-02,
33486 & 2.204D-02, 2.236D-02, 5.900D+02, 1.433D-01, 1.555D-01,
33487 & 1.774D-01, 1.000D-01, 1.128D-01, 5.132D-02, 5.600D-02,
33488 & 6.158D-02, 6.796D-02, 3.660D-02, 3.820D-02, 6.500D+02,
33489 & 1.192D-01, 1.334D-01, 1.620D-01, 9.527D-02, 1.141D-01,
33490 & 5.283D-02, 5.952D-02, 6.765D-02, 7.878D-02, 4.796D-02,
33491 & 6.957D-02, 8.000D+02, 4.872D-02, 6.694D-02, 1.152D-01,
33492 & 9.348D-02, 1.368D-01, 6.912D-02, 7.953D-02, 9.577D-02,
33493 & 1.222D-01, 7.755D-02, 9.525D-02, 1.000D+03, 3.997D-02,
33494 & 5.456D-02, 9.804D-02, 8.084D-02, 1.208D-01, 6.520D-02,
33495 & 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02, 1.093D-01/
33496
33497 DATA PDCH /
33498 & 1.000D+03, 9.453D-02, 9.804D-02, 8.084D-02, 1.208D-01,
33499 & 6.520D-02, 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02,
33500 & 1.093D-01, 1.400D+03, 1.072D-01, 7.450D-02, 6.645D-02,
33501 & 1.136D-01, 6.750D-02, 8.580D-02, 1.110D-01, 1.530D-01,
33502 & 1.010D-01, 1.350D-01, 2.170D+03, 4.004D-02, 3.013D-02,
33503 & 2.664D-02, 5.511D-02, 4.240D-02, 7.660D-02, 1.364D-01,
33504 & 2.300D-01, 1.670D-01, 2.010D-01, 2.900D+03, 1.870D-02,
33505 & 1.804D-02, 1.320D-02, 2.970D-02, 2.860D-02, 5.160D-02,
33506 & 1.020D-01, 2.400D-01, 2.250D-01, 3.370D-01, 4.400D+03,
33507 & 1.196D-03, 8.784D-03, 1.517D-02, 2.874D-02, 2.488D-02,
33508 & 4.464D-02, 8.330D-02, 2.008D-01, 2.360D-01, 3.567D-01/
33509
33510 DATA (DCHN(I),I=1,90) /
33511 & 4.770D-01, 4.750D-01, 4.715D-01, 4.685D-01, 4.650D-01,
33512 & 4.610D-01, 4.570D-01, 4.550D-01, 4.500D-01, 4.450D-01,
33513 & 4.405D-01, 4.350D-01, 4.300D-01, 4.250D-01, 4.200D-01,
33514 & 4.130D-01, 4.060D-01, 4.000D-01, 3.915D-01, 3.840D-01,
33515 & 3.760D-01, 3.675D-01, 3.580D-01, 3.500D-01, 3.400D-01,
33516 & 3.300D-01, 3.200D-01, 3.100D-01, 3.000D-01, 2.900D-01,
33517 & 2.800D-01, 2.700D-01, 2.600D-01, 2.500D-01, 2.400D-01,
33518 & 2.315D-01, 2.240D-01, 2.150D-01, 2.060D-01, 2.000D-01,
33519 & 1.915D-01, 1.850D-01, 1.780D-01, 1.720D-01, 1.660D-01,
33520 & 1.600D-01, 1.550D-01, 1.500D-01, 1.450D-01, 1.400D-01,
33521 & 1.360D-01, 1.320D-01, 1.280D-01, 1.250D-01, 1.210D-01,
33522 & 1.180D-01, 1.150D-01, 1.120D-01, 1.100D-01, 1.070D-01,
33523 & 1.050D-01, 1.030D-01, 1.010D-01, 9.900D-02, 9.700D-02,
33524 & 9.550D-02, 9.480D-02, 9.400D-02, 9.200D-02, 9.150D-02,
33525 & 9.100D-02, 9.000D-02, 8.990D-02, 8.900D-02, 8.850D-02,
33526 & 8.750D-02, 8.700D-02, 8.650D-02, 8.550D-02, 8.500D-02,
33527 & 8.499D-02, 8.450D-02, 8.350D-02, 8.300D-02, 8.250D-02,
33528 & 8.150D-02, 8.100D-02, 8.030D-02, 8.000D-02, 7.990D-02/
33529 DATA (DCHN(I),I=91,143) /
33530 & 7.980D-02, 7.950D-02, 7.900D-02, 7.860D-02, 7.800D-02,
33531 & 7.750D-02, 7.650D-02, 7.620D-02, 7.600D-02, 7.550D-02,
33532 & 7.530D-02, 7.500D-02, 7.499D-02, 7.498D-02, 7.480D-02,
33533 & 7.450D-02, 7.400D-02, 7.350D-02, 7.300D-02, 7.250D-02,
33534 & 7.230D-02, 7.200D-02, 7.100D-02, 7.050D-02, 7.020D-02,
33535 & 7.000D-02, 6.999D-02, 6.995D-02, 6.993D-02, 6.991D-02,
33536 & 6.990D-02, 6.870D-02, 6.850D-02, 6.800D-02, 6.780D-02,
33537 & 6.750D-02, 6.700D-02, 6.650D-02, 6.630D-02, 6.600D-02,
33538 & 6.550D-02, 6.525D-02, 6.510D-02, 6.500D-02, 6.499D-02,
33539 & 6.498D-02, 6.496D-02, 6.494D-02, 6.493D-02, 6.490D-02,
33540 & 6.488D-02, 6.485D-02, 6.480D-02/
33541
33542 DATA DCHNA /
33543 & 6.300D+02, 7.810D-02, 1.421D-01, 1.979D-01, 2.479D-01,
33544 & 3.360D-01, 5.400D-01, 7.236D-01, 1.000D+00, 1.540D+03,
33545 & 2.225D-01, 3.950D-01, 5.279D-01, 6.298D-01, 7.718D-01,
33546 & 9.405D-01, 9.835D-01, 1.000D+00, 2.560D+03, 2.625D-01,
33547 & 4.550D-01, 5.963D-01, 7.020D-01, 8.380D-01, 9.603D-01,
33548 & 9.903D-01, 1.000D+00, 3.520D+03, 4.250D-01, 6.875D-01,
33549 & 8.363D-01, 9.163D-01, 9.828D-01, 1.000D+00, 1.000D+00,
33550 & 1.000D+00/
33551
33552 DATA DCHNB /
33553 & 6.300D+02, 3.800D-02, 7.164D-02, 1.275D-01, 2.171D-01,
33554 & 3.227D-01, 4.091D-01, 5.051D-01, 6.061D-01, 7.074D-01,
33555 & 8.434D-01, 1.000D+00, 2.040D+03, 1.200D-01, 2.115D-01,
33556 & 3.395D-01, 5.295D-01, 7.251D-01, 8.511D-01, 9.487D-01,
33557 & 9.987D-01, 1.000D+00, 1.000D+00, 1.000D+00, 2.200D+03,
33558 & 1.344D-01, 2.324D-01, 3.754D-01, 5.674D-01, 7.624D-01,
33559 & 8.896D-01, 9.808D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33560 & 1.000D+00, 2.850D+03, 2.330D-01, 4.130D-01, 6.610D-01,
33561 & 9.010D-01, 9.970D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33562 & 1.000D+00, 1.000D+00, 1.000D+00, 3.500D+03, 3.300D-01,
33563 & 5.450D-01, 7.950D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33564 & 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00/
33565
33566 CST = ONE
33567 IF (EKIN.GT.3.5D0) RETURN
33568C
33569 IF(KPROJ.EQ.8) GOTO 101
33570 IF(KPROJ.EQ.1) GOTO 102
33571C* INVALID REACTION
33572 WRITE(LOUT,'(A,I5/A)')
33573 & ' INVALID PARTICLE TYPE IN DNUPRE - KPROJ=',KPROJ,
33574 & ' COS(THETA) = 1D0 RETURNED'
33575 RETURN
33576C-------------------------------- NP ELASTIC SCATTERING----------
33577101 CONTINUE
33578 IF (EKIN.GT.0.740D0)GOTO 1000
33579 IF (EKIN.LT.0.300D0)THEN
33580C EKIN .LT. 300 MEV
33581 IDAT=1
33582 ELSE
33583C 300 MEV < EKIN < 740 MEV
33584 IDAT=6
33585 END IF
33586C
33587 ENER=EKIN
33588 IE=INT(ABS(ENER/0.020D0))
33589 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33590C FORWARD/BACKWARD DECISION
33591 K=IDAT+5*IE
33592 BWFW=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33593 IF (DT_RNDM(CST).LT.BWFW)THEN
33594 VALUE2=-1D0
33595 K=K+1
33596 ELSE
33597 VALUE2=1D0
33598 K=K+3
33599 END IF
33600C
33601 COEF=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33602 RND=DT_RNDM(COEF)
33603C
33604 IF(RND.LT.COEF)THEN
33605 CST=DT_RNDM(RND)
33606 CST=CST*VALUE2
33607 ELSE
33608 R1=DT_RNDM(CST)
33609 R2=DT_RNDM(R1)
33610 R3=DT_RNDM(R2)
33611 R4=DT_RNDM(R3)
33612C
33613 IF(VALUE2.GT.0.0)THEN
33614 CST=MAX(R1,R2,R3,R4)
33615 GOTO 1500
33616 ELSE
33617 R5=DT_RNDM(R4)
33618C
33619 IF (IDAT.EQ.1)THEN
33620 CST=-MAX(R1,R2,R3,R4,R5)
33621 ELSE
33622 R6=DT_RNDM(R5)
33623 R7=DT_RNDM(R6)
33624 CST=-MAX(R1,R2,R3,R4,R5,R6,R7)
33625 END IF
33626C
33627 END IF
33628C
33629 END IF
33630C
33631 GOTO 1500
33632C
33633C******** EKIN .GT. 0.74 GEV
33634C
336351000 ENER=EKIN - 0.66D0
33636C IE=ABS(ENER/0.02)
33637 IE=INT(ENER/0.02D0)
33638 EMEV=EKIN*1D3
33639C
33640 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33641 K=IE
33642 BWFW=(DCHN(K+1)-DCHN(K))*UNIV + DCHN(K)
33643 RND=DT_RNDM(BWFW)
33644C FORWARD NEUTRON
33645 IF (RND.GE.BWFW)THEN
33646 DO 1200 K=10,36,9
33647 IF (DCHNA(K).GT.EMEV) THEN
33648 UNIVE=(EMEV-DCHNA(K-9))/(DCHNA(K)-DCHNA(K-9))
33649 UNIV=DT_RNDM(UNIVE)
33650 DO 1100 I=1,8
33651 II=K+I
33652 P=(DCHNA(II)-DCHNA(II-9))*UNIVE + DCHNA(II-9)
33653C
33654 IF (P.GT.UNIV)THEN
33655 UNIV=DT_RNDM(UNIVE)
33656 FLTI=DBLE(I)-UNIV
33657 GOTO(290,290,290,290,330,340,350,360) I
33658 END IF
33659 1100 CONTINUE
33660 END IF
33661 1200 CONTINUE
33662C
33663 ELSE
33664C BACKWARD NEUTRON
33665 DO 1400 K=13,60,12
33666 IF (DCHNB(K).GT.EMEV) THEN
33667 UNIVE=(EMEV-DCHNB(K-12))/(DCHNB(K)-DCHNB(K-12))
33668 UNIV=DT_RNDM(UNIVE)
33669 DO 1300 I=1,11
33670 II=K+I
33671 P=(DCHNB(II)-DCHNB(II-12))*UNIVE + DCHNB(II-12)
33672C
33673 IF (P.GT.UNIV)THEN
33674 UNIV=DT_RNDM(P)
33675 FLTI=DBLE(I)-UNIV
33676 GOTO(120,120,140,150,160,160,180,190,200,210,220) I
33677 END IF
33678 1300 CONTINUE
33679 END IF
33680 1400 CONTINUE
33681 END IF
33682C
33683120 CST=1.0D-2*FLTI-1.0D0
33684 GOTO 1500
33685140 CST=2.0D-2*UNIV-0.98D0
33686 GOTO 1500
33687150 CST=4.0D-2*UNIV-0.96D0
33688 GOTO 1500
33689160 CST=6.0D-2*FLTI-1.16D0
33690 GOTO 1500
33691180 CST=8.0D-2*UNIV-0.80D0
33692 GOTO 1500
33693190 CST=1.0D-1*UNIV-0.72D0
33694 GOTO 1500
33695200 CST=1.2D-1*UNIV-0.62D0
33696 GOTO 1500
33697210 CST=2.0D-1*UNIV-0.50D0
33698 GOTO 1500
33699220 CST=3.0D-1*(UNIV-1.0D0)
33700 GOTO 1500
33701C
33702290 CST=1.0D0-2.5d-2*FLTI
33703 GOTO 1500
33704330 CST=0.85D0+0.5D-1*UNIV
33705 GOTO 1500
33706340 CST=0.70D0+1.5D-1*UNIV
33707 GOTO 1500
33708350 CST=0.50D0+2.0D-1*UNIV
33709 GOTO 1500
33710360 CST=0.50D0*UNIV
33711C
337121500 RETURN
33713C
33714C----------------------------------- PP ELASTIC SCATTERING -------
33715C
33716 102 CONTINUE
33717 EMEV=EKIN*1D3
33718C
33719 IF (EKIN.LE.0.500D0) THEN
33720 RND=DT_RNDM(EMEV)
33721 CST=2.0D0*RND-1.0D0
33722 RETURN
33723C
33724 ELSEIF (EKIN.LT.1.0D0) THEN
33725 DO 2200 K=13,60,12
33726 IF (PDCI(K).GT.EMEV) THEN
33727 UNIVE=(EMEV-PDCI(K-12))/(PDCI(K)-PDCI(K-12))
33728 UNIV=DT_RNDM(UNIVE)
33729 SUM=0
33730 DO 2100 I=1,11
33731 II=K+I
33732 SUM=SUM + (PDCI(II)-PDCI(II-12))*UNIVE + PDCI(II-12)
33733C
33734 IF (UNIV.LT.SUM)THEN
33735 UNIV=DT_RNDM(SUM)
33736 FLTI=DBLE(I)-UNIV
33737 GOTO(55,55,55,60,60,65,65,65,65,70,70) I
33738 END IF
33739 2100 CONTINUE
33740 END IF
33741 2200 CONTINUE
33742 ELSE
33743 DO 2400 K=12,55,11
33744 IF (PDCH(K).GT.EMEV) THEN
33745 UNIVE=(EMEV-PDCH(K-11))/(PDCH(K)-PDCH(K-11))
33746 UNIV=DT_RNDM(UNIVE)
33747 SUM=0.0D0
33748 DO 2300 I=1,10
33749 II=K+I
33750 SUM=SUM + (PDCH(II)-PDCH(II-11))*UNIVE + PDCH(II-11)
33751C
33752 IF (UNIV.LT.SUM)THEN
33753 UNIV=DT_RNDM(SUM)
33754 FLTI=UNIV+DBLE(I)
33755 GOTO(50,55,60,60,65,65,65,65,70,70) I
33756 END IF
33757 2300 CONTINUE
33758 END IF
33759 2400 CONTINUE
33760 END IF
33761C
3376250 CST=0.4D0*UNIV
33763 GOTO 2500
3376455 CST=0.2D0*FLTI
33765 GOTO 2500
3376660 CST=0.3D0+0.1D0*FLTI
33767 GOTO 2500
3376865 CST=0.6D0+0.04D0*FLTI
33769 GOTO 2500
3377070 CST=0.78D0+0.02D0*FLTI
33771C
337722500 CONTINUE
33773 IF (DT_RNDM(CST).GT.0.5D0) CST=-CST
33774C
33775 RETURN
33776 END
33777
33778*$ CREATE DT_DHADRI.FOR
33779*COPY DT_DHADRI
33780*
33781*===dhadri=============================================================*
33782*
33783 SUBROUTINE DT_DHADRI(N,PLAB,ELAB,CX,CY,CZ,ITTA)
33784
33785 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33786 SAVE
33787
33788 PARAMETER ( LINP = 10 ,
33789 & LOUT = 6 ,
33790 & LDAT = 9 )
33791C
33792C-----------------------------
33793C*** INPUT VARIABLES LIST:
33794C*** SAMPLING OF HADRON NUCLEON INTERACTION FOR (ABOUT) 0.1 LE PLAB LE 6
33795C*** GEV/C LABORATORY MOMENTUM REGION
33796C*** N - PROJECTILE HADRON INDEX
33797C*** PLAB - LABORATORY MOMENTUM OF N (GEV/C)
33798C*** ELAB - LABORATORY ENERGY OF N (GEV)
33799C*** CX,CY,CZ - DIRECTION COSINES OF N IN THE LABORATORY SYSTEM
33800C*** ITTA - TARGET NUCLEON INDEX
33801C*** OUTPUT VARIABLES LIST OF PARTICLE CHARACTERISTICS IN /FINLSP/
33802C IR COUNTS THE NUMBER OF PRODUCED PARTICLES
33803C*** ITR - PARTICLE INDEX, CXR,CYR,CZR - DIRECTION COSINES (LAB. SYST.)
33804C*** ELR,PLR LAB. ENERGY AND LAB. MOMENTUM OF THE SAMPLED PARTICLE
33805C*** RESPECT., UNITS (GEV/C AND GEV)
33806C----------------------------
33807
33808 COMMON /HNGAMR/ REDU,AMO,AMM(15)
33809 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
33810 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
33811 & NRK(2,268),NURE(30,2)
33812* particle properties (BAMJET index convention),
33813* (dublicate of DTPART for HADRIN)
33814 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
33815 & K1H(110),K2H(110)
33816 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
33817 COMMON /HNMETL/ CXS(149),CYS(149),CZS(149),ELS(149),PLS(149),
33818 & ITS(149),IS
33819 COMMON /HNDRUN/ RUNTES,EFTES
33820* particle properties (BAMJET index convention)
33821 CHARACTER*8 ANAME
33822 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33823 & IICH(210),IIBAR(210),K1(210),K2(210)
33824* final state from HADRIN interaction
33825 PARAMETER (MAXFIN=10)
33826 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33827 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33828
33829 DIMENSION ITPRF(110)
33830 DATA NNN/0/
33831 DATA UMODA/0./
33832 DATA ITPRF/-1,-1,5*1,-1,-1,1,1,1,-1,-1,-1,-1,6*1,-1,-1,-1,85*1/
33833 LOWP=0
33834 IF (N.LE.0.OR.N.GE.111)N=1
33835 IF (ITPRF( N ).GT.0 .OR. ITTA.GT.8) THEN
33836 GOTO 280
33837* WRITE (6,1000)
33838* + ' FALSE USE OF THE PARTICLE TYPE INDEX: N, ITTA', N, ITTA
33839* STOP
33840*1000 FORMAT (3(5H ****/),A,2I4,3(5H ****/))
33841* + 45H FALSE USE OF THE PARTICLE TYPE INDEX, N,LUE ,I4,3(5H ****/))
33842 ENDIF
33843 IATMPT=0
33844 IF (ABS(PLAB-5.0D0).LT.4.99999D0) GO TO 20
33845C IF(IPRI.GE.1) WRITE (6,1010) PLAB
33846C STOP
33847 1010 FORMAT ( ' PROJECTILE HADRON MOMENTUM OUTSIDE OF THE
33848 + ALLOWED REGION, PLAB=',1E15.5)
33849
33850 20 CONTINUE
33851 UMODAT=N*1.11111D0+ITTA*2.19291D0
33852 IF(UMODAT.NE.UMODA) CALL DT_DCALUM(N,ITTA)
33853 UMODA=UMODAT
33854 30 IATMPT=0
33855 LOWP=LOWP+1
33856 40 CONTINUE
33857 IMACH=0
33858 REDU=2.0D0
33859 IF (LOWP.GT.20) THEN
33860C WRITE(LOUT,*) ' jump 1'
33861 GO TO 280
33862 ENDIF
33863 NNN=N
33864 IF (NNN.EQ.N) GO TO 50
33865 RUNTES=0.0D0
33866 EFTES=0.0D0
33867 50 CONTINUE
33868 IS=1
33869 IRH=0
33870 IST=1
33871 NSTAB=23
33872 IRE=NURE(N,1)
33873 IF(ITTA.GT.1) IRE=NURE(N,2)
33874C
33875C-----------------------------
33876C*** IE,AMT,ECM,SI DETERMINATION
33877C----------------------------
33878 CALL DT_DSIGIN(IRE,PLAB,N,IE,AMT ,AMN,ECM,SI,ITTA)
33879 IANTH=-1
33880**sr
33881C IF (AMH(1).NE.0.93828D0) IANTH=1
33882 IF (AMH(1).NE.0.9383D0) IANTH=1
33883**
33884 IF (IANTH.GE.0) SI=1.0D0
33885 ECMMH=ECM
33886C
33887C-----------------------------
33888C ENERGY INDEX
33889C IRE CHARACTERIZES THE REACTION
33890C IE IS THE ENERGY INDEX
33891C----------------------------
33892 IF (SI.LT.1.D-6) THEN
33893C WRITE(LOUT,*) ' jump 2'
33894 GO TO 280
33895 ENDIF
33896 IF (N.LE.NSTAB) GO TO 60
33897 RUNTES=RUNTES+1.0D0
33898 IF (RUNTES.LT.20.D0) WRITE(LOUT,1020)N
33899 1020 FORMAT(3H N=,I10,30H THE PROEKTILE IS A RESONANCE )
33900 IF(IBARH(N).EQ.1) N=8
33901 IF(IBARH(N).EQ.-1) N=9
33902 60 CONTINUE
33903 IMACH=IMACH+1
33904**sr 19.2.97: loop for direct channel suppression
33905C IF (IMACH.GT.10) THEN
33906 IF (IMACH.GT.1000) THEN
33907**
33908C WRITE(LOUT,*) ' jump 3'
33909 GO TO 280
33910 ENDIF
33911 ECM =ECMMH
33912 AMN2=AMN**2
33913 AMT2=AMT**2
33914 ECMN=(ECM**2+AMN2-AMT2)/(2.0D0*ECM )
33915 IF(ECMN.LE.AMN) ECMN=AMN
33916 PCMN=SQRT(ECMN**2-AMN2)
33917 GAM=(ELAB+AMT)/ECM
33918 BGAM=PLAB/ECM
33919 IF (IANTH.GE.0) ECM=2.1D0
33920C
33921C-----------------------------
33922C*** RANDOM CHOICE OF REACTION CHANNEL
33923C----------------------------
33924 IST=0
33925 VV=DT_RNDM(AMN2)
33926 VV=VV-1.D-17
33927C
33928C-----------------------------
33929C*** PLACE REDUCED VERSION
33930C----------------------------
33931 IIEI=IEII(IRE)
33932 IDWK=IEII(IRE+1)-IIEI
33933 IIWK=IRII(IRE)
33934 IIKI=IKII(IRE)
33935C
33936C-----------------------------
33937C*** SHRINKAGE TO THE CONSIDERED ENERGY REGION FOR THE USE OF WEIGHTS
33938C----------------------------
33939 HECM=ECM
33940 HUMO=2.0D0*UMO(IIEI+IDWK)-UMO(IIEI+IDWK-1)
33941 IF (HUMO.LT.ECM) ECM=HUMO
33942C
33943C-----------------------------
33944C*** INTERPOLATION PREPARATION
33945C----------------------------
33946 ECMO=UMO(IE)
33947 ECM1=UMO(IE-1)
33948 DECM=ECMO-ECM1
33949 DEC=ECMO-ECM
33950C
33951C-----------------------------
33952C*** RANDOM LOOP
33953C----------------------------
33954 IK=0
33955 WKK=0.0D0
33956 WICOR=0.0D0
33957 70 IK=IK+1
33958 IWK=IIWK+(IK-1)*IDWK+IE-IIEI
33959 WOK=WK(IWK)
33960 WDK=WOK-WK(IWK-1)
33961C
33962C-----------------------------
33963C*** TESTVARIABLE WICO/WICOR: IF CHANNEL IK HAS THE SAME WEIGHTS LIKE IK
33964C GO TO NEXT CHANNEL, BECAUSE WKK((IK))-WKK((IK-1))=0, IK CAN NOT
33965C CONTRIBUTE
33966C----------------------------
33967 IF (PLAB.LT.PLABF(IIEI+2)) WDK=0.0D0
33968 WICO=WOK*1.23459876D0+WDK*1.735218469D0
33969 IF (WICO.EQ.WICOR) GO TO 70
33970 IF (UMO(IIEI+IDWK).LT.HECM) WDK=0.0D0
33971 WICOR=WICO
33972C
33973C-----------------------------
33974C*** INTERPOLATION IN CHANNEL WEIGHTS
33975C----------------------------
33976 EKLIM=-THRESH(IIKI+IK)
33977 IELIM=IDT_IEFUND(EKLIM,IRE)
33978 DELIM=UMO(IELIM)+EKLIM
33979 *+1.D-16
33980 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
33981 IF (DELIM*DELIM-DETE*DETE) 90,90,80
33982 80 DECC=DELIM
33983 GO TO 100
33984 90 DECC=DECM
33985 100 CONTINUE
33986 WKK=WOK-WDK*DEC/(DECC+1.D-9)
33987C
33988C-----------------------------
33989C*** RANDOM CHOICE
33990C----------------------------
33991C
33992 IF (VV.GT.WKK) GO TO 70
33993C
33994C***IK IS THE REACTION CHANNEL
33995C----------------------------
33996 INRK=IKII(IRE)+IK
33997 ECM=HECM
33998 I1001 =0
33999C
34000 110 CONTINUE
34001 IT1=NRK(1,INRK)
34002 AM1=DT_DAMG(IT1)
34003 IT2=NRK(2,INRK)
34004 AM2=DT_DAMG(IT2)
34005 AMS=AM1+AM2
34006 I1001=I1001+1
34007 IF (I1001.GT.50) GO TO 60
34008C
34009 IF (IT2*AMS.GT.IT2*ECM) GO TO 110
34010 IT11=IT1
34011 IT22=IT2
34012 IF (IANTH.GE.0) ECM=ELAB+AMT+0.00001D0
34013 AM11=AM1
34014 AM22=AM2
34015 IF (IT2.GT.0) GO TO 120
34016**sr 19.2.97: supress direct channel for pp-collisions
34017 IF ((N.EQ.1).AND.(ITTA.EQ.1).AND.(IT2.LE.0)) THEN
34018 RR = DT_RNDM(AM11)
34019 IF (RR.LE.0.75D0) GOTO 60
34020 ENDIF
34021**
34022C
34023C-----------------------------
34024C INCLUSION OF DIRECT RESONANCES
34025C RANDOM CHOICE OF DECAY CHANNELS OF THE DIRECT RESONANCE IT1
34026C------------------------
34027 KZ1=K1H(IT1)
34028 IST=IST+1
34029 IECO=0
34030 ECO=ECM
34031 GAM=(ELAB+AMT)/ECO
34032 BGAM=PLAB/ECO
34033 CXS(1)=CX
34034 CYS(1)=CY
34035 CZS(1)=CZ
34036 GO TO 170
34037 120 CONTINUE
34038 WW=DT_RNDM(ECO)
34039 IF(WW.LT. 0.5D0) GO TO 130
34040 IT1=IT22
34041 IT2=IT11
34042 AM1=AM22
34043 AM2=AM11
34044 130 CONTINUE
34045C
34046C-----------------------------
34047C THE FIRST PARTICLE IS DEFINED TO BE THE FORWARD GOING ONE AT SMALL T
34048 IBN=IBARH(N)
34049 IB1=IBARH(IT1)
34050 IT11=IT1
34051 IT22=IT2
34052 AM11=AM1
34053 AM22=AM2
34054 IF(IB1.EQ.IBN) GO TO 140
34055 IT1=IT22
34056 IT2=IT11
34057 AM1=AM22
34058 AM2=AM11
34059 140 CONTINUE
34060C-----------------------------
34061C***IT1,IT2 ARE THE CREATED PARTICLES
34062C***MOMENTA AND DIRECTION COSINA IN THE CM - SYSTEM
34063C------------------------
34064 CALL DT_DTWOPA(ECM1,ECM2,PCM1,PCM2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34065 *IT1,IT2,ECM,ECMN,PCMN,N,AM1,AM2)
34066 IST=IST+1
34067 ITS(IST)=IT1
34068 AMM(IST)=AM1
34069C
34070C-----------------------------
34071C***TRANSFORMATION INTO LAB SYSTEM AND ROTATION
34072C----------------------------
34073 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD1,COF1,SIF1,
34074 &PCM1,ECM1,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34075 IST=IST+1
34076 ITS(IST)=IT2
34077 AMM(IST)=AM2
34078 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD2,COF2,SIF2,
34079 *PCM2,ECM2,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34080 150 CONTINUE
34081C
34082C-----------------------------
34083C***TEST STABLE OR UNSTABLE
34084C----------------------------
34085 IF(ITS(IST).GT.NSTAB) GO TO 160
34086 IRH=IRH+1
34087C
34088C-----------------------------
34089C***IRH IS THE NUMBER OF THE FINAL STABLE PARTICLE
34090C----------------------------
34091C* IF (REDU.LT.0.D0) GO TO 1009
34092 ITRH(IRH)=ITS(IST)
34093 PLRH(IRH)=PLS(IST)
34094 CXRH(IRH)=CXS(IST)
34095 CYRH(IRH)=CYS(IST)
34096 CZRH(IRH)=CZS(IST)
34097 ELRH(IRH)=ELS(IST)
34098 IST=IST-1
34099 IF(IST.GE.1) GO TO 150
34100 GO TO 260
34101 160 CONTINUE
34102C
34103C RANDOM CHOICE OF DECAY CHANNELS
34104C----------------------------
34105C
34106 IT=ITS(IST)
34107 ECO=AMM(IST)
34108 GAM=ELS(IST)/ECO
34109 BGAM=PLS(IST)/ECO
34110 IECO=0
34111 KZ1=K1H(IT)
34112 170 CONTINUE
34113 IECO=IECO+1
34114 VV=DT_RNDM(GAM)
34115 VV=VV-1.D-17
34116 IIK=KZ1-1
34117 180 IIK=IIK+1
34118 IF (VV.GT.WTI(IIK)) GO TO 180
34119C
34120C IIK IS THE DECAY CHANNEL
34121C----------------------------
34122 IT1=NZKI(IIK,1)
34123 I310=0
34124 190 CONTINUE
34125 I310=I310+1
34126 AM1=DT_DAMG(IT1)
34127 IT2=NZKI(IIK,2)
34128 AM2=DT_DAMG(IT2)
34129 IF (IT2-1.LT.0) GO TO 240
34130 IT3=NZKI(IIK,3)
34131 AM3=DT_DAMG(IT3)
34132 AMS=AM1+AM2+AM3
34133C
34134C IF IIK-KIN.LIM.GT.ACTUAL TOTAL CM-ENERGY, DO AGAIN RANDOM IIK-CHOICE
34135C----------------------------
34136 IF (IECO.LE.10) GO TO 200
34137 IATMPT=IATMPT+1
34138 IF(IATMPT.GT.3) THEN
34139C WRITE(LOUT,*) ' jump 4'
34140 GO TO 280
34141 ENDIF
34142 GO TO 40
34143 200 CONTINUE
34144 IF (I310.GT.50) GO TO 170
34145 IF (AMS.GT.ECO) GO TO 190
34146C
34147C FOR THE DECAY CHANNEL
34148C IT1,IT2, IT3 ARE THE PRODUCED PARTICLES FROM IT
34149C----------------------------
34150 IF (REDU.LT.0.D0) GO TO 30
34151 ITWTHC=0
34152 REDU=2.0D0
34153 IF(IT3.EQ.0) GO TO 220
34154 210 CONTINUE
34155 ITWTH=1
34156 CALL DT_DTHREP(ECO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,SIF1,
34157 *COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
34158 GO TO 230
34159 220 CALL DT_DTWOPD(ECO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,
34160 &COD2,COF2,SIF2,AM1,AM2)
34161 ITWTH=-1
34162 IT3=0
34163 230 CONTINUE
34164 ITWTHC=ITWTHC+1
34165 IF (REDU.GT.0.D0) GO TO 240
34166 REDU=2.0D0
34167 IF (ITWTHC.GT.100) GO TO 30
34168 IF (ITWTH) 220,220,210
34169 240 CONTINUE
34170 ITS(IST )=IT1
34171 IF (IT2-1.LT.0) GO TO 250
34172 ITS(IST+1) =IT2
34173 ITS(IST+2)=IT3
34174 RX=CXS(IST)
34175 RY=CYS(IST)
34176 RZ=CZS(IST)
34177 AMM(IST)=AM1
34178 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD1,COF1,SIF1,PCM1,ECM1,
34179 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34180 IST=IST+1
34181 AMM(IST)=AM2
34182 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD2,COF2,SIF2,PCM2,ECM2,
34183 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34184 IF (IT3.LE.0) GO TO 250
34185 IST=IST+1
34186 AMM(IST)=AM3
34187 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD3,COF3,SIF3,PCM3,ECM3,
34188 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34189 250 CONTINUE
34190 GO TO 150
34191 260 CONTINUE
34192 270 CONTINUE
34193 RETURN
34194 280 CONTINUE
34195C
34196C----------------------------
34197C
34198C ZERO CROSS SECTION CASE
34199C----------------------------
34200C
34201 IRH=1
34202 ITRH(1)=N
34203 CXRH(1)=CX
34204 CYRH(1)=CY
34205 CZRH(1)=CZ
34206 ELRH(1)=ELAB
34207 PLRH(1)=PLAB
34208 RETURN
34209 END
34210
34211*$ CREATE DT_RUNTT.FOR
34212*COPY DT_RUNTT
34213*
34214*===runtt==============================================================*
34215*
34216 BLOCK DATA DT_RUNTT
34217
34218 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34219 SAVE
34220
34221 COMMON /HNDRUN/ RUNTES,EFTES
34222
34223 DATA RUNTES,EFTES /100.D0,100.D0/
34224
34225 END
34226
34227*$ CREATE DT_NONAME.FOR
34228*COPY DT_NONAME
34229*
34230*===noname=============================================================*
34231*
34232 BLOCK DATA DT_NONAME
34233
34234 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34235 SAVE
34236
34237* slope parameters for HADRIN interactions
34238 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34239 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34240
34241C DATAS DATAS DATAS DATAS DATAS
34242C****** *********
34243 DATA IKII/ 0, 15, 41, 67, 82, 93, 110, 133, 148, 159, 172, 183,
34244 & 207, 224, 241, 252, 268 /
34245 DATA IEII/ 0, 21, 46, 71, 92, 109, 126, 143, 160, 173, 186, 199,
34246 & 220, 241, 262, 279, 296 /
34247 DATA IRII/ 0, 315, 965, 1615, 1930, 2117, 2406, 2797, 3052, 3195,
34248 & 3364, 3507, 4011, 4368, 4725, 4912, 5184/
34249
34250C
34251C MASSES FOR THE SLOPE B(M) IN GEV
34252C SLOPE B(M) FOR AN MESONIC SYSTEM
34253C SLOPE B(M) FOR A BARYONIC SYSTEM
34254
34255*
34256 DATA SM,BBM,BBB/ 0.8D0, 0.85D0, 0.9D0, 0.95D0, 1.D0,
34257 & 1.05D0, 1.1D0, 1.15D0, 1.2D0, 1.25D0,
34258 & 1.3D0, 1.35D0, 1.4D0, 1.45D0, 1.5D0,
34259 & 1.55D0, 1.6D0, 1.65D0, 1.7D0, 1.75D0,
34260 & 1.8D0, 1.85D0, 1.9D0, 1.95D0, 2.D0,
34261 & 15.6D0, 14.95D0, 14.3D0, 13.65D0, 13.D0,
34262 & 12.35D0, 11.7D0, 10.85D0, 10.D0, 9.15D0,
34263 & 8.3D0, 7.8D0, 7.3D0, 7.25D0, 7.2D0,
34264 & 6.95D0, 6.7D0, 6.6D0, 6.5D0, 6.3D0,
34265 & 6.1D0, 5.85D0, 5.6D0, 5.35D0, 5.1D0,
34266 & 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0,
34267 & 14.2D0, 13.4D0, 12.6D0,
34268 & 11.8D0, 11.2D0, 10.6D0, 9.8D0, 9.D0,
34269 & 8.25D0, 7.5D0, 6.25D0, 5.D0, 4.5D0, 5*4.D0 /
34270*
34271 END
34272
34273*$ CREATE DT_DAMG.FOR
34274*COPY DT_DAMG
34275*
34276*===damg===============================================================*
34277*
34278 DOUBLE PRECISION FUNCTION DT_DAMG(IT)
34279
34280 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34281 SAVE
34282
34283* particle properties (BAMJET index convention),
34284* (dublicate of DTPART for HADRIN)
34285 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34286 & K1H(110),K2H(110)
34287
34288 DIMENSION GASUNI(14)
34289 DATA GASUNI/
34290 *-1.D0,-.98D0,-.95D0,-.87D0,-.72D0,-.48D0,
34291 *-.17D0,.17D0,.48D0,.72D0,.87D0,.95D0,.98D0,1.D0/
34292 DATA GAUNO/2.352D0/
34293 DATA GAUNON/2.4D0/
34294 DATA IO/14/
34295 DATA NSTAB/23/
34296
34297 I=1
34298 IF (IT.LE.0) GO TO 30
34299 IF (IT.LE.NSTAB) GO TO 20
34300 DGAUNI=GAUNO*GAUNON/DBLE(IO-1)
34301 VV=DT_RNDM(DGAUNI)
34302 VV=VV*2.0D0-1.0D0+1.D-16
34303 10 CONTINUE
34304 VO=GASUNI(I)
34305 I=I+1
34306 V1=GASUNI(I)
34307 IF (VV.GT.V1) GO TO 10
34308 UNIGA=DGAUNI*(DBLE(I)-2.0D0+(VV-VO+1.D-16)/
34309 & (V1-VO)-(DBLE(IO)-1.0D0)*0.5D0)
34310 DAM=GAH(IT)*UNIGA/GAUNO
34311 AAM=AMH(IT)+DAM
34312 DT_DAMG=AAM
34313 RETURN
34314 20 CONTINUE
34315 DT_DAMG=AMH(IT)
34316 RETURN
34317 30 CONTINUE
34318 DT_DAMG=0.0D0
34319 RETURN
34320 END
34321
34322*$ CREATE DT_DCALUM.FOR
34323*COPY DT_DCALUM
34324*
34325*===dcalum=============================================================*
34326*
34327 SUBROUTINE DT_DCALUM(N,ITTA)
34328
34329 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34330 SAVE
34331
34332C*** C.M.S.-ENERGY AND REACTION CHANNEL THRESHOLD CALCULATION
34333
34334* particle properties (BAMJET index convention),
34335* (dublicate of DTPART for HADRIN)
34336 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34337 & K1H(110),K2H(110)
34338 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34339 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34340 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34341 & NRK(2,268),NURE(30,2)
34342
34343 IRE=NURE(N,ITTA/8+1)
34344 IEO=IEII(IRE)+1
34345 IEE=IEII(IRE +1)
34346 AM1=AMH(N )
34347 AM12=AM1**2
34348 AM2=AMH(ITTA)
34349 AM22=AM2**2
34350 DO 10 IE=IEO,IEE
34351 PLAB2=PLABF(IE)**2
34352 ELAB=SQRT(AM12+AM22+2.0D0*SQRT(PLAB2+AM12)*AM2)
34353 UMO(IE)=ELAB
34354 10 CONTINUE
34355 IKO=IKII(IRE)+1
34356 IKE=IKII(IRE +1)
34357 UMOO=UMO(IEO)
34358 DO 30 IK=IKO,IKE
34359 IF(NRK(2,IK).GT.0) GO TO 30
34360 IKI=NRK(1,IK)
34361 AMSS=5.0D0
34362 K11=K1H(IKI)
34363 K22=K2H(IKI)
34364 DO 20 IK1=K11,K22
34365 IN=NZKI(IK1,1)
34366 AMS=AMH(IN)
34367 IN=NZKI(IK1,2)
34368 IF(IN.GT.0)AMS=AMS+AMH(IN)
34369 IN=NZKI(IK1,3)
34370 IF(IN.GT.0) AMS=AMS+AMH(IN)
34371 IF (AMS.LT.AMSS) AMSS=AMS
34372 20 CONTINUE
34373 IF(UMOO.LT.AMSS) UMOO=AMSS
34374 THRESH(IK)=UMOO
34375 30 CONTINUE
34376 RETURN
34377 END
34378
34379*$ CREATE DT_DCHANH.FOR
34380*COPY DT_DCHANH
34381*
34382*===dchanh=============================================================*
34383*
34384 SUBROUTINE DT_DCHANH
34385
34386 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34387 SAVE
34388
34389 PARAMETER ( LINP = 10 ,
34390 & LOUT = 6 ,
34391 & LDAT = 9 )
34392* particle properties (BAMJET index convention),
34393* (dublicate of DTPART for HADRIN)
34394 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34395 & K1H(110),K2H(110)
34396 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34397 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34398 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34399 & NRK(2,268),NURE(30,2)
34400
34401 DIMENSION HWT(460),HWK(40),SI(5184)
34402 EQUIVALENCE (WK(1),SI(1))
34403C--------------------
34404C*** USE ONLY FOR DATAPREPARATION OF PURE HADRIN
34405C*** CALCULATION OF REACTION- AND DECAY-CHANNEL-WEIGHTS,
34406C*** THRESHOLD ENERGIES+MOMENTA OF REACTION CHNLS.
34407C*** CHANGE OF WT- AND WK-INPUTDATA INTO WEIGHTS FOR THE M.-C.-PROCEDURE
34408C*** (ADDED ONE TO EACH OTHER FOR CORRESPONDING CHANNELS)
34409C--------------------------
34410 IREG=16
34411 DO 90 IRE=1,IREG
34412 IWKO=IRII(IRE)
34413 IEE=IEII(IRE+1)-IEII(IRE)
34414 IKE=IKII(IRE+1)-IKII(IRE)
34415 IEO=IEII(IRE)+1
34416 IIKA=IKII(IRE)
34417* modifications to suppress elestic scattering 24/07/91
34418 DO 80 IE=1,IEE
34419 SIS=1.D-14
34420 SINORC=0.0D0
34421 DO 10 IK=1,IKE
34422 IWK=IWKO+IEE*(IK-1)+IE
34423 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34424 SIS=SIS+SI(IWK)*SINORC
34425 10 CONTINUE
34426 SIIN(IEO+IE-1)=SIS
34427 SIO=0.D0
34428 IF (SIS.GE.1.D-12) GO TO 20
34429 SIS=1.D0
34430 SIO=1.D0
34431 20 CONTINUE
34432 SINORC=0.0D0
34433 DO 30 IK=1,IKE
34434 IWK=IWKO+IEE*(IK-1)+IE
34435 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34436 SIO=SIO+SI(IWK)*SINORC/SIS
34437 HWK(IK)=SIO
34438 30 CONTINUE
34439 DO 40 IK=1,IKE
34440 IWK=IWKO+IEE*(IK-1)+IE
34441 40 WK(IWK)=HWK(IK)
34442 IIKI=IKII(IRE)
34443 DO 70 IK=1,IKE
34444 AM111=0.D0
34445 INRK1=NRK(1,IIKI+IK)
34446 IF (INRK1.GT.0) AM111=AMH(INRK1)
34447 AM222=0.D0
34448 INRK2=NRK(2,IIKI+IK)
34449 IF (INRK2.GT.0) AM222=AMH(INRK2)
34450 THRESH(IIKI+IK)=AM111 +AM222
34451 IF (INRK2-1.GE.0) GO TO 60
34452 INRKK=K1H(INRK1)
34453 AMSS=5.D0
34454 INRKO=K2H(INRK1)
34455 DO 50 INRK1=INRKK,INRKO
34456 INZK1=NZKI(INRK1,1)
34457 INZK2=NZKI(INRK1,2)
34458 INZK3=NZKI(INRK1,3)
34459 IF (INZK1.LE.0.OR.INZK1.GT.110) GO TO 50
34460 IF (INZK2.LE.0.OR.INZK2.GT.110) GO TO 50
34461 IF (INZK3.LE.0.OR.INZK3.GT.110) GO TO 50
34462C WRITE (6,310)INRK1,INZK1,INZK2,INZK3
34463 1000 FORMAT (4I10)
34464 AMS=AMH(INZK1)+AMH(INZK2)
34465 IF (INZK3-1.GE.0) AMS=AMS+AMH(INZK3)
34466 IF (AMSS.GT.AMS) AMSS=AMS
34467 50 CONTINUE
34468 AMS=AMSS
34469 IF (AMS.LT.UMO(IEO)) AMS=UMO(IEO)
34470 THRESH(IIKI+IK)=AMS
34471 60 CONTINUE
34472 70 CONTINUE
34473 80 CONTINUE
34474 90 CONTINUE
34475 DO 100 J=1,460
34476 100 HWT(J)=0.D0
34477 DO 120 I=1,110
34478 IK1=K1H(I)
34479 IK2=K2H(I)
34480 HV=0.D0
34481 IF (IK2.GT.460)IK2=460
34482 IF (IK1.LE.0)IK1=1
34483 DO 110 J=IK1,IK2
34484 HV=HV+WTI(J)
34485 HWT(J)=HV
34486 JI=J
34487 110 CONTINUE
34488 IF (ABS(HV-1.0D0).GT.1.D-4) WRITE(LOUT,1010)I,JI,HV
34489 1010 FORMAT (35H ERROR IN HWT, FALSE USE OF CHANWH ,2I6,F10.2)
34490 120 CONTINUE
34491 DO 130 J=1,460
34492 130 WTI(J)=HWT(J)
34493 RETURN
34494 END
34495
34496*$ CREATE DT_DHADDE.FOR
34497*COPY DT_DHADDE
34498*
34499*===dhadde=============================================================*
34500*
34501 SUBROUTINE DT_DHADDE
34502
34503 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34504 SAVE
34505
34506* particle properties (BAMJET index convention)
34507 CHARACTER*8 ANAME
34508 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
34509 & IICH(210),IIBAR(210),K1(210),K2(210)
34510* HADRIN: decay channel information
34511 PARAMETER (IDMAX9=602)
34512 CHARACTER*8 ZKNAME
34513 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
34514* particle properties (BAMJET index convention),
34515* (dublicate of DTPART for HADRIN)
34516 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34517 & K1H(110),K2H(110)
34518 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34519* decay channel information for HADRIN
34520 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34521 & K1Z(16),K2Z(16),WTZ(153),II22,
34522 & NZK1(153),NZK2(153),NZK3(153)
34523
34524 DATA IRETUR/0/
34525
34526 IRETUR=IRETUR+1
34527 AMH(31)=0.48D0
34528 IF (IRETUR.GT.1) RETURN
34529 DO 10 I=1,94
34530 AMH(I) = AAM(I)
34531 GAH(I) = GA(I)
34532 TAUH(I) = TAU(I)
34533 ICHH(I) = IICH(I)
34534 IBARH(I) = IIBAR(I)
34535 K1H(I) = K1(I)
34536 K2H(I) = K2(I)
34537 10 CONTINUE
34538**sr
34539C AMH(1)=0.93828D0
34540 AMH(1)=0.9383D0
34541**
34542 AMH(2)=AMH(1)
34543 DO 20 I=26,30
34544 K1H(I)=452
34545 K2H(I)=452
34546 20 CONTINUE
34547 DO 30 I=1,307
34548 WTI(I) = WT(I)
34549 NZKI(I,1) = NZK(I,1)
34550 NZKI(I,2) = NZK(I,2)
34551 NZKI(I,3) = NZK(I,3)
34552 30 CONTINUE
34553 DO 40 I=1,16
34554 L=I+94
34555 AMH(L)=AMZ(I)
34556 GAH( L)=GAZ(I)
34557 TAUH( L)=TAUZ(I)
34558 ICHH( L)=ICHZ(I)
34559 IBARH( L)=IBARZ(I)
34560 K1H( L)=K1Z(I)
34561 K2H( L)=K2Z(I)
34562 40 CONTINUE
34563 DO 50 I=1,153
34564 L=I+307
34565 WTI(L) = WTZ(I)
34566 NZKI(L,3) = NZK3(I)
34567 NZKI(L,2) = NZK2(I)
34568 NZKI(L,1) = NZK1(I)
34569 50 CONTINUE
34570 RETURN
34571 END
34572
34573*$ CREATE IDT_IEFUND.FOR
34574*COPY IDT_IEFUND
34575*
34576*===iefund=============================================================*
34577*
34578 INTEGER FUNCTION IDT_IEFUND(PL,IRE)
34579
34580 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34581 SAVE
34582
34583C*****IEFUN CALCULATES A MOMENTUM INDEX
34584
34585 PARAMETER ( LINP = 10 ,
34586 & LOUT = 6 ,
34587 & LDAT = 9 )
34588 COMMON /HNDRUN/ RUNTES,EFTES
34589 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34590 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34591 & NRK(2,268),NURE(30,2)
34592
34593 IPLA=IEII(IRE)+1
34594 *+1
34595 IPLE=IEII(IRE+1)
34596 IF (PL.LT.0.) GO TO 30
34597 DO 10 I=IPLA,IPLE
34598 J=I-IPLA+1
34599 IF (PL.LE.PLABF(I)) GO TO 60
34600 10 CONTINUE
34601 I=IPLE
34602 IF ( EFTES.GT.40.D0) GO TO 20
34603 EFTES=EFTES+1.0D0
34604 WRITE(LOUT,1000)PL,J
34605 20 CONTINUE
34606 GO TO 70
34607 30 CONTINUE
34608 DO 40 I=IPLA,IPLE
34609 J=I-IPLA+1
34610 IF (-PL.LE.UMO(I)) GO TO 60
34611 40 CONTINUE
34612 I=IPLE
34613 IF ( EFTES.GT.40.D0) GO TO 50
34614 EFTES=EFTES+1.0D0
34615 WRITE(LOUT,1000)PL,I
34616 50 CONTINUE
34617 60 CONTINUE
34618 70 CONTINUE
34619 IDT_IEFUND=I
34620 RETURN
34621 1000 FORMAT(14H PLAB OR -ECM=,E12.4,27H IS OUT OF CONSIDERED RANGE ,
34622 +7H IEFUN=,I5)
34623 END
34624
34625*$ CREATE DT_DSIGIN.FOR
34626*COPY DT_DSIGIN
34627*
34628*===dsigin=============================================================*
34629*
34630 SUBROUTINE DT_DSIGIN(IRE ,PLAB,N,IE ,AMT ,AMN,ECM ,SI ,ITAR)
34631
34632 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34633 SAVE
34634
34635* particle properties (BAMJET index convention),
34636* (dublicate of DTPART for HADRIN)
34637 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34638 & K1H(110),K2H(110)
34639 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34640 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34641 & NRK(2,268),NURE(30,2)
34642
34643 IE=IDT_IEFUND(PLAB,IRE)
34644 IF (IE.LE.IEII(IRE)) IE=IE+1
34645 AMT=AMH(ITAR)
34646 AMN=AMH(N)
34647 AMN2=AMN*AMN
34648 AMT2=AMT*AMT
34649 ECM=SQRT(AMN2+AMT2+2.0D0*AMT*SQRT(AMN2+PLAB**2))
34650C*** INTERPOLATION PREPARATION
34651 ECMO=UMO(IE)
34652 ECM1=UMO(IE-1)
34653 DECM=ECMO-ECM1
34654 DEC=ECMO-ECM
34655 IIKI=IKII(IRE)+1
34656 EKLIM=-THRESH(IIKI)
34657 WOK=SIIN(IE)
34658 WDK=WOK-SIIN(IE-1)
34659 IF (ECM.GT.ECMO) WDK=0.0D0
34660C*** INTERPOLATION IN CHANNEL WEIGHTS
34661 IELIM=IDT_IEFUND(EKLIM,IRE)
34662 DELIM=UMO(IELIM)+EKLIM
34663 *+1.D-16
34664 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
34665 IF (DELIM*DELIM-DETE*DETE) 20,20,10
34666 10 DECC=DELIM
34667 GO TO 30
34668 20 DECC=DECM
34669 30 CONTINUE
34670 WKK=WOK-WDK*DEC/(DECC+1.D-9)
34671 IF (WKK.LT.0.0D0) WKK=0.0D0
34672 SI=WKK+1.D-12
34673 IF (-EKLIM.GT.ECM) SI=1.D-14
34674 RETURN
34675 END
34676
34677*$ CREATE DT_DTCHOI.FOR
34678*COPY DT_DTCHOI
34679*
34680*===dtchoi=============================================================*
34681*
34682 SUBROUTINE DT_DTCHOI(T,P,PP,E,EE,I,II,N,AM1,AM2)
34683
34684 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34685 SAVE
34686
34687C ****************************
34688C TCHOIC CALCULATES A RANDOM VALUE
34689C FOR THE FOUR-MOMENTUM-TRANSFER T
34690C ****************************
34691
34692* particle properties (BAMJET index convention),
34693* (dublicate of DTPART for HADRIN)
34694 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34695 & K1H(110),K2H(110)
34696* slope parameters for HADRIN interactions
34697 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34698
34699 AMA=AM1
34700 AMB=AM2
34701 IF (I.GT.30.AND.II.GT.30) GO TO 20
34702 III=II
34703 AM3=AM2
34704 IF (I.LE.30) GO TO 10
34705 III=I
34706 AM3=AM1
34707 10 CONTINUE
34708 GO TO 30
34709 20 CONTINUE
34710 III=II
34711 AM3=AM2
34712 IF (AMA.LE.AMB) GO TO 30
34713 III=I
34714 AM3=AM1
34715 30 CONTINUE
34716 IB=IBARH(III)
34717 AMA=AM3
34718 K=INT((AMA-0.75D0)/0.05D0)
34719 IF (K-2.LT.0) K=1
34720 IF (K-26.GE.0) K=25
34721 IF (IB)50,40,50
34722 40 BM=BBM(K)
34723 GO TO 60
34724 50 BM=BBB(K)
34725 60 CONTINUE
34726C NORMALIZATION
34727 TMIN=-2.0D0*(E*EE-P*PP)+AMH(N)**2+AM1 **2
34728 TMAX=-2.0D0*(E*EE+P*PP)+AMH(N)**2+AM1 **2
34729 VB=DT_RNDM(TMIN)
34730**sr test
34731C IF (VB.LT.0.2D0) BM=BM*0.1
34732C **0.5
34733 BM = BM*5.05D0
34734**
34735 TMI=BM*TMIN
34736 TMA=BM*TMAX
34737 ETMA=0.D0
34738 IF (ABS(TMA).GT.120.D0) GO TO 70
34739 ETMA=EXP(TMA)
34740 70 CONTINUE
34741 AN=(1.0D0/BM)*(EXP(TMI)-ETMA)
34742C*** RANDOM CHOICE OF THE T - VALUE
34743 R=DT_RNDM(TMI)
34744 T=(1.0D0/BM)*LOG(ETMA+R*AN*BM)
34745 RETURN
34746 END
34747
34748*$ CREATE DT_DTWOPA.FOR
34749*COPY DT_DTWOPA
34750*
34751*===dtwopa=============================================================*
34752*
34753 SUBROUTINE DT_DTWOPA(E1,E2,P1,P2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34754 &IT1,IT2,UMOO,ECM,P,N,AM1,AM2)
34755
34756 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34757 SAVE
34758
34759C ******************************************************
34760C QUASI TWO PARTICLE PRODUCTION
34761C TWOPAR CALCULATES THE ENERGYS AND THE MOMENTA
34762C FOR THE CREATED PARTICLES OR RESONANCES IT1 AND IT2
34763C IN THE CM - SYSTEM
34764C COD1,COD2,COF1,COF2,SIF1,SIF2 ARE THE ANGLES FOR
34765C SPHERICAL COORDINATES
34766C ******************************************************
34767
34768* particle properties (BAMJET index convention),
34769* (dublicate of DTPART for HADRIN)
34770 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34771 & K1H(110),K2H(110)
34772
34773 AMA=AM1
34774 AMB=AM2
34775 AMA2=AMA*AMA
34776 E1=((UMOO-AMB)*(UMOO+AMB) + AMA2)/(2.0D0*UMOO)
34777 E2=UMOO - E1
34778 IF (E1.LT.AMA*1.00001D0) E1=AMA*1.00001D0
34779 AMTE=(E1-AMA)*(E1+AMA)
34780 AMTE=AMTE+1.D-18
34781 P1=SQRT(AMTE)
34782 P2=P1
34783C / P2 / = / P1 / BUT OPPOSITE DIRECTIONS
34784C DETERMINATION OF THE ANGLES
34785C COS(THETA1)=COD1 COS(THETA2)=COD2
34786C SIN(PHI1)=SIF1 SIN(PHI2)=SIF2
34787C COS(PHI1)=COF1 COS(PHI2)=COF2
34788C PHI IS UNIFORMLY DISTRIBUTED IN ( 0,2*PI )
34789 CALL DT_DSFECF(COF1,SIF1)
34790 COF2=-COF1
34791 SIF2=-SIF1
34792C CALCULATION OF THETA1
34793 CALL DT_DTCHOI(TR,P,P1,ECM,E1,IT1,IT2,N,AM1,AM2)
34794 COD1=(TR-AMA2-AMH(N)*AMH(N)+2.0D0*ECM*E1)/(2.0D0*P*P1+1.D-18)
34795 IF (COD1.GT.0.9999999D0) COD1=0.9999999D0
34796 COD2=-COD1
34797 RETURN
34798 END
34799
34800*$ CREATE DT_ZK.FOR
34801*COPY DT_ZK
34802*
34803*===zk=================================================================*
34804*
34805 BLOCK DATA DT_ZK
34806
34807 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34808 SAVE
34809
34810* decay channel information for HADRIN
34811 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34812 & K1Z(16),K2Z(16),WTZ(153),II22,
34813 & NZK1(153),NZK2(153),NZK3(153)
34814* decay channel information for HADRIN
34815 CHARACTER*8 ANAMZ,ZKNAM4,ZKNAM5,ZKNAM6
34816 COMMON /HNADDN/ ANAMZ(16),ZKNAM4(9),ZKNAM5(90),ZKNAM6(54)
34817
34818* Particle masses in GeV *
34819 DATA AMZ/ 3*2.2D0, 0.9576D0, 3*1.887D0, 2.4D0, 2.03D0, 2*1.44D0,
34820 & 2*1.7D0, 3*0.D0/
34821* Resonance width Gamma in GeV *
34822 DATA GAZ/ 3*.2D0, .1D0, 4*.2D0, .18D0, 2*.2D0, 2*.15D0, 3*0.D0 /
34823* Mean life time in seconds *
34824 DATA TAUZ / 16*0.D0 /
34825* Charge of particles and resonances *
34826 DATA ICHZ/ 0, 1, 3*0, 1, -1, 0, 1, -1, 0, 0, 1 , 3*0 /
34827* Baryonic charge *
34828 DATA IBARZ/ 2, 7*0, 1, -1, -1, 1, 1, 3*0 /
34829* First number of decay channels used for resonances *
34830* and decaying particles *
34831 DATA K1Z/ 308,310,313,317,322,365,393,421,425,434,440,446,449,
34832 & 3*460/
34833* Last number of decay channels used for resonances *
34834* and decaying particles *
34835 DATA K2Z/ 309,312,316,321,364,392,420,424,433,439,445,448,451,
34836 & 3*460/
34837* Weight of decay channel *
34838 DATA WTZ/ .17D0, .83D0, 2*.33D0, .34D0, .17D0, 2*.33D0, .17D0,
34839 & .01D0, .13D0, .36D0, .27D0, .23D0, .0014D0, .0029D0, .0014D0,
34840 & .0029D0, 4*.0007D0, .0517D0, .0718D0, .0144D0, .0431D0, .0359D0,
34841 & .0718D0, .0014D0, .0273D0, .0014D0, .0431D0, 2*.0129D0, .0259D0,
34842 & .0517D0, .0359D0, .0014D0, 2*.0144D0, .0129D0, .0014D0, .0259D0,
34843 & .0359D0, .0072D0, .0474D0, .0948D0, .0259D0, .0072D0, .0144D0,
34844 & .0287D0, .0431D0, .0144D0, .0287D0, .0474D0, .0144D0, .0075D0,
34845 & .0057D0, .0019D0, .0038D0, .0095D0, 2*.0014D0, .0191D0, .0572D0,
34846 & .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0, .0686D0,.0172D0,
34847 & .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0, .0190D0,
34848 & .0057D0, .0019D0, .0038D0, .0095D0, .0014D0, .0014D0, .0191D0,
34849 & .0572D0, .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0,.0686D0,
34850 & .0172D0, .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0,
34851 & .0190D0, 4*.25D0, 2*.2D0, .12D0, .1D0, .07D0, .07D0, .14D0,
34852 & 2*.05D0, .0D0, .3334D0, .2083D0, 2*.125D0, .2083D0, .0D0, .125D0,
34853 & .2083D0, .3334D0, .2083D0, .125D0, .3D0, .05D0, .65D0, .3D0,
34854 & .05D0, .65D0, 9*1.D0 /
34855* Particle numbers in decay channel *
34856 DATA NZK1/ 8, 1, 2, 9, 1, 2, 9, 2, 9, 7, 13, 31, 15, 24, 23, 13,
34857 & 23, 13, 2*23, 14, 13, 23, 31, 98, 2*33, 32, 23, 14, 13, 35, 2*23,
34858 & 14, 13, 33, 23, 98, 31, 23, 14, 13, 35, 2*33, 32, 23, 35, 33, 32,
34859 & 98, 5*35, 4*13, 23, 13, 98, 32, 33, 23, 13, 23, 13, 14, 13, 32,
34860 & 13, 98, 23, 13, 2*32, 13, 33, 32, 98, 2*35, 4*14, 23, 14, 98,
34861 & 2*34, 23, 14, 23, 2*14, 13, 34, 14, 98, 23, 14, 2*34, 14, 33, 32,
34862 & 98, 2*35, 104, 61, 105, 62, 1, 17, 21, 17, 22, 2*21, 22, 21, 2,
34863 & 67, 68, 69, 2, 2*9, 68, 69, 70, 2, 9, 2*24, 15, 2*25, 16, 9*0/
34864 DATA NZK2/ 2*8, 1, 8, 9, 2*8, 2*1, 7, 14, 13, 16, 25, 23, 14, 23,
34865 & 14, 31, 33, 32, 34, 35, 31, 23, 31, 33, 34, 31, 32, 34, 31, 33,
34866 & 32, 2*33, 35, 31, 33, 31, 33, 32, 34, 35, 31, 33, 34, 35, 31,
34867 & 4*33, 32, 3*35, 2*23, 13, 31, 32, 33, 13, 31, 32, 2*31, 32, 33,
34868 & 32, 32, 35, 31, 2*32, 33, 31, 33, 35, 33, 3*32, 35, 2*23, 14,
34869 & 31, 34, 33, 14, 31, 33, 2*31, 34, 32, 33, 34, 35, 31, 2*34, 33,
34870 & 31, 33, 35, 33, 2*34, 33, 35, 1, 2, 8, 9, 25, 13, 35, 2*32, 33,
34871 & 31, 13, 23, 31, 13, 23, 14, 79, 80, 31, 13, 23, 14, 78, 79, 8,
34872 & 1, 8, 1, 8, 1, 9*0 /
34873 DATA NZK3/ 23, 14, 2*13, 23, 13, 2*23, 14, 0, 7, 14, 4*0, 2*23,
34874 & 10*0, 33, 2*31, 0, 33, 34, 32, 34, 0, 35, 0, 31, 3*35, 0, 3*31,
34875 & 35, 31, 33, 34, 31, 33, 34, 31, 33, 35, 0, 23, 14, 6*0, 32, 3*33,
34876 & 32, 34, 0, 35, 0, 2*35, 2*31, 35, 32, 34, 31, 33, 32, 0, 23, 13,
34877 & 6*0, 34, 2*33, 34, 33, 34, 0, 35, 0,2*35, 2*31, 35, 2*34, 31,
34878 & 2*34, 25*0, 23, 2*14, 23, 2*13, 9*0 /
34879* Particle names *
34880 DATA ANAMZ / 'NNPI', 'ANPPI', 'ANNPI', ' ETS ',' PAP ',' PAN ',
34881 & 'APN', 'DEO ', 'S+2030', 'AN*-14', 'AN*014','KONPI ','AKOPPI',
34882 & 3*'BLANK' /
34883* Name of decay channel *
34884 DATA ZKNAM4/'NNPI0','PNPI-','APPPI+','ANNPI+','ANPPI0','APNPI+',
34885 & 'ANNPI0','APPPI0','ANPPI-'/
34886 DATA ZKNAM5/' GAGA ','P+P-GA','ETP+P-','K+K- ','K0AK0 ',
34887 & ' POPO ',' P+P- ','POPOPO','P+P0P-','P0ET ','&0R0 ','P-R+ ',
34888 & 'P+R- ','POOM ',' ETET ','ETSP0 ','R0ET ',' R0R0 ','R+R- ',
34889 & 'P0ETR0','P-ETR+','P+ETR-',' OMET ','P0R0R0','P0R+R-','P-R+R0',
34890 & 'P+R-R0','R0OM ','P0ETOM','ETSR0 ','ETETET','P0R0OM','P-R+OM',
34891 & 'P+R-OM','OMOM ','R0ETET','R0R0ET','R+R-ET','P0OMOM','OMETET',
34892 & 'R0R0R0','R+R0R-','ETSRET','OMR0R0','OMR+R-','OMOMET','OMOMR0',
34893 & 'OMOMOM',
34894 & ' P+PO ','P+POPO','P+P+P-','P+ET ','P0R+ ','P+R0 ','ETSP+ ',
34895 & 'R+ET ',' R0R+ ','POETR+','P+ETR0','POR+R-','P+R0R0','P-R+R+',
34896 & 'P+R-R+','R+OM ','P+ETOM','ETSR+ ','POR+OM','P+R0OM','R+ETET',
34897 & 'R+R0ET','P+OMOM','R0R0R+','R+R+R-','ETSR+E','OMR+R0','OMOMR+',
34898 & 'P-PO ','P-POPO','P-P-P+','P-ET ','POR- ','P-R0 ','ETSP- ',
34899 & 'R-ET ','R-R0 ','POETR-','P-ETR0','POR-R0','P-R+R-','P-R0R0'/
34900 DATA ZKNAM6/'P+R-R-','R-OM ','P-ETOM','ETSR- ','POR-OM','P-R0OM',
34901 & 'R-ETET','R-R0ET','P-OMOM','R0R0R-','R+R-R-','ETSR-E','OMR0R-',
34902 & 'OMOMR-', 'PAN-14','APN+14','NAN014','ANN014','PAKO ','LPI+ ',
34903 & 'SI+OM','LAMRO+','SI0RO+','SI+RO0','SI+ETA','SI0PI+','SI+PI0',
34904 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHOO','ANRHO-','ANETA ',
34905 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0',
34906 & 'KONPIO','KOPPI-','K+NPI-','AKOPPO','AKONP+','K-PPI+',
34907 & 9*'BLANK'/
34908*= end*block.zk *
34909 END
34910
34911*$ CREATE DT_BLKD43.FOR
34912*COPY DT_BLKD43
34913*
34914*===blkd43=============================================================*
34915*
34916 BLOCK DATA DT_BLKD43
34917
34918 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34919 SAVE
34920
34921*
34922*=== reac =============================================================*
34923*
34924*----------------------------------------------------------------------*
34925* *
34926* Created on 10 december 1991 by Alfredo Ferrari & Paola Sala *
34927* Infn - Milan *
34928* *
34929* Last change on 10-dec-91 by Alfredo Ferrari *
34930* *
34931* This is the original common reac of Hadrin *
34932* *
34933*----------------------------------------------------------------------*
34934*
34935 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34936 & NRK(2,268),NURE(30,2)
34937
34938 DIMENSION
34939 & UMOPI(92), UMOKC(68), UMOP(39), UMON(63), UMOK0(34),
34940 & PLAPI(92), PLAKC(68), PLAP(39), PLAN(63), PLAK0(34),
34941 & SPIKP1(315), SPIKPU(278), SPIKPV(372),
34942 & SPIKPW(278), SPIKPX(372), SPIKP4(315),
34943 & SPIKP5(187), SPIKP6(289),
34944 & SKMPEL(102), SPIKP7(289), SKMNEL(68), SPIKP8(187),
34945 & SPIKP9(143), SPIKP0(169), SPKPV(143),
34946 & SAPPEL(105), SPIKPE(399), SAPNEL(84), SPIKPZ(273),
34947 & SANPEL(84) , SPIKPF(273),
34948 & SPKP15(187), SPKP16(272),
34949 & NRKPI(164), NRKKC(132), NRKP(70), NRKN(116), NRKK0(54),
34950 & NURELN(60)
34951*
34952 DIMENSION NRKLIN(532)
34953 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34954 EQUIVALENCE ( UMO( 1), UMOPI(1)), ( UMO( 93), UMOKC(1))
34955 EQUIVALENCE ( UMO(161), UMOP(1)), ( UMO(200), UMON(1))
34956 EQUIVALENCE ( UMO(263), UMOK0(1))
34957 EQUIVALENCE ( PLABF( 1), PLAPI(1)), ( PLABF( 93), PLAKC(1))
34958 EQUIVALENCE ( PLABF(161), PLAP(1)), ( PLABF(200), PLAN(1))
34959 EQUIVALENCE ( PLABF(263), PLAK0(1))
34960 EQUIVALENCE ( WK( 1), SPIKP1(1)), ( WK( 316), SPIKPU(1))
34961 EQUIVALENCE ( WK( 594), SPIKPV(1)), ( WK( 966), SPIKPW(1))
34962 EQUIVALENCE ( WK(1244), SPIKPX(1)), ( WK(1616), SPIKP4(1))
34963 EQUIVALENCE ( WK(1931), SPIKP5(1)), ( WK(2118), SPIKP6(1))
34964 EQUIVALENCE ( WK(2407), SKMPEL(1)), ( WK(2509), SPIKP7(1))
34965 EQUIVALENCE ( WK(2798), SKMNEL(1)), ( WK(2866), SPIKP8(1))
34966 EQUIVALENCE ( WK(3053), SPIKP9(1)), ( WK(3196), SPIKP0(1))
34967 EQUIVALENCE ( WK(3365), SPKPV(1)), ( WK(3508), SAPPEL(1))
34968 EQUIVALENCE ( WK(3613), SPIKPE(1)), ( WK(4012), SAPNEL(1))
34969 EQUIVALENCE ( WK(4096), SPIKPZ(1)), ( WK(4369), SANPEL(1))
34970 EQUIVALENCE ( WK(4453), SPIKPF(1)), ( WK(4726), SPKP15(1))
34971 EQUIVALENCE ( WK(4913), SPKP16(1))
34972 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34973 EQUIVALENCE (NRKLIN( 1), NRKPI(1)), (NRKLIN( 165), NRKKC(1))
34974 EQUIVALENCE (NRKLIN( 297), NRKP(1)), (NRKLIN( 367), NRKN(1))
34975 EQUIVALENCE (NRKLIN( 483), NRKK0(1))
34976 EQUIVALENCE (NURE(1,1), NURELN(1))
34977*
34978**** pi- p data *
34979**** pi+ n data *
34980 DATA PLAPI / 0.D0, .3D0, .5D0, .6D0, .7D0, .8D0, .9D0, .95D0,1.D0,
34981 & 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0,
34982 & 3.D0, 3.5D0, 4.D0, 0.D0, .285D0, .4D0, .45D0, .5D0, .6D0, .7D0,
34983 & .75D0, .8D0, .85D0, .9D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0,
34984 & 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0,
34985 & .285D0, .4D0, .45D0, .5D0, .6D0, .7D0, .75D0, .8D0, .85D0, .9D0,
34986 & 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0,
34987 & 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0, .3D0, .5D0, .6D0, .7D0,
34988 & .8D0, .9D0, .95D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0,
34989 & 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0 /
34990 DATA PLAKC /
34991 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
34992 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
34993 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
34994 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
34995 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
34996 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
34997 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
34998 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
34999 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35000 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35001 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35002 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35003 DATA PLAK0 /
35004 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35005 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35006 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35007 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35008 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35009 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35010* pp pn np nn *
35011 DATA PLAP /
35012 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35013 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35014 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35015 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35016 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35017 & 3.43D0, 3.75D0, 4.07D0, 4.43D0 /
35018* app apn anp ann *
35019 DATA PLAN /
35020 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35021 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35022 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35023 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35024 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35025 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35026 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35027 & .74D0, 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 DATA SIIN / 296*0.D0 /
35030 DATA UMOPI/ 1.08D0,1.233D0,1.302D0,1.369D0,1.496D0,
35031 & 1.557D0,1.615D0,1.6435D0,
35032 & 1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,2.071D0,2.159D0,
35033 & 2.286D0,2.366D0,2.482D0,2.56D0,
35034 & 2.735D0,2.90D0,
35035 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35036 & 1.496D0,1.527D0,1.557D0,
35037 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35038 & 2.071D0,2.159D0,2.286D0,2.366D0,
35039 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35040 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35041 & 1.496D0,1.527D0,1.557D0,
35042 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35043 & 2.071D0,2.159D0,2.286D0,2.366D0,
35044 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35045 & 1.08D0,1.233D0,1.302D0,1.369D0,1.496D0,
35046 & 1.557D0,1.615D0,1.6435D0,
35047 & 1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,2.071D0,2.159D0,
35048 & 2.286D0,2.366D0,2.482D0,2.56D0,
35049 & 2.735D0, 2.90D0/
35050 DATA UMOKC/ 1.44D0,
35051 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35052 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35053 & 3.1D0,1.44D0,
35054 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35055 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35056 & 3.1D0,1.44D0,
35057 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35058 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35059 & 3.1D0,1.44D0,
35060 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35061 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35062 & 3.1D0/
35063 DATA UMOK0/ 1.44D0,
35064 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35065 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35066 & 3.1D0,1.44D0,
35067 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35068 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35069 & 3.1D0/
35070* pp pn np nn *
35071 DATA UMOP/
35072 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35073 & 3.D0,3.1D0,3.2D0,
35074 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35075 & 3.D0,3.1D0,3.2D0,
35076 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35077 & 3.D0,3.1D0,3.2D0/
35078* app apn anp ann *
35079 DATA UMON /
35080 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35081 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35082 & 3.D0,3.1D0,3.2D0,
35083 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35084 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35085 & 3.D0,3.1D0,3.2D0,
35086 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35087 & 2.D0,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**** reaction channel state particles *
35090 DATA NRKPI / 13, 1, 15, 21, 81, 0, 13, 54, 23, 53, 13, 63, 13, 58,
35091 & 23, 57, 13, 65, 1, 32, 53, 31, 54, 32, 53, 33, 53, 35, 63, 32,
35092 & 13, 8, 23, 1, 17, 15, 21, 24, 22, 15, 82, 0, 61, 0, 13, 55, 23,
35093 & 54, 14, 53, 13, 64, 23, 63, 13, 59, 23, 58, 14, 57, 13, 66, 23,
35094 & 65, 1, 31, 8, 32, 1, 33, 1, 35, 54, 31, 55, 32, 54, 33, 53, 34,
35095 & 54, 35, 14, 1, 23, 8, 17, 24, 20, 15, 22, 24, 83, 0, 62, 0, 14,
35096 & 54, 23, 55, 13, 56, 14, 63, 23, 64, 14, 58, 23, 59, 13, 60, 14,
35097 & 65, 23, 66, 8, 31, 1, 34, 8, 33, 8, 35, 55, 31, 54, 34, 55, 33,
35098 & 56, 32, 55, 35, 14, 8, 24, 20, 84, 0, 14, 55, 23, 56, 14, 64, 14,
35099 & 59, 23, 60, 14, 66, 8, 34, 56, 31, 55, 34, 56, 33, 56, 35, 64,34/
35100 DATA NRKKC/ 15, 1, 89, 0, 24, 53, 15, 54, 1, 36, 1, 40, 1, 44, 36,
35101 & 63, 15, 63, 45, 53, 44, 54, 15, 8, 24, 1, 91, 0, 24, 54, 15, 55,
35102 & 8, 36, 1, 37, 8, 40, 1, 41, 8, 44, 1, 45, 36, 64, 37, 63, 15, 64,
35103 & 24, 63, 45, 54, 44, 55, 16, 1, 25, 8, 17, 23, 21, 14, 20,
35104 & 13, 22, 23, 90, 0, 38, 1, 39, 8, 16, 54, 25, 55, 1, 42, 8, 43,
35105 & 16, 63, 25, 64, 39, 64, 38, 63, 46, 54, 47, 55, 8, 47, 1, 46, 52,
35106 & 0, 51, 0, 16, 8, 17, 14, 20, 23, 22, 14, 92, 0, 8, 38, 16, 55,
35107 & 25, 56, 8, 42, 16, 64, 38, 64, 46, 55, 47, 56, 8, 46, 94, 0 /
35108* *
35109* k0 p k0 n ak0 p ak/ n *
35110* *
35111 DATA NRKK0 / 24, 8, 106, 0, 15, 56, 24, 55, 37, 8, 41, 8, 45, 8,
35112 & 37, 64, 24, 64, 44, 56, 45, 55, 25, 1, 17, 13, 22, 13, 21, 23,
35113 & 107, 0, 39, 1, 25, 54, 16, 53, 43, 1, 25, 63, 39, 63, 47, 54, 46,
35114 & 53, 47, 1, 103, 0, 93, 0/
35115* pp pn np nn *
35116 DATA NRKP / 1, 1, 85, 0, 8, 53, 1, 54, 1, 63, 8, 57, 1, 58, 2*54,
35117 & 53, 55, 63, 54, 64, 53, 1, 8, 86, 0, 8, 54, 1, 55, 8, 63, 1, 64,
35118 & 8, 58, 1, 59, 64, 54, 63, 55, 54, 55, 53, 56, 77, 0, 2*8, 95, 0,
35119 & 8, 55, 1, 56, 8, 64, 8, 59, 1, 60, 2*55, 54, 56, 64, 55, 63, 56 /
35120* app apn anp ann *
35121 DATA NRKN/ 1, 2, 17, 18, 15, 16, 8, 9, 13, 14, 99, 0, 87, 0, 1,
35122 & 68, 8, 69, 2, 54, 9, 55, 102, 0, 2, 63, 9, 64, 1, 75, 8, 76, 53,
35123 & 67, 54, 68, 55, 69, 56, 70, 63, 68, 64, 69, 75, 54, 76, 55, 2, 8,
35124 & 18, 20, 16, 24, 14, 23, 101, 0, 88, 0, 2, 55, 9, 56, 1, 67, 8,
35125 & 68, 2, 64, 8, 75, 2, 59, 8, 72, 68, 55, 67, 54, 69, 56, 1, 9, 18,
35126 & 21, 15, 25, 13, 23, 100, 0, 96, 0, 2, 53, 9, 54, 1, 69, 8, 70, 1,
35127 & 76, 9, 63, 1, 73, 9, 58, 55, 70, 53, 68, 54, 69 /
35128**** channel cross section *
35129 DATA SPIKP1/ 0.D0, 300.D0, 40.D0, 20.D0, 13.D0,8.5D0,8.D0, 9.5D0,
35130 & 12.D0,14.D0,15.5D0,20.D0,17.D0,13.D0,10.D0,9.D0,8.5D0,8.D0,7.8D0,
35131 & 7.3D0, 6.7D0, 9*0.D0,.23D0,.35D0,.7D0,.52D0,.4D0,.3D0,.2D0,.15D0,
35132 & .13D0, .11D0, .09D0, .07D0, 0.D0, .033D0,.8D0,1.35D0,1.35D0,.5D0,
35133 & 15*0.D0, 3*0.D0,.00D0,0.80D0,2.2D0,3.6D0,4.6D0,4.7D0,3.5D0,2.4D0,
35134 &1.8D0,1.4D0,.75D0,.47D0,.25D0,.13D0,.08D0,6*0.D0,0.D0,1.2D0,3.3D0,
35135 & 5.4D0,6.9D0,7.3D0,5.3D0,3.6D0,2.7D0,2.2D0,1.1D0,.73D0,.4D0,.22D0,
35136 & .12D0,9*0.D0,.0D0,0.D0,2.0D0,4.4D0,6.8D0,9.9D0,7.9D0,6.0D0,3.8D0,
35137 &2.5D0,2.D0,1.4D0,1.D0,.6D0,.35D0,10*0.D0,.25D0,.55D0,.75D0,1.25D0,
35138 & 1.9D0,2.D0,1.8D0,1.5D0,1.25D0,1.D0,.8D0,6*0.D0,4*0.D0,.4D0,.85D0,
35139 & 1.1D0, 1.85D0, 2.8D0, 3.D0,2.7D0,2.2D0,1.85D0,1.5D0,1.2D0,6*0.D0,
35140 & 6*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0, 5.6D0,
35141 & 5.2D0, 6*0.D0, 2*0.D0, .0D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0,
35142 & 2.75D0, 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 6*0.D0, 3*0.D0,
35143 & .0D0, .45D0, 1.4D0, 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0,
35144 & 8*0.D0, 5*0.D0, .0D0, .0D0, .6D0, .8D0, .95D0, .8D0, .7D0, .6D0,
35145 & .5D0, .4D0, 6*0.D0, 5*0.D0, .0D0, .00D0, .85D0, 1.2D0, 1.4D0,
35146 & 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 6*0.D0, 5*0.D0, .0D0, .00D0,
35147 & 1.D0, 1.5D0, 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 6*0.D0,
35148 & 10*0.D0, .5D0, 2.0D0, 3.3D0, 5.4D0, 7.D0 /
35149**** pi+ n data *
35150 DATA SPIKPU/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 20.D0,
35151 & 20.D0, 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35152 & 10.D0, 10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35153 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35154 & 4.2D0, 7.5D0, 3.4D0, 2.5D0, 2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0,
35155 & .6D0, .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0,
35156 & .48D0, .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0,
35157 & .065D0, .05D0, .04D0, 12*0.D0, .2D0, .25D0, .25D0, .2D0, .1D0,
35158 & .08D0, .06D0, .045D0, .03D0, .02D0, .01D0, .005D0, .003D0,
35159 & 12*0.D0, .3D0, .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0,
35160 & .09D0, .08D0, .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0,
35161 & 3.1D0, 4.5D0, 2.D0, 18*0.D0, 3*.0D0, 0.D0, 0.D0, 4.0D0, 11.D0,
35162 & 11.4D0, 10.3D0, 7.5D0, 6.8D0, 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0,
35163 & .35D0, 13*0.D0, .1D0, .34D0, .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0,
35164 & 2.3D0, 1.6D0, .95D0, .45D0, .28D0, .15D0, 10*0.D0, 2*0.D0, .17D0,
35165 & .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0, 6.2D0, 4.4D0, 3.D0, 1.8D0,
35166 & .9D0, .53D0, .28D0, 10*0.D0, 2*0.D0, .25D0, .82D0,
35167 & 1.3D0, 1.9D0, 2.8D0, 5.5D0 , 8.D0, 5.7D0, 3.9D0, 2.35D0, 1.15D0,
35168 & .69D0, .37D0, 10*0.D0, 7*0.D0, .0D0, .34D0, 1.5D0, 3.47D0,
35169 & 5.87D0, 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35170*
35171 DATA SPIKPV/ 7*0.D0, .00D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35172 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 6*0.D0, 10*0.D0, .2D0,
35173 & .6D0, .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0,
35174 & 1.D0, .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0,
35175 & 3.5D0, 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0,
35176 & .31D0, .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0,
35177 & .23D0, 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0,
35178 & 5.D0, 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0,
35179 & 2.5D0, 3*0.D0, 3*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0,
35180 & 1.5D0, 1.1D0, .8D0, .7D0, .55D0, .3D0, 10*0.D0, 9*0.D0, .1D0,
35181 & .4D0, 1.D0, 1.4D0, 2.2D0, 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0,
35182 & .8D0, .6D0, .4D0, 12*0.D0, .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0,
35183 & 3.8D0, 3.3D0, 2.45D0, 2.05D0, 1.65D0, 1.2D0, .9D0, .6D0, 3*0.D0,
35184 & 9*0.D0, .10D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0,
35185 & 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0, 13*0.D0, .2D0, .5D0, .7D0,
35186 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35187 & 17*0.D0, .2D0, .5D0, .85D0, 2.D0, 2.15D0, 2.05D0, 1.75D0, 1.D0,
35188 & 17*0.D0, .13D0, .33D0, .57D0, 1.33D0, 1.43D0, 1.36D0, 1.17D0,
35189 & .67D0, 17*0.D0, .07D0, .17D0, .28D0, .67D0, .72D0, .69D0, .58D0,
35190 & .33D0,17*0.D0,.4D0, .7D0, 1.D0, 1.6D0, 1.8D0, 2.3D0,1.9D0,1.7D0 /
35191**** pi- p data *
35192 DATA SPIKPW/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 2*20.D0,
35193 & 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35194 & 2*10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35195 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35196 & 4.2D0, 7.5D0, 3.4D0, 2*2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0, .6D0,
35197 & .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0, .48D0,
35198 & .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0, .065D0,
35199 & .05D0, .04D0, 12*0.D0, .2D0, 2*.25D0, .2D0, .1D0, .08D0, .06D0,
35200 & .045D0, .03D0, .02D0, .01D0, .005D0, .003D0, 12*0.D0, .3D0,
35201 & .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0, .09D0, .08D0,
35202 & .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0, 3.1D0, 4.5D0,
35203 & 2.D0, 23*0.D0, 4.0D0, 11.D0, 11.4D0, 10.3D0, 7.5D0, 6.8D0,
35204 & 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0, .35D0, 13*0.D0, .1D0, .34D0,
35205 & .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0, 2.3D0, 1.6D0, .95D0, .45D0,
35206 & .28D0, .15D0, 12*0.D0, .17D0, .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0,
35207 & 6.2D0, 4.4D0, 3.D0, 1.8D0, .9D0, .53D0, .28D0, 12*0.D0, .25D0,
35208 & .82D0, 1.3D0, 1.9D0, 2.8D0, 5.5D0, 8.D0, 5.7D0, 3.9D0, 2.35D0,
35209 & 1.15D0, .69D0, .37D0, 18*0.D0, .34D0, 1.5D0, 3.47D0, 5.87D0,
35210 & 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35211*
35212 DATA SPIKPX/ 8*0.D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35213 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 16*0.D0, .2D0, .6D0,
35214 & .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0, 1.D0,
35215 & .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0, 3.5D0,
35216 & 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0, .31D0,
35217 & .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0, .23D0,
35218 & 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0, 5.D0,
35219 & 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0, 2.5D0,
35220 & 6*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0, 1.5D0, 1.1D0,
35221 & .8D0, .7D0, .55D0, .3D0, 19*0.D0, .1D0, .4D0, 1.D0, 1.4D0, 2.2D0,
35222 & 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0, .8D0, .6D0, .4D0, 12*0.D0,
35223 & .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0, 3.8D0, 3.3D0, 2.45D0, 2.05D0,
35224 & 1.65D0, 1.2D0, .9D0, .6D0, 12*0.D0, .10D0, .2D0, .5D0, .7D0,
35225 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35226 & 13*0.D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0,
35227 & 1.35D0, 1.15D0, .95D0, .7D0, 17*0.D0, .2D0, .5D0, .85D0, 2.D0,
35228 & 2.15D0, 2.05D0, 1.75D0, 1.D0, 17*0.D0, .13D0, .33D0, .57D0,
35229 & 1.33D0, 1.43D0, 1.36D0, 1.17D0, .67D0, 17*0.D0, .07D0, .17D0,
35230 & .28D0, .67D0, .72D0, .69D0, .58D0, .33D0, 17*0.D0, .4D0, .7D0,
35231 & 1.D0, 1.6D0, 1.8D0, 2.3D0, 1.9D0, 1.7D0 /
35232**** pi- n data *
35233 DATA SPIKP4 / 0.D0, 300.D0, 40.D0, 20.D0, 13.D0, 8.5D0, 8.D0,
35234 & 9.5D0, 12.D0, 14.D0, 15.5D0, 20.D0, 17.D0, 13.D0, 10.D0, 9.D0,
35235 & 8.5D0, 8.D0, 7.8D0, 7.3D0, 6.7D0, 9*0.D0, .23D0, .35D0, .7D0,
35236 & .52D0, .4D0, .3D0, .2D0, .15D0, .13D0, .11D0, .09D0, .07D0, 0.D0,
35237 & .033D0, .8D0, 2*1.35D0, .5D0, 19*0.D0, 0.8D0, 2.2D0, 3.6D0,
35238 & 4.6D0, 4.7D0, 3.5D0, 2.4D0, 1.8D0, 1.4D0, .75D0, .47D0, .25D0,
35239 & .13D0, .08D0, 7*0.D0, 1.2D0, 3.3D0, 5.4D0, 6.9D0, 7.3D0, 5.3D0,
35240 & 3.6D0, 2.7D0, 2.2D0, 1.1D0, .73D0, .4D0, .22D0, .12D0, 11*0.D0,
35241 & 2.0D0, 4.4D0, 6.8D0, 9.9D0, 7.9D0, 6.0D0, 3.8D0, 2.5D0, 2.D0,
35242 & 1.4D0, 1.D0, .6D0, .35D0, 10*0.D0, .25D0, .55D0, .75D0, 1.25D0,
35243 & 1.9D0, 2.D0, 1.8D0, 1.5D0, 1.25D0, 1.D0, .8D0, 10*0.D0, .4D0,
35244 & .85D0, 1.1D0, 1.85D0, 2.8D0, 3.D0, 2.7D0, 2.2D0, 1.85D0, 1.5D0,
35245 & 1.2D0, 12*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0,
35246 & 5.6D0, 5.2D0, 9*0.D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0, 2.75D0,
35247 & 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 10*0.D0, .45D0, 1.4D0,
35248 & 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0, 15*0.D0, .6D0,
35249 & .8D0, .95D0, .8D0, .7D0, .6D0, .5D0, .4D0, 13*0.D0, .85D0, 1.2D0,
35250 & 1.4D0, 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 13*0.D0, 1.D0, 1.5D0,
35251 & 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 16*0.D0, .5D0, 2.0D0,
35252 & 3.3D0, 5.4D0, 7.D0 /
35253**** k+ p data *
35254 DATA SPIKP5/ 0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0,
35255 & 7.D0, 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35256 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 13*0.D0, 0.9D0,
35257 & 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0,
35258 & .45D0, .21D0, .2D0, 3*0.D0, .9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35259 & 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35260 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0, 1.4D0,
35261 & 1.2D0, 1.05D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0, 2*1.D0, .9D0,
35262 & .7D0, .4D0, .3D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.2D0,
35263 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35264 & 1.71D0, 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0,
35265 & 3.5D0, 2.85D0, 2.35D0, 2.01D0, 1.8D0, 12*0.D0, .1D0, .8D0,2.05D0,
35266 & 3.31D0, 3.5D0, 12*0.D0, .034D0, .2D0, .75D0, 1.04D0, 1.24D0 /
35267**** k+ n data *
35268 DATA SPIKP6/ 0.D0, 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0,
35269 & 1.5D0, 1.2D0, 1.D0, .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0,
35270 & 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0, 1.5D0, 1.2D0, 1.D0,
35271 & .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0, .5D0, 1.3D0, 2.8D0,
35272 & 2.3D0, 1.6D0, .9D0, 13*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35273 & 2.D0, 1.7D0, 1.5D0,1.2D0,.9D0,.6D0,.45D0,.21D0,.2D0,3*0.D0,0.9D0,
35274 & 2.5D0, 3.D0, 2.5D0, 2.3D0,2.D0,1.7D0,1.5D0,1.2D0,.9D0,.6D0,.45D0,
35275 & .21D0, .2D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.D0,1.8D0,1.7D0,1.4D0,
35276 & 1.2D0,1.15D0,.9D0,.66D0,.5D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.1D0,
35277 & 1.8D0,1.7D0,1.4D0,1.2D0, 1.15D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0,
35278 & 2*1.D0, .9D0, .7D0, .4D0, .35D0, .2D0, 9*0.D0, .3D0, 2*1.D0,.9D0,
35279 & .7D0, .4D0, .35D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.4D0,3.5D0,4.25D0,
35280 & 4.55D0, 4.85D0, 4.9D0, 9*0.D0, .1D0, 1.D0, 2.4D0, 3.5D0, 4.25D0,
35281 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35282 & 1.71D0, 1.6D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0,
35283 & 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0,4.4D0,4.D0,3.5D0,2.85D0,
35284 & 2.35D0, 2.01D0, 1.8D0, 6*0.D0, 1.4D0,3.8D0,5.D0,4.7D0,4.4D0,4.D0,
35285 & 3.5D0,2.85D0,2.35D0,2.01D0,1.8D0,12*0.D0,.1D0,.8D0,2.05D0,3.31D0,
35286 & 3.5D0, 12*0.D0, .034D0,.2D0,.75D0,1.04D0,1.24D0 /
35287**** k- p data *
35288 DATA SKMPEL/ 0.D0, 35.D0, 22.D0, 25.D0, 17.D0, 9.D0, 9.5D0, 8.D0,
35289 & 7.D0, 6.5D0, 6.1D0, 5.D0, 4.8D0, 4.6D0, 4.45D0, 4.3D0, 4.2D0,
35290 & 0.D0, 8.D0, 3.5D0, 8.D0, 3.D0, 1.9D0, 1.7D0, 1.D0, .9D0, .8D0,
35291 & .75D0, .5D0, .42D0, .38D0, .34D0, .25D0, .2D0,
35292 & 0.D0, 3.D0, 3.2D0, 3.5D0, 1.5D0, 1.4D0, 1.1D0, .6D0, .5D0,
35293 & .35D0, .28D0, .25D0, .18D0, .12D0, .1D0, .08D0, .04D0,
35294 & 0.D0, 8.5D0, 2.4D0, 1.7D0, 1.3D0, 1.3D0, 1.1D0, .5D0,
35295 & .4D0, .4D0, .35D0, .3D0, .28D0, .2D0, .16D0, .13D0, .11D0,
35296 & 0.D0, 7.D0, 4.8D0, 1.4D0, 1.9D0, .9D0, .4D0, .2D0, .13D0,
35297 & .1D0, .08D0, .06D0, .04D0, .02D0, .015D0, .01D0, .01D0,
35298 & 0.D0, 5.5D0, 1.D0, .8D0, .75D0, .32D0, .2D0, .1D0, .09D0,
35299 & .08D0, .065D0, .05D0, .04D0, .022D0, .017D0, 2*.01D0/
35300 DATA SPIKP7 / 0.D0, .56D0, 1.46D0, 3.16D0, 2.01D0, 1.28D0, .74D0,
35301 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35302 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 4*0.D0,
35303 & 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0, 1.57D0,
35304 & 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0, 3.03D0,
35305 & 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0,
35306 & .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0, 2.8D0,
35307 & 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0,
35308 & .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35309 & .45D0, .39D0, .22D0, .07D0, 0.D0, 7*0.D0, .34D0, 1.12D0, 1.12D0,
35310 & 1.01D0, .78D0, .45D0, .39D0, .22D0, .07D0, 0.D0, 6*0.D0, 1.71D0,
35311 & 4.26D0, 5.6D0, 5.57D0, 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0,
35312 & 2.25D0, 2.D0, 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35313 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0, .22D0,
35314 & .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 10*0.D0, .22D0, .8D0,
35315 & .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0, .3D0, .7D0,1.D0,
35316 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0, 1.72D0, 2.69D0,
35317 & 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 9*0.D0, .11D0, 1.72D0,
35318 & 2.69D0, 3.92D0, 4.76D0, 5.1D0, 5.44D0, 5.3D0, 5*0.D0,9.2D0,4.7D0,
35319 & 1.9D0, 10*0.D0, 2.5D0, 15.D0, 21.5D0, 15.3D0, 3.D0, 1.5D0,
35320 & 10*0.D0/
35321***** k- n data *
35322 DATA SKMNEL/0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35323 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0,
35324 & 0.D0, 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0,
35325 & 1.9D0, .9D0, .5D0, .3D0, .24D0, .2D0, .18D0, .1D0, .09D0,
35326 & 0.D0, 1.8D0, 2.D0, 1.1D0, .9D0, .5D0, .5D0, .4D0, .4D0,
35327 & .2D0, .1D0, .06D0, .05D0, .04D0, .03D0, .02D0, .02D0,
35328 & 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0, .7D0, .65D0,
35329 & .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0, .03D0/
35330 DATA SPIKP8/0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35331 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35332 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0,
35333 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35334 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35335 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35336 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35337 & 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0, .45D0,
35338 & .39D0, .22D0, .07D0, 0.D0,
35339 & 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35340 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0,
35341 & 10*0.D0, .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0,
35342 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35343 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35344 & 9*0.D0, .11D0, 1.72D0, 2.69D0, 3.92D0, 4.76D0,
35345 & 5.10D0, 5.44D0, 5.3D0,
35346 & 4*0.D0, 0.00D0, 9.2D0, 4.7D0, 1.9D0, 9*0.D0/
35347***** p p data *
35348 DATA SPIKP9/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35349 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35350 & 0.D0, 3.6D0, 1.7D0, 10*0.D0,
35351 & .0D0, 0.D0, 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35352 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35353 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35354 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35355 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35356 & 16.9D0, 16.5D0, 11.D0, 5.5D0, 3.5D0,
35357 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35358 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35359 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35360 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35361 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35362 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35363***** p n data *
35364 DATA SPIKP0/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35365 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35366 & 0.D0, 1.8D0, .2D0, 12*0.D0,
35367 & 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35368 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35369 & 2*.0D0, 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35370 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35371 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35372 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35373 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35374 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35375 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35376 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35377 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35378 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35379 & 7*0.D0, 1.2D0, 2.5D0, 3.5D0, 6.D0, 5.3D0, 2.9D0,
35380 & 7*0.D0, 1.7D0, 3.6D0, 5.4D0, 9.D0, 7.6D0, 4.2D0,
35381 & 5*0.D0, 7.7D0, 6.1D0, 2.9D0, 5*0.D0/
35382* nn - data *
35383* *
35384 DATA SPKPV/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35385 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35386 & 0.D0, 3.6D0, 1.7D0, 12*0.D0,
35387 & 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35388 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35389 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35390 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35391 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0, 16.9D0, 16.5D0,
35392 & 11.D0, 5.5D0, 3.5D0,
35393 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35394 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35395 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35396 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35397 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35398 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35399**************** ap - p - data *
35400 DATA SAPPEL/ 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35401 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35402 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35403 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35404 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35405 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35406 & 0.D0, 55.D0, 50.D0, 25.D0, 15.D0, 15.D0, 14.D0, 12.D0,
35407 & 10.D0, 7.D0, 6.D0, 4.D0, 3.3D0, 2.8D0, 2.4D0, 2.D0, 1.8D0,
35408 & 1.55D0, 1.3D0, .95D0, .75D0,
35409 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35410 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35411 & .01D0, .008D0, .006D0, .005D0/
35412 DATA SPIKPE/0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35413 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35414 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0,
35415 & 9*0.D0, 2.D0, 2.5D0, .2D0, 19*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0,
35416 & 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0, .3D0, 1.4D0,
35417 & 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0,
35418 & .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0,
35419 & .3D0, 10*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0,
35420 & .6D0, .5D0, .4D0, .3D0, 9*0.D0, .6D0, 2.5D0, 5.D0, 5.2D0, 5.1D0,
35421 & 5.4D0, 5.8D0, 2.8D0, 2.1D0, 1.8D0, 1.6D0, 1.2D0, 13*0.D0, 1.3D0,
35422 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35423 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35424 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35425 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 14*0.D0, .2D0,
35426 & .5D0, 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0,
35427 & 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0,
35428 & 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0, 1.6D0,
35429 & 1.4D0, 1.1D0, .9D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0,
35430 & .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0,
35431 & 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0 /
35432**************** ap - n - data *
35433 DATA SAPNEL/
35434 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35435 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35436 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35437 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0,
35438 & .85D0, 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0,
35439 & .14D0, .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35440 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35441 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35442 & .01D0, .008D0, .006D0, .005D0 /
35443 DATA SPIKPZ/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35444 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35445 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35446 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35447 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35448 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35449 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35450 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35451 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35452 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35453 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35454 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35455 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35456 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35457* *
35458* *
35459**************** an - p - data *
35460* *
35461 DATA SANPEL/
35462 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0, 50.D0,
35463 & 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35464 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0, .05D0,
35465 & .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35466 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35467 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35468 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0, .25D0,
35469 & .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35470 & .01D0, .008D0, .006D0, .005D0 /
35471 DATA SPIKPF/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35472 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35473 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35474 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35475 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35476 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35477 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35478 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35479 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35480 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35481 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35482 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35483 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35484 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35485**** ko - n - data *
35486 DATA SPKP15/0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0, 7.D0,
35487 & 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35488 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 10*0.D0,
35489 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35490 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35491 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35492 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35493 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0,
35494 & 1.4D0, 1.2D0, 1.05D0, .9D0, .66D0, .5D0,
35495 & 7*0.D0, .3D0, 1.D0, 1.D0, .9D0, .7D0, .4D0, .30D0, .2D0,
35496 & 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.20D0, 4.55D0,
35497 & 4.85D0, 4.9D0,
35498 & 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0, 1.6D0,
35499 & 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0, 3.5D0,
35500 & 2.85D0, 2.35D0, 2.01D0, 1.8D0,
35501 & 12*0.D0, .1D0, .8D0, 2.05D0, 3.31D0, 3.5D0,
35502 & 12*0.D0, .034D0, .20D0, .75D0, 1.04D0, 1.24D0 /
35503**** ako - p - data *
35504 DATA SPKP16/ 0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35505 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0, 0.D0,
35506 & 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0, 1.9D0, .9D0, .5D0,
35507 & .3D0, .24D0, .2D0, .18D0, .1D0, .09D0, 0.D0, 1.8D0, 2.D0, 1.1D0,
35508 & .9D0, .5D0, .5D0, .4D0, .4D0, .2D0, .1D0, .06D0, .05D0, .04D0,
35509 & .03D0, .02D0, .02D0, 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0,
35510 & .7D0, .65D0, .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0,
35511 & .03D0, 0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35512 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0,
35513 & 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0,
35514 & 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0,
35515 & 1.01D0, .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0,
35516 & 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0,
35517 & .5D0, .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35518 & .45D0, .39D0, .22D0, .07D0, 7*0.D0, 1.71D0, 4.26D0, 5.6D0,5.57D0,
35519 & 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0,
35520 & .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0,
35521 & .3D0, .7D0, 1.D0, 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0,
35522 & 1.72D0, 2.69D0, 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 5*0.D0,
35523 & 9.2D0, 4.7D0, 1.9D0, 9*0.D0, .0D0,2.5D0,15.D0,
35524 & 21.5D0, 15.3D0, 3.D0, 1.5D0, 10*0.D0 /
35525 DATA NURELN/9, 12, 5*0, 10, 14, 3*0, 1, 3, 5, 7, 6*0, 2, 6, 16,
35526 & 5*0, 10, 13, 5*0, 11, 12, 3*0, 2, 4, 6, 8, 6*0, 3, 15, 7, 5*0 /
35527*= end*block.blkdt3 *
35528 END
35529
35530*$ CREATE DT_QEL_POL.FOR
35531*COPY DT_QEL_POL
35532*
35533*===qel_pol============================================================*
35534*
35535 SUBROUTINE DT_QEL_POL(ENU,LTYP,P21,P22,P23,P24,P25)
35536
35537 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35538 SAVE
35539
35540 CALL DT_MASS_INI
35541 CALL DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35542
35543 RETURN
35544 END
35545
35546*$ CREATE DT_GEN_QEL.FOR
35547*COPY DT_GEN_QEL
35548C==================================================================
35549C Generation of a Quasi-Elastic neutrino scattering
35550C==================================================================
35551*
35552*===gen_qel============================================================*
35553*
35554 SUBROUTINE DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35555
35556C...Generate a quasi-elastic neutrino/antineutrino
35557C. Interaction on a nuclear target
35558C. INPUT : LTYP = neutrino type (1,...,6)
35559C. ENU (GeV) = neutrino energy
35560C----------------------------------------------------
35561
35562 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35563 SAVE
35564
35565 PARAMETER ( LINP = 10 ,
35566 & LOUT = 6 ,
35567 & LDAT = 9 )
35568 PARAMETER (MAXLND=4000)
35569 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
35570* nuclear potential
35571 LOGICAL LFERMI
35572 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
35573 & EBINDP(2),EBINDN(2),EPOT(2,210),
35574 & ETACOU(2),ICOUL,LFERMI
35575* steering flags for qel neutrino scattering modules
35576 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
35577**sr - removed (not needed)
35578C COMMON /CBAD/ LBAD, NBAD
35579C COMMON /CNUC/ XMN,XMN2,PFERMI,EFERMI,EBIND,EB2,C0
35580**
35581
35582 DIMENSION PI(3),PO(3)
35583CJR+
35584 DATA ININU/0/
35585CJR-
35586C REAL*8 DBETA(3)
35587C REAL*8 MN(2), ML0(6), ML, ML2, MI, MI2, MF, MF2
35588 DIMENSION DBETA(3),DBETB(3),AMN(2),AML0(6)
35589 DATA AMN /0.93827231D0, 0.93956563D0/
35590 DATA AML0 /2*0.51100D-03,2*0.105659D0, 2*1.777D0/
35591 DATA INIPRI/0/
35592
35593C DATA PFERMI/0.22D0/
35594CGB+...Binding Energy
35595 DATA EBIND/0.008D0/
35596CGB-...
35597
35598 ININU=ININU+1
35599 IF(ININU.EQ.1)NDSIG=0
35600 LBAD = 0
35601 enu0=enu
35602c write(*,*) enu0
35603C...Lepton mass
35604 AML = AML0(LTYP) ! massa leptoni
35605 AML2 = AML**2 ! massa leptoni **2
35606C...Particle labels (LUND)
35607 N = 5
35608 K(1,1) = 21
35609 K(2,1) = 21
35610 K(3,1) = 21
35611 K(3,3) = 1
35612 K(4,1) = 1
35613 K(4,3) = 1
35614 K(5,1) = 1
35615 K(5,3) = 2
35616 K0 = (LTYP-1)/2 ! 2
35617 K1 = LTYP/2 ! 2
35618 KA = 12 + 2*K0 ! 16
35619 IS = -1 + 2*LTYP - 4*K1 ! -1 +10 -8 = 1
35620 K(1,2) = IS*KA
35621 K(4,2) = IS*(KA-1)
35622 K(3,2) = IS*24
35623 LNU = 2 - LTYP + 2*K1 ! 2 - 5 + 2 = - 1
35624 IF (LNU .EQ. 2) THEN
35625 K(2,2) = 2212
35626 K(5,2) = 2112
35627 AMI = AMN(1)
35628 AMF = AMN(2)
35629CJR+
35630 PFERMI=PFERMN(2)
35631CJR-
35632 ELSE
35633 K(2,2) = 2112
35634 K(5,2) = 2212
35635 AMI = AMN(2)
35636 AMF = AMN(1)
35637CJR+
35638 PFERMI=PFERMP(2)
35639CJR-
35640 ENDIF
35641 AMI2 = AMI**2
35642 AMF2 = AMF**2
35643
35644 DO IGB=1,5
35645 P(3,IGB) = 0.
35646 P(4,IGB) = 0.
35647 P(5,IGB) = 0.
35648 END DO
35649
35650 NTRY = 0
35651CGB+...
35652 EFMAX = SQRT(PFERMI**2 + AMI2) -AMI ! max. Fermi Energy
35653 ENWELL = EFMAX + EBIND ! depth of nuclear potential well
35654CGB-...
35655
35656 100 CONTINUE
35657
35658C...4-momentum initial lepton
35659 P(1,5) = 0. ! massa
35660 P(1,4) = ENU0 ! energia
35661 P(1,1) = 0. ! px
35662 P(1,2) = 0. ! py
35663 P(1,3) = ENU0 ! pz
35664
35665C PF = PFERMI*PYR(0)**(1./3.)
35666c write(23,*) PYR(0)
35667c write(*,*) 'Pfermi=',PF
35668c PF = 0.
35669 NTRY=NTRY+1
35670C IF(ntry.GT.2) WRITE(*,*) ntry,enu0,k2
35671 IF (NTRY .GT. 500) THEN
35672 LBAD = 1
35673 WRITE (LOUT,1001) NBAD, ENU
35674 RETURN
35675 ENDIF
35676C CT = -1. + 2.*PYR(0)
35677c CT = -1.
35678C ST = SQRT(1.-CT*CT)
35679C F = 2.*3.1415926*PYR(0)
35680c F = 0.
35681
35682C P(2,4) = SQRT(PF*PF + MI2) - EBIND ! energia
35683C P(2,1) = PF*ST*COS(F) ! px
35684C P(2,2) = PF*ST*SIN(F) ! py
35685C P(2,3) = PF*CT ! pz
35686C P(2,5) = SQRT(P(2,4)**2-PF*PF) ! massa
35687 P(2,1) = P21
35688 P(2,2) = P22
35689 P(2,3) = P23
35690 P(2,4) = P24
35691 P(2,5) = P25
35692 beta1=-p(2,1)/p(2,4)
35693 beta2=-p(2,2)/p(2,4)
35694 beta3=-p(2,3)/p(2,4)
35695 N=2
35696C WRITE(6,*)' before transforming into target rest frame'
35697 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
35698C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
35699 N=5
35700
35701 phi11=atan(p(1,2)/p(1,3))
35702 pi(1)=p(1,1)
35703 pi(2)=p(1,2)
35704 pi(3)=p(1,3)
35705
35706 CALL DT_TESTROT(PI,Po,PHI11,1)
35707 DO ll=1,3
35708 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35709 END DO
35710c WRITE(*,*) po
35711 p(1,1)=po(1)
35712 p(1,2)=po(2)
35713 p(1,3)=po(3)
35714 phi12=atan(p(1,1)/p(1,3))
35715
35716 pi(1)=p(1,1)
35717 pi(2)=p(1,2)
35718 pi(3)=p(1,3)
35719 CALL DT_TESTROT(Pi,Po,PHI12,2)
35720 DO ll=1,3
35721 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35722 END DO
35723c WRITE(*,*) po
35724 p(1,1)=po(1)
35725 p(1,2)=po(2)
35726 p(1,3)=po(3)
35727
35728 enu=p(1,4)
35729
35730C...Kinematical limits in Q**2
35731c S = P(2,5)**2 + 2.*ENU*(P(2,4)-P(2,3)) ! ????
35732 S = P(2,5)**2 + 2.*ENU*P(2,5)
35733 SQS = SQRT(S) ! E centro massa
35734 IF (SQS .LT. (AML + AMF + 3.E-03)) GOTO 100
35735 ELF = (S-AMF2+AML2)/(2.*SQS) ! energia leptone finale p
35736 PSTAR = (S-P(2,5)**2)/(2.*SQS) ! p* neutrino nel c.m.
35737 PLF = SQRT(ELF**2-AML2) ! 3-momento leptone finale
35738 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF) ! + o -
35739 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF) ! according con cos(theta)
35740 IF (Q2MIN .LT. 0.) Q2MIN = 0. ! ??? non fisico
35741
35742C...Generate Q**2
35743 DSIGMAX = DT_DSQEL_Q2 (LTYP,ENU, Q2MIN)
35744 200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
35745 DSIG = DT_DSQEL_Q2 (LTYP,ENU, Q2)
35746 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
35747 CALL DT_QGAUS(Q2MIN,Q2MAX,DSIGEV,ENU,LTYP)
35748 NDSIG=NDSIG+1
35749C WRITE(6,*)' Q2,Q2min,Q2MAX,DSIGEV',
35750C &Q2,Q2min,Q2MAX,DSIGEV
35751
35752C...c.m. frame. Neutrino along z axis
35753 DETOT = (P(1,4)) + (P(2,4)) ! e totale
35754 DBETA(1) = ((P(1,1)) + (P(2,1)))/DETOT ! px1+px2/etot = beta_x
35755 DBETA(2) = ((P(1,2)) + (P(2,2)))/DETOT !
35756 DBETA(3) = ((P(1,3)) + (P(2,3)))/DETOT !
35757c WRITE(*,*)
35758c WRITE(*,*)
35759C WRITE(*,*) 'Input values laboratory frame'
35760 N=2
35761
35762 CALL PYROBO(0,0,0.0D0,0.0D0,-DBETA(1),-DBETA(2),-DBETA(3))
35763
35764 N=5
35765c STHETA = ULANGL(P(1,3),P(1,1))
35766c write(*,*) 'stheta' ,stheta
35767c stheta=0.
35768c CALL PYROBO (0,0,-STHETA,0.,0.D0,0.D0,0.D0)
35769c WRITE(*,*)
35770c WRITE(*,*)
35771C WRITE(*,*) 'Output values cm frame'
35772C...Kinematic in c.m. frame
35773 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF) ! cos(theta) cm
35774 STSTAR = SQRT(1.-CTSTAR**2)
35775 PHI = 6.28319*PYR(0) ! random phi tra 0 e 2*pi
35776 P(4,5) = AML ! massa leptone
35777 P(4,4) = ELF ! e leptone
35778 P(4,3) = PLF*CTSTAR ! px
35779 P(4,1) = PLF*STSTAR*COS(PHI) ! py
35780 P(4,2) = PLF*STSTAR*SIN(PHI) ! pz
35781
35782 P(5,5) = AMF ! barione
35783 P(5,4) = (S+AMF2-AML2)/(2.*SQS)! e barione
35784 P(5,3) = -P(4,3) ! px
35785 P(5,1) = -P(4,1) ! py
35786 P(5,2) = -P(4,2) ! pz
35787
35788 P(3,5) = -Q2
35789 P(3,1) = P(1,1)-P(4,1)
35790 P(3,2) = P(1,2)-P(4,2)
35791 P(3,3) = P(1,3)-P(4,3)
35792 P(3,4) = P(1,4)-P(4,4)
35793
35794C...Transform back to laboratory frame
35795C WRITE(*,*) 'before going back to nucl rest frame'
35796c CALL PYROBO (0,0,STHETA,0.,0.D0,0.D0,0.D0)
35797 N=5
35798
35799 CALL PYROBO(0,0,0.0D0,0.0D0,DBETA(1),DBETA(2),DBETA(3))
35800
35801C WRITE(*,*) 'Now back in nucl rest frame'
35802 IF(LTYP.GE.3) CALL DT_PREPOLA(Q2,LTYP,ENU)
35803
35804c********************************************
35805
35806 DO kw=1,5
35807 pi(1)=p(kw,1)
35808 pi(2)=p(kw,2)
35809 pi(3)=p(kw,3)
35810 CALL DT_TESTROT(Pi,Po,PHI12,3)
35811 DO ll=1,3
35812 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35813 END DO
35814 p(kw,1)=po(1)
35815 p(kw,2)=po(2)
35816 p(kw,3)=po(3)
35817 END DO
35818c********************************************
35819
35820 DO kw=1,5
35821 pi(1)=p(kw,1)
35822 pi(2)=p(kw,2)
35823 pi(3)=p(kw,3)
35824 CALL DT_TESTROT(Pi,Po,PHI11,4)
35825 DO ll=1,3
35826 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35827 END DO
35828 p(kw,1)=po(1)
35829 p(kw,2)=po(2)
35830 p(kw,3)=po(3)
35831 END DO
35832
35833c********************************************
35834
35835C WRITE(*,*) 'Now back in lab frame'
35836
35837 CALL PYROBO(1,5,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
35838
35839CGB+...
35840C...test (on final momentum of nucleon) if Fermi-blocking
35841C...is operating
35842 ENUCL = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2 + P(5,5)**2)
35843 & - P(5,5)
35844 IF (ENUCL.LT. EFMAX) THEN
35845 IF(INIPRI.LT.10)THEN
35846 INIPRI=INIPRI+1
35847C WRITE(6,*)' qel: Pauli ENUCL.LT.EFMAX ', ENUCL,EFMAX
35848C...the interaction is not possible due to Pauli-Blocking and
35849C...it must be resampled
35850 ENDIF
35851 GOTO 100
35852 ELSE IF (ENUCL.LT.ENWELL.and.ENUCL.GE.EFMAX) THEN
35853 IF(INIPRI.LT.10)THEN
35854 INIPRI=INIPRI+1
35855C WRITE(6,*)' qel: inside ENUCL.LT.ENWELL ', ENUCL,ENWELL
35856 ENDIF
35857C Reject (J:R) here all these events
35858C are otherwise rejected in dpmjet
35859 GOTO 100
35860C...the interaction is possible, but the nucleon remains inside
35861C...the nucleus. The nucleus is therefore left excited.
35862C...We treat this case as a nucleon with 0 kinetic energy.
35863C P(5,5) = AMF
35864C P(5,4) = AMF
35865C P(5,1) = 0.
35866C P(5,2) = 0.
35867C P(5,3) = 0.
35868 ELSE IF (ENUCL.GE.ENWELL) THEN
35869C WRITE(6,*)' qel ENUCL.GE.ENWELL ',ENUCL,ENWELL
35870C...the interaction is possible, the nucleon can exit the nucleus
35871C...but the nuclear well depth must be subtracted. The nucleus could be
35872C...left in an excited state.
35873 Pstart = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2)
35874C P(5,4) = ENUCL-ENWELL + AMF
35875 Pnucl = SQRT(P(5,4)**2-AMF**2)
35876C...The 3-momentum is scaled assuming that the direction remains
35877C...unaffected
35878 P(5,1) = P(5,1) * Pnucl/Pstart
35879 P(5,2) = P(5,2) * Pnucl/Pstart
35880 P(5,3) = P(5,3) * Pnucl/Pstart
35881C WRITE(6,*)' qel new P(5,4) ',P(5,4)
35882 ENDIF
35883CGB-...
35884 DSIGSU=DSIGSU+DSIGEV
35885
35886 GA=P(4,4)/P(4,5)
35887 BGX=P(4,1)/P(4,5)
35888 BGY=P(4,2)/P(4,5)
35889 BGZ=P(4,3)/P(4,5)
35890*
35891 DBETB(1)=BGX/GA
35892 DBETB(2)=BGY/GA
35893 DBETB(3)=BGZ/GA
35894 IF(NEUDEC.EQ.1.OR.NEUDEC.EQ.2) THEN
35895
35896 CALL PYROBO(6,8,0.0D0,0.0D0,DBETB(1),DBETB(2),DBETB(3))
35897
35898 ENDIF
35899c
35900C PRINT*,' FINE EVENTO '
35901 enu=enu0
35902 RETURN
35903
35904 1001 FORMAT(2X, 'DT_GEN_QEL : event rejected ', I5, G10.3)
35905 END
35906
35907*$ CREATE DT_MASS_INI.FOR
35908*COPY DT_MASS_INI
35909C====================================================================
35910C. Masses
35911C====================================================================
35912*
35913*===mass_ini===========================================================*
35914*
35915 SUBROUTINE DT_MASS_INI
35916C...Initialize the kinematics for the quasi-elastic cross section
35917
35918 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35919 SAVE
35920
35921* particle masses used in qel neutrino scattering modules
35922 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
35923 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
35924 & EMPROTSQ,EMNEUTSQ,EMNSQ
35925
35926 EML(1) = 0.51100D-03 ! e-
35927 EML(2) = EML(1) ! e+
35928 EML(3) = 0.105659D0 ! mu-
35929 EML(4) = EML(3) ! mu+
35930 EML(5) = 1.7777D0 ! tau-
35931 EML(6) = EML(5) ! tau+
35932 EMPROT = 0.93827231D0 ! p
35933 EMNEUT = 0.93956563D0 ! n
35934 EMPROTSQ = EMPROT**2
35935 EMNEUTSQ = EMNEUT**2
35936 EMN = (EMPROT + EMNEUT)/2.
35937 EMNSQ = EMN**2
35938 DO J=1,3
35939 J0 = 2*(J-1)
35940 EMN1(J0+1) = EMNEUT
35941 EMN1(J0+2) = EMPROT
35942 EMN2(J0+1) = EMPROT
35943 EMN2(J0+2) = EMNEUT
35944 ENDDO
35945 DO J=1,6
35946 EMLSQ(J) = EML(J)**2
35947 ETQE(J) = ((EMN2(J)+ EML(J))**2-EMN1(J)**2)/(2.*EMN1(J))
35948 ENDDO
35949 RETURN
35950 END
35951
35952*$ CREATE DT_DSQEL_Q2.FOR
35953*COPY DT_DSQEL_Q2
35954*
35955*===dsqel_q2===========================================================*
35956*
35957 DOUBLE PRECISION FUNCTION DT_DSQEL_Q2 (JTYP,ENU, Q2)
35958
35959C...differential cross section for Quasi-Elastic scattering
35960C. nu + N -> l + N'
35961C. From Llewellin Smith Phys.Rep. 3C, 261, (1971).
35962C.
35963C. INPUT : JTYP = 1,...,6 nu_e, ...., nubar_tau
35964C. ENU (GeV) = Neutrino energy
35965C. Q2 (GeV**2) = (Transfer momentum)**2
35966C.
35967C. OUTPUT : DSQEL_Q2 = differential cross section :
35968C. dsigma/dq**2 (10**-38 cm+2/GeV**2)
35969C------------------------------------------------------------------
35970
35971 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35972 SAVE
35973
35974* particle masses used in qel neutrino scattering modules
35975 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
35976 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
35977 & EMPROTSQ,EMNEUTSQ,EMNSQ
35978**sr - removed (not needed)
35979C COMMON /CAXIAL/ FA0, AXIAL2
35980**
35981
35982 DIMENSION SS(6)
35983 DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
35984 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
35985 DATA AXIAL2 /1.03D0/ ! to be checked
35986
35987 FA0=-1.253D0
35988 CSI = 3.71D0 ! ???
35989 GVE = 1.D0/ (1.D0 + Q2/0.84D0**2)**2 ! G_e(q**2)
35990 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
35991 X = Q2/(EMN*EMN) ! emn=massa barione
35992 XA = X/4.D0
35993 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
35994 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
35995 FA = FA0/(1.D0 + Q2/AXIAL2)**2
35996 FFA = FA*FA
35997 FFV1 = FV1*FV1
35998 FFV2 = FV2*FV2
35999 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36000 A1 = (4.D0+X)*FFA - (4.D0-X)*FFV1 + X*FFV2*(1.D0-XA)+4*X*FV1*FV2
36001 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36002 AA = (XA+0.25D0*RM)*(A1 + A2)
36003 BB = -X*FA*(FV1 + FV2)
36004 CC = 0.25D0*(FFA + FFV1 + XA*FFV2)
36005 SU = (4.D0*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36006 DT_DSQEL_Q2 = C0*(AA + SS(JTYP)*BB*SU + CC*SU*SU) / (ENU*ENU) !
36007 IF(DT_DSQEL_Q2 .LT. 0.D0) DT_DSQEL_Q2 = 0.D0
36008
36009 RETURN
36010 END
36011
36012*$ CREATE DT_PREPOLA.FOR
36013*COPY DT_PREPOLA
36014*
36015*===prepola============================================================*
36016*
36017 SUBROUTINE DT_PREPOLA(Q2,JTYP,ENU)
36018
36019 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36020 SAVE
36021c
36022c By G. Battistoni and E. Scapparone (sept. 1997)
36023c According to:
36024c Albright & Jarlskog, Nucl Phys B84 (1975) 467
36025c
36026c
36027 PARAMETER (MAXLND=4000)
36028 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36029 COMMON /QNPOL/ POLARX(4),PMODUL
36030* particle masses used in qel neutrino scattering modules
36031 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
36032 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
36033 & EMPROTSQ,EMNEUTSQ,EMNSQ
36034* steering flags for qel neutrino scattering modules
36035 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
36036**sr - removed (not needed)
36037C COMMON /CAXIAL/ FA0, AXIAL2
36038C COMMON /TAUTAU/Q(4,5),ETL,PXL,PYL,PZL,
36039C & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN
36040**
36041 REAL*8 POL(4,4),BB2(3)
36042 DIMENSION SS(6)
36043C DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
36044 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
36045**sr uncommented since common block CAXIAL is now commented
36046 DATA AXIAL2 /1.03D0/ ! to be checked
36047**
36048
36049 RML=P(4,5)
36050 RMM=0.93960D+00
36051 FM2 = RMM**2
36052 MPI = 0.135D+00
36053 OLDQ2=Q2
36054 FA0=-1.253D+00
36055 CSI = 3.71D+00 !
36056 GVE = 1.D0/ (1.D0 + Q2/(0.84D+00)**2)**2 ! G_e(q**2)
36057 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
36058 X = Q2/(EMN*EMN) ! emn=massa barione
36059 XA = X/4.D0
36060 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
36061 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
36062 FA = FA0/(1.D0 + Q2/AXIAL2**2)**2
36063 FFA = FA*FA
36064 FFV1 = FV1*FV1
36065 FFV2 = FV2*FV2
36066 FP=2.D0*FA*RMM/(MPI**2 + Q2)
36067 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36068 A1 = (4.D0+X)*FFA-(4.D0-X)*FFV1+X*FFV2*(1.D0-XA)+4.D0*X*FV1*FV2
36069 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36070 AA = (XA+0.25D+00*RM)*(A1 + A2)
36071 BB = -X*FA*(FV1 + FV2)
36072 CC = 0.25D+00*(FFA + FFV1 + XA*FFV2)
36073 SU = (4.D+00*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36074
36075 OMEGA1=FFA+XA*(FFA+(FV1+FV2)**2 ) ! articolo di ll...-smith
36076 OMEGA2=4.D+00*CC
36077 OMEGA3=2.D+00*FA*(FV1+FV2)
36078 OMEGA4P=(-(FV1+FV2)**2-(FA+2*FP)**2+(4.0D+00+
36079 1 (Q2/FM2))*FP**2)
36080 OMEGA5=OMEGA2
36081 OMEGA4=(OMEGA4P-OMEGA2+2*OMEGA5)/4.D+00
36082 WW1=2.D+00*OMEGA1*EMN**2
36083 WW2=2.D+00*OMEGA2*EMN**2
36084 WW3=2.D+00*OMEGA3*EMN**2
36085 WW4=2.D+00*OMEGA4*EMN**2
36086 WW5=2.D+00*OMEGA5*EMN**2
36087
36088 DO I=1,3
36089 BB2(I)=-P(4,I)/P(4,4)
36090 END DO
36091c WRITE(*,*)
36092c WRITE(*,*)
36093c WRITE(*,*) 'Prepola: ready to transform to lepton rest frame'
36094 N=5
36095 CALL PYROBO(0,0,0.0D0,0.0D0,BB2(1),BB2(2),BB2(3))
36096* NOW PARTICLES ARE IN THE SCATTERED LEPTON REST FRAME
36097c WRITE(*,*)
36098c WRITE(*,*)
36099c WRITE(*,*) 'Prepola: now in lepton rest frame'
36100 EE=ENU
36101 QM2=Q2+RML**2
36102 U=Q2/(2.*RMM)
36103 FRAC=QM2*WW1 + (2.D+00*EE*(EE-U) - 0.5D+00*QM2)*WW2 - SS(JTYP)*
36104 + (0.5D+00/(RMM**2))*(2.D+00*RMM*EE*Q2 - U*QM2)*WW3 +
36105 + ((RML**2)/(2.D+00*FM2))*(QM2*WW4-2.D+00*RMM*EE*WW5) !<=FM2 inv di RMM!!
36106
36107 FACTK=2.D+00*WW1 -WW2 -SS(JTYP)*(EE/RMM)*WW3 +((EE-U)/RMM)*WW5
36108 + - ((RML**2)/FM2)*WW4 !<=FM2 inv di RMM!!
36109
36110 FACTP=2.D+00*EE/RMM*WW2 - (QM2/(2.D+00*RMM**2))*(SS(JTYP)*WW3+WW5)
36111
36112 DO I=1,3
36113 POL(4,I)=RML*SS(JTYP)*(FACTK*P(1,I)+FACTP*P(2,I))/FRAC
36114 POLARX(I)=POL(4,I)
36115 END DO
36116
36117 PMODUL=0.D0
36118 DO I=1,3
36119 PMODUL=PMODUL+POL(4,I)**2
36120 END DO
36121
36122 IF(JTYP.GT.4.AND.NEUDEC.GT.0) THEN
36123 IF(NEUDEC.EQ.1) THEN
36124 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-2),POLARX(3),
36125 + ETL,PXL,PYL,PZL,
36126 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36127c
36128c Tau has decayed in muon
36129c
36130 ENDIF
36131 IF(NEUDEC.EQ.2) THEN
36132 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-4),POLARX(3),
36133 + ETL,PXL,PYL,PZL,
36134 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36135c
36136c Tau has decayed in electron
36137c
36138 ENDIF
36139 K(4,1)=15
36140 K(4,4) = 6
36141 K(4,5) = 8
36142 N=N+3
36143c
36144c fill common for muon(electron)
36145c
36146 P(6,1)=PXL
36147 P(6,2)=PYL
36148 P(6,3)=PZL
36149 P(6,4)=ETL
36150 K(6,1)=1
36151 IF(JTYP.EQ.5) THEN
36152 IF(NEUDEC.EQ.1) THEN
36153 P(6,5)=EML(JTYP-2)
36154 K(6,2)=13
36155 ELSEIF(NEUDEC.EQ.2) THEN
36156 P(6,5)=EML(JTYP-4)
36157 K(6,2)=11
36158 ENDIF
36159 ELSEIF(JTYP.EQ.6) THEN
36160 IF(NEUDEC.EQ.1) THEN
36161 K(6,2)=-13
36162 ELSEIF(NEUDEC.EQ.2) THEN
36163 K(6,2)=-11
36164 ENDIF
36165 END IF
36166 K(6,3)=4
36167 K(6,4)=0
36168 K(6,5)=0
36169c
36170c fill common for tau_(anti)neutrino
36171c
36172 P(7,1)=PXB
36173 P(7,2)=PYB
36174 P(7,3)=PZB
36175 P(7,4)=ETB
36176 P(7,5)=0.
36177 K(7,1)=1
36178 IF(JTYP.EQ.5) THEN
36179 K(7,2)=16
36180 ELSEIF(JTYP.EQ.6) THEN
36181 K(7,2)=-16
36182 END IF
36183 K(7,3)=4
36184 K(7,4)=0
36185 K(7,5)=0
36186c
36187c Fill common for muon(electron)_(anti)neutrino
36188c
36189 P(8,1)=PXN
36190 P(8,2)=PYN
36191 P(8,3)=PZN
36192 P(8,4)=ETN
36193 P(8,5)=0.
36194 K(8,1)=1
36195 IF(JTYP.EQ.5) THEN
36196 IF(NEUDEC.EQ.1) THEN
36197 K(8,2)=-14
36198 ELSEIF(NEUDEC.EQ.2) THEN
36199 K(8,2)=-12
36200 ENDIF
36201 ELSEIF(JTYP.EQ.6) THEN
36202 IF(NEUDEC.EQ.1) THEN
36203 K(8,2)=14
36204 ELSEIF(NEUDEC.EQ.2) THEN
36205 K(8,2)=12
36206 ENDIF
36207 END IF
36208 K(8,3)=4
36209 K(8,4)=0
36210 K(8,5)=0
36211 ENDIF
36212c WRITE(*,*)
36213c WRITE(*,*)
36214
36215c IF(PMODUL.GE.1.D+00) THEN
36216c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36217c write(*,*) pmodul
36218c DO I=1,3
36219c POL(4,I)=POL(4,I)/PMODUL
36220c POLARX(I)=POL(4,I)
36221c END DO
36222c PMODUL=0.
36223c DO I=1,3
36224c PMODUL=PMODUL+POL(4,I)**2
36225c END DO
36226c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36227c
36228c ENDIF
36229
36230c WRITE(*,*) 'PMODUL = ',PMODUL
36231
36232c WRITE(*,*)
36233c WRITE(*,*)
36234c WRITE(*,*) 'prepola: Now back to nucl rest frame'
36235 CALL PYROBO(1,5,0.0D0,0.0D0,-BB2(1),-BB2(2),-BB2(3))
36236
36237 XDC = V(4,1)+V(4,5)*P(4,1)/P(4,5)
36238 YDC = V(4,2)+V(4,5)*P(4,2)/P(4,5)
36239 ZDC = V(4,3)+V(4,5)*P(4,3)/P(4,5)
36240 DO NDC =6,8
36241 V(NDC,1) = XDC
36242 V(NDC,2) = YDC
36243 V(NDC,3) = ZDC
36244 END DO
36245
36246 RETURN
36247 END
36248
36249*$ CREATE DT_TESTROT.FOR
36250*COPY DT_TESTROT
36251*
36252*===testrot============================================================*
36253*
36254 SUBROUTINE DT_TESTROT(PI,PO,PHI,MODE)
36255
36256 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36257 SAVE
36258
36259 DIMENSION ROT(3,3),PI(3),PO(3)
36260
36261 IF (MODE.EQ.1) THEN
36262 ROT(1,1) = 1.D0
36263 ROT(1,2) = 0.D0
36264 ROT(1,3) = 0.D0
36265 ROT(2,1) = 0.D0
36266 ROT(2,2) = COS(PHI)
36267 ROT(2,3) = -SIN(PHI)
36268 ROT(3,1) = 0.D0
36269 ROT(3,2) = SIN(PHI)
36270 ROT(3,3) = COS(PHI)
36271 ELSEIF (MODE.EQ.2) THEN
36272 ROT(1,1) = 0.D0
36273 ROT(1,2) = 1.D0
36274 ROT(1,3) = 0.D0
36275 ROT(2,1) = COS(PHI)
36276 ROT(2,2) = 0.D0
36277 ROT(2,3) = -SIN(PHI)
36278 ROT(3,1) = SIN(PHI)
36279 ROT(3,2) = 0.D0
36280 ROT(3,3) = COS(PHI)
36281 ELSEIF (MODE.EQ.3) THEN
36282 ROT(1,1) = 0.D0
36283 ROT(2,1) = 1.D0
36284 ROT(3,1) = 0.D0
36285 ROT(1,2) = COS(PHI)
36286 ROT(2,2) = 0.D0
36287 ROT(3,2) = -SIN(PHI)
36288 ROT(1,3) = SIN(PHI)
36289 ROT(2,3) = 0.D0
36290 ROT(3,3) = COS(PHI)
36291 ELSEIF (MODE.EQ.4) THEN
36292 ROT(1,1) = 1.D0
36293 ROT(2,1) = 0.D0
36294 ROT(3,1) = 0.D0
36295 ROT(1,2) = 0.D0
36296 ROT(2,2) = COS(PHI)
36297 ROT(3,2) = -SIN(PHI)
36298 ROT(1,3) = 0.D0
36299 ROT(2,3) = SIN(PHI)
36300 ROT(3,3) = COS(PHI)
36301 ELSE
36302 STOP ' TESTROT: mode not supported!'
36303 ENDIF
36304 DO 1 J=1,3
36305 PO(J) = ROT(J,1)*PI(1)+ROT(J,2)*PI(2)+ROT(J,3)*PI(3)
36306 1 CONTINUE
36307
36308 RETURN
36309 END
36310
36311*$ CREATE DT_LEPDCYP.FOR
36312*COPY DT_LEPDCYP
36313*
36314*===lepdcyp============================================================*
36315*
36316 SUBROUTINE DT_LEPDCYP(AMA,AML,POL,ETL,PXL,PYL,PZL,
36317 & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36318C
36319C-----------------------------------------------------------------
36320C
36321C Author :- G. Battistoni 10-NOV-1995
36322C
36323C=================================================================
36324C
36325C Purpose : performs decay of polarized lepton in
36326C its rest frame: a => b + l + anti-nu
36327C (Example: mu- => nu-mu + e- + anti-nu-e)
36328C Polarization is assumed along Z-axis
36329C WARNING:
36330C 1) b AND anti-nu ARE ASSUMED TO BE NEUTRINOS
36331C OF NEGLIGIBLE MASS
36332C 2) RADIATIVE CORRECTIONS ARE NOT CONSIDERED
36333C IN THIS VERSION
36334C
36335C Method : modifies phase space distribution obtained
36336C by routine EXPLOD using a rejection against the
36337C matrix element for unpolarized lepton decay
36338C
36339C Inputs : Mass of a : AMA
36340C Mass of l : AML
36341C Polar. of a: POL
36342C (Example: fully polar. mu- decay: AMA=AMMUON, AML=AMELCT,
36343C POL = -1)
36344C
36345C Outputs : kinematic variables in the rest frame of decaying lepton
36346C ETL,PXL,PYL,PZL 4-moment of l
36347C ETB,PXB,PYB,PZB 4-moment of b
36348C ETN,PXN,PYN,PZN 4-moment of anti-nu
36349C
36350C============================================================
36351C +
36352C Declarations.
36353C -
36354 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36355 SAVE
36356
36357 PARAMETER ( LINP = 10 ,
36358 & LOUT = 6 ,
36359 & LDAT = 9 )
36360 PARAMETER ( KALGNM = 2 )
36361 PARAMETER ( ANGLGB = 5.0D-16 )
36362 PARAMETER ( ANGLSQ = 2.5D-31 )
36363 PARAMETER ( AXCSSV = 0.2D+16 )
36364 PARAMETER ( ANDRFL = 1.0D-38 )
36365 PARAMETER ( AVRFLW = 1.0D+38 )
36366 PARAMETER ( AINFNT = 1.0D+30 )
36367 PARAMETER ( AZRZRZ = 1.0D-30 )
36368 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
36369 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
36370 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
36371 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
36372 PARAMETER ( CSNNRM = 2.0D-15 )
36373 PARAMETER ( DMXTRN = 1.0D+08 )
36374 PARAMETER ( ZERZER = 0.D+00 )
36375 PARAMETER ( ONEONE = 1.D+00 )
36376 PARAMETER ( TWOTWO = 2.D+00 )
36377 PARAMETER ( THRTHR = 3.D+00 )
36378 PARAMETER ( FOUFOU = 4.D+00 )
36379 PARAMETER ( FIVFIV = 5.D+00 )
36380 PARAMETER ( SIXSIX = 6.D+00 )
36381 PARAMETER ( SEVSEV = 7.D+00 )
36382 PARAMETER ( EIGEIG = 8.D+00 )
36383 PARAMETER ( ANINEN = 9.D+00 )
36384 PARAMETER ( TENTEN = 10.D+00 )
36385 PARAMETER ( HLFHLF = 0.5D+00 )
36386 PARAMETER ( ONETHI = ONEONE / THRTHR )
36387 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
36388 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
36389 PARAMETER ( ENEPER = 2.7182818284590452354 D+00 )
36390 PARAMETER ( SQRENT = 1.6487212707001281468 D+00 )
36391 PARAMETER ( CLIGHT = 2.99792458 D+10 )
36392 PARAMETER ( AVOGAD = 6.0221367 D+23 )
36393 PARAMETER ( AMELGR = 9.1093897 D-28 )
36394 PARAMETER ( PLCKBR = 1.05457266 D-27 )
36395 PARAMETER ( ELCCGS = 4.8032068 D-10 )
36396 PARAMETER ( ELCMKS = 1.60217733 D-19 )
36397 PARAMETER ( AMUGRM = 1.6605402 D-24 )
36398 PARAMETER ( AMMUMU = 0.113428913 D+00 )
36399 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
36400 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
36401 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
36402 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
36403 PARAMETER ( PLABRC = 0.197327053 D+00 )
36404 PARAMETER ( AMELCT = 0.51099906 D-03 )
36405 PARAMETER ( AMUGEV = 0.93149432 D+00 )
36406 PARAMETER ( AMMUON = 0.105658389 D+00 )
36407 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
36408 PARAMETER ( GEVMEV = 1.0 D+03 )
36409 PARAMETER ( EMVGEV = 1.0 D-03 )
36410 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
36411 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
36412 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
36413C +
36414C variables for EXPLOD
36415C -
36416 PARAMETER ( KPMX = 10 )
36417 DIMENSION AMEXPL (KPMX), PXEXPL (KPMX), PYEXPL (KPMX),
36418 & PZEXPL (KPMX), ETEXPL (KPMX)
36419C +
36420C test variables
36421C -
36422**sr - removed (not needed)
36423C COMMON /GBATNU/ ELERAT,NTRY
36424**
36425C +
36426C Initializes test variables
36427C -
36428 NTRY = 0
36429 ELERAT = 0.D+00
36430C +
36431C Maximum value for matrix element
36432C -
36433 ELEMAX = ( AMA**2 + AML**2 )**2 / AMA**2 * ( AMA**2 - AML**2 +
36434 & SQRT( AMA**4 + AML**4 - 3.D+00 * AMA**2 * AML**2 ) )
36435C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
36436C Inputs for EXPLOD
36437C part. no. 1 is l (e- in mu- decay)
36438C part. no. 2 is b (nu-mu in mu- decay)
36439C part. no. 3 is anti-nu (anti-nu-e in mu- decay)
36440C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
36441 NPEXPL = 3
36442 ETOTEX = AMA
36443 AMEXPL(1) = AML
36444 AMEXPL(2) = 0.D+00
36445 AMEXPL(3) = 0.D+00
36446C +
36447C phase space distribution
36448C -
36449 100 CONTINUE
36450 NTRY = NTRY + 1
36451
36452 CALL DT_EXPLOD ( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
36453 & PYEXPL, PZEXPL )
36454
36455C +
36456C Calculates matrix element:
36457C 64*GF**2{[P(a)-ama*S(a)]*P(anti-nu)}{P(l)*P(b)}
36458C Here CTH is the cosine of the angle between anti-nu and Z axis
36459C -
36460 CTH = PZEXPL(3) / SQRT ( PXEXPL(3)**2 + PYEXPL(3)**2 +
36461 & PZEXPL(3)**2 )
36462 PROD1 = ETEXPL(3) * AMA * (1.D+00 - POL * CTH)
36463 PROD2 = ETEXPL(1) * ETEXPL(2) - PXEXPL(1)*PXEXPL(2) -
36464 & PYEXPL(1)*PYEXPL(2) - PZEXPL(1)*PZEXPL(2)
36465 ELEMAT = 16.D+00 * PROD1 * PROD2
36466 IF(ELEMAT.GT.ELEMAX) THEN
36467 WRITE(LOUT,*) 'Problems in LEPDCY',ELEMAX,ELEMAT
36468 STOP
36469 ENDIF
36470C +
36471C Here performs the rejection
36472C -
36473 TEST = DT_RNDM(ETOTEX) * ELEMAX
36474 IF ( TEST .GT. ELEMAT ) GO TO 100
36475C +
36476C final assignment of variables
36477C -
36478 ELERAT = ELEMAT/ELEMAX
36479 ETL = ETEXPL(1)
36480 PXL = PXEXPL(1)
36481 PYL = PYEXPL(1)
36482 PZL = PZEXPL(1)
36483 ETB = ETEXPL(2)
36484 PXB = PXEXPL(2)
36485 PYB = PYEXPL(2)
36486 PZB = PZEXPL(2)
36487 ETN = ETEXPL(3)
36488 PXN = PXEXPL(3)
36489 PYN = PYEXPL(3)
36490 PZN = PZEXPL(3)
36491 999 RETURN
36492 END
36493
36494*$ CREATE DT_GEN_DELTA.FOR
36495*COPY DT_GEN_DELTA
36496C==================================================================
36497C. Generation of Delta resonance events
36498C==================================================================
36499*
36500*===gen_delta==========================================================*
36501*
36502 SUBROUTINE DT_GEN_DELTA(ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25)
36503
36504 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36505 SAVE
36506
36507 PARAMETER ( LINP = 10 ,
36508 & LOUT = 6 ,
36509 & LDAT = 9 )
36510C...Generate a Delta-production neutrino/antineutrino
36511C. CC-interaction on a nucleon
36512C
36513C. INPUT ENU (GeV) = Neutrino Energy
36514C. LLEP = neutrino type
36515C. LTARG = nucleon target type 1=p, 2=n.
36516C. JINT = 1:CC, 2::NC
36517C.
36518C. OUTPUT PPL(4) 4-monentum of final lepton
36519C----------------------------------------------------
36520 PARAMETER (MAXLND=4000)
36521 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36522**sr - removed (not needed)
36523C COMMON /CBAD/ LBAD, NBAD
36524**
36525
36526 DIMENSION PI(3),PO(3)
36527C REAL*4 AMD0, AMD, AMN(2), AML0(6), AML, AML2, AMDMIN
36528 DIMENSION AML0(6),AMN(2)
36529 DATA AMD0 /1.231/, GAMD /0.12/, DELD/0.169/, AMDMIN/1.084/
36530 DATA AMN /0.93827231, 0.93956563/
36531 DATA AML0 /2*0.51100E-03,2*0.105659, 2*1.777/
36532
36533c WRITE(6,*)' GEN_DEL',ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25
36534 LBAD = 0
36535C...Final lepton mass
36536 IF (JINT.EQ.1) THEN
36537 AML = AML0(LLEP)
36538 ELSE
36539 AML = 0.
36540 ENDIF
36541 AML2 = AML**2
36542
36543C...Particle labels (LUND)
36544 N = 5
36545 K(1,1) = 21
36546 K(2,1) = 21
36547 K(3,1) = 21
36548 K(4,1) = 1
36549 K(3,3) = 1
36550 K(4,3) = 1
36551 IF (LTARG .EQ. 1) THEN
36552 K(2,2) = 2212
36553 ELSE
36554 K(2,2) = 2112
36555 ENDIF
36556 K0 = (LLEP-1)/2
36557 K1 = LLEP/2
36558 KA = 12 + 2*K0
36559 IS = -1 + 2*LLEP - 4*K1
36560 LNU = 2 - LLEP + 2*K1
36561 K(1,2) = IS*KA
36562 K(5,1) = 1
36563 K(5,3) = 2
36564 IF (JINT .EQ. 1) THEN ! CC interactions
36565 K(3,2) = IS*24
36566 K(4,2) = IS*(KA-1)
36567 IF(LNU.EQ.1) THEN
36568 IF (LTARG .EQ. 1) THEN
36569 K(5,2) = 2224
36570 ELSE
36571 K(5,2) = 2214
36572 ENDIF
36573 ELSE
36574 IF (LTARG .EQ. 1) THEN
36575 K(5,2) = 2114
36576 ELSE
36577 K(5,2) = 1114
36578 ENDIF
36579 ENDIF
36580 ELSE
36581 K(3,2) = 23 ! NC (Z0) interactions
36582 K(4,2) = K(1,2)
36583**sr 7.5.00: swop Delta's (bug), Delta+ for proton (LTARG=1),
36584* Delta0 for neutron (LTARG=2)
36585C IF (LTARG .EQ. 1) THEN
36586C K(5,2) = 2114
36587C ELSE
36588C K(5,2) = 2214
36589C ENDIF
36590 IF (LTARG .EQ. 1) THEN
36591 K(5,2) = 2214
36592 ELSE
36593 K(5,2) = 2114
36594 ENDIF
36595**
36596 ENDIF
36597
36598C...4-momentum initial lepton
36599 P(1,5) = 0.
36600 P(1,4) = ENU
36601 P(1,1) = 0.
36602 P(1,2) = 0.
36603 P(1,3) = ENU
36604C...4-momentum initial nucleon
36605 P(2,5) = AMN(LTARG)
36606C P(2,4) = P(2,5)
36607C P(2,1) = 0.
36608C P(2,2) = 0.
36609C P(2,3) = 0.
36610 P(2,1) = P21
36611 P(2,2) = P22
36612 P(2,3) = P23
36613 P(2,4) = P24
36614 P(2,5) = P25
36615 N=2
36616 beta1=-p(2,1)/p(2,4)
36617 beta2=-p(2,2)/p(2,4)
36618 beta3=-p(2,3)/p(2,4)
36619 N=2
36620
36621 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
36622
36623C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
36624
36625 phi11=atan(p(1,2)/p(1,3))
36626 pi(1)=p(1,1)
36627 pi(2)=p(1,2)
36628 pi(3)=p(1,3)
36629
36630 CALL DT_TESTROT(PI,Po,PHI11,1)
36631 DO ll=1,3
36632 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36633 END DO
36634 p(1,1)=po(1)
36635 p(1,2)=po(2)
36636 p(1,3)=po(3)
36637 phi12=atan(p(1,1)/p(1,3))
36638
36639 pi(1)=p(1,1)
36640 pi(2)=p(1,2)
36641 pi(3)=p(1,3)
36642 CALL DT_TESTROT(Pi,Po,PHI12,2)
36643 DO ll=1,3
36644 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36645 END DO
36646 p(1,1)=po(1)
36647 p(1,2)=po(2)
36648 p(1,3)=po(3)
36649
36650 ENUU=P(1,4)
36651
36652C...Generate the Mass of the Delta
36653 NTRY = 0
36654100 R = PYR(0)
36655 AMD=AMD0+0.5*GAMD*TAN((2.*R-1.)*ATAN(2.*DELD/GAMD))
36656 NTRY = NTRY + 1
36657 IF (NTRY .GT. 1000) THEN
36658 LBAD = 1
36659 WRITE (LOUT,1001) NBAD, ENUU,AMD,AMDMIN,AMD0,GAMD,ET
36660 RETURN
36661 ENDIF
36662 IF (AMD .LT. AMDMIN) GOTO 100
36663 ET = ((AMD+AML)**2 - AMN(LTARG)**2)/(2.*AMN(LTARG))
36664 IF (ENUU .LT. ET) GOTO 100
36665
36666C...Kinematical limits in Q**2
36667 S = AMN(LTARG)**2 + 2.*AMN(LTARG)*ENUU
36668 SQS = SQRT(S)
36669 PSTAR = (S - AMN(LTARG)**2)/(2.*SQS)
36670 ELF = (S - AMD**2 + AML2)/(2.*SQS)
36671 PLF = SQRT(ELF**2 - AML2)
36672 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF)
36673 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF)
36674 IF (Q2MIN .LT. 0.) Q2MIN = 0.
36675
36676 DSIGMAX = DT_DSIGMA_DELTA(LNU,-Q2MIN, S, AML, AMD)
36677200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
36678 DSIG = DT_DSIGMA_DELTA(LNU,-Q2, S, AML, AMD)
36679 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
36680
36681C...Generate the kinematics of the final particles
36682 EISTAR = (S + AMN(LTARG)**2)/(2.*SQS)
36683 GAM = EISTAR/AMN(LTARG)
36684 BET = PSTAR/EISTAR
36685 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF)
36686 EL = GAM*(ELF + BET*PLF*CTSTAR)
36687 PLZ = GAM*(PLF*CTSTAR + BET*ELF)
36688 PL = SQRT(EL**2 - AML2)
36689 PLT = SQRT(MAX(1.D-06,(PL*PL - PLZ*PLZ)))
36690 PHI = 6.28319*PYR(0)
36691 P(4,1) = PLT*COS(PHI)
36692 P(4,2) = PLT*SIN(PHI)
36693 P(4,3) = PLZ
36694 P(4,4) = EL
36695 P(4,5) = AML
36696
36697C...4-momentum of Delta
36698 P(5,1) = -P(4,1)
36699 P(5,2) = -P(4,2)
36700 P(5,3) = ENUU-P(4,3)
36701 P(5,4) = ENUU+AMN(LTARG)-P(4,4)
36702 P(5,5) = AMD
36703
36704C...4-momentum of intermediate boson
36705 P(3,5) = -Q2
36706 P(3,4) = P(1,4)-P(4,4)
36707 P(3,1) = P(1,1)-P(4,1)
36708 P(3,2) = P(1,2)-P(4,2)
36709 P(3,3) = P(1,3)-P(4,3)
36710 N=5
36711
36712 DO kw=1,5
36713 pi(1)=p(kw,1)
36714 pi(2)=p(kw,2)
36715 pi(3)=p(kw,3)
36716 CALL DT_TESTROT(Pi,Po,PHI12,3)
36717 DO ll=1,3
36718 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36719 END DO
36720 p(kw,1)=po(1)
36721 p(kw,2)=po(2)
36722 p(kw,3)=po(3)
36723 END DO
36724
36725c********************************************
36726
36727 DO kw=1,5
36728 pi(1)=p(kw,1)
36729 pi(2)=p(kw,2)
36730 pi(3)=p(kw,3)
36731 CALL DT_TESTROT(Pi,Po,PHI11,4)
36732 DO ll=1,3
36733 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36734 END DO
36735 p(kw,1)=po(1)
36736 p(kw,2)=po(2)
36737 p(kw,3)=po(3)
36738 END DO
36739c********************************************
36740C transform back into Lab.
36741
36742 CALL PYROBO(0,0,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
36743
36744C WRITE(6,*)' Lab fram ( fermi incl.) '
36745 N=5
36746 CALL PYEXEC
36747
36748 RETURN
367491001 FORMAT(2X, 'DT_GEN_DELTA : event rejected ', I5, 6G10.3)
36750 END
36751
36752*$ CREATE DT_DSIGMA_DELTA.FOR
36753*COPY DT_DSIGMA_DELTA
36754*
36755*===dsigma_delta=======================================================*
36756*
36757 DOUBLE PRECISION FUNCTION DT_DSIGMA_DELTA (LNU, QQ, S, AML, MD)
36758
36759 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36760 SAVE
36761
36762C...Reaction nu + N -> lepton + Delta
36763C. returns the cross section
36764C. dsigma/dt
36765C. INPUT LNU = 1, 2 (neutrino-antineutrino)
36766C. QQ = t (always negative) GeV**2
36767C. S = (c.m energy)**2 GeV**2
36768C. OUTPUT = 10**-38 cm+2/GeV**2
36769C-----------------------------------------------------
36770 REAL*8 MN, MN2, MN4, MD,MD2, MD4
36771 DATA MN /0.938/
36772 DATA PI /3.1415926/
36773
36774 GF = (1.1664 * 1.97)
36775 GF2 = GF*GF
36776 MN2 = MN*MN
36777 MN4 = MN2*MN2
36778 MD2 = MD*MD
36779 MD4 = MD2*MD2
36780 AML2 = AML*AML
36781 AML4 = AML2*AML2
36782 VQ = (MN2 - MD2 - QQ)/2.
36783 VPI = (MN2 + MD2 - QQ)/2.
36784 VK = (S + QQ - MN2 - AML2)/2.
36785 PIK = (S - MN2)/2.
36786 QK = (AML2 - QQ)/2.
36787 PIQ = (QQ + MN2 - MD2)/2.
36788 Q = SQRT(-QQ)
36789 C3V = 2.07*SQRT(EXP(-6.3*Q)*(1.+9*Q))
36790 C3 = SQRT(3.)*C3V/MN
36791 C4 = -C3/MD ! attenzione al segno
36792 C5A = 1.18/(1.-QQ/0.4225)**2
36793 C32 = C3**2
36794 C42 = C4**2
36795 C5A2 = C5A**2
36796
36797 IF (LNU .EQ. 1) THEN
36798 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36799 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36800 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36801 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36802 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36803 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36804 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36805 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36806 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36807 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ-
36808 . 4.*MN*C3*C5A*MD2*VK*QQ+4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36809 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36810 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36811 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36812 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK-MD*
36813 . C3*C5A*MD2*PIK*QQ+MD*C3*C5A*MD2*QK*PIQ-3.*MD*C3*C5A
36814 . *VK*VPI*QQ+MD*C3*C5A*VK*VQ*PIQ+3.*MD*C3*C5A*VPI*VQ*
36815 . QK-MD*C3*C5A*VQ**2*PIK+C4*C5A*MD2*VK*VPI*QQ+C4*C5A*
36816 . MD2*VK*VQ*PIQ-C4*C5A*MD2*VPI*VQ*QK-C4*C5A*MD2*VQ**2
36817 . *PIK-C4*C5A*MD4*PIK*QQ+C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36818 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36819 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36820 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36821 ELSE
36822 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36823 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36824 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36825 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36826 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36827 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36828 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36829 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36830 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36831 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ+
36832 . 4.*MN*C3*C5A*MD2*VK*QQ-4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36833 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36834 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36835 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36836 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK+MD*
36837 . C3*C5A*MD2*PIK*QQ-MD*C3*C5A*MD2*QK*PIQ+3.*MD*C3*C5A
36838 . *VK*VPI*QQ-MD*C3*C5A*VK*VQ*PIQ-3.*MD*C3*C5A*VPI*VQ*
36839 . QK+MD*C3*C5A*VQ**2*PIK-C4*C5A*MD2*VK*VPI*QQ-C4*C5A*
36840 . MD2*VK*VQ*PIQ+C4*C5A*MD2*VPI*VQ*QK+C4*C5A*MD2*VQ**2
36841 . *PIK+C4*C5A*MD4*PIK*QQ-C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36842 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36843 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36844 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36845 ENDIF
36846 ANS1=32.*ANS2
36847 ANS=ANS1/(3.*MD2)
36848 P1CM = (S-MN2)/(2.*SQRT(S))
36849 DT_DSIGMA_DELTA = GF2/2. * ANS/(64.*PI*S*P1CM**2)
36850
36851 RETURN
36852 END
36853
36854*$ CREATE DT_QGAUS.FOR
36855*COPY DT_QGAUS
36856*
36857*===qgaus==============================================================*
36858*
36859 SUBROUTINE DT_QGAUS(A,B,SS,ENU,LTYP)
36860
36861 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36862 SAVE
36863
36864 DIMENSION X(5),W(5)
36865 DATA X/.1488743389D0,.4333953941D0,
36866 & .6794095682D0,.8650633666D0,.9739065285D0
36867 */
36868 DATA W/.2955242247D0,.2692667193D0,
36869 & .2190863625D0,.1494513491D0,.0666713443D0
36870 */
36871 XM=0.5D0*(B+A)
36872 XR=0.5D0*(B-A)
36873 SS=0
36874 DO 11 J=1,5
36875 DX=XR*X(J)
36876 SS=SS+W(J)*(DT_DSQEL_Q2(LTYP,ENU,XM+DX)+
36877 * DT_DSQEL_Q2(LTYP,ENU,XM-DX))
3687811 CONTINUE
36879 SS=XR*SS
36880
36881 RETURN
36882 END
36883
36884*$ CREATE DT_DIQBRK.FOR
36885*COPY DT_DIQBRK
36886*
36887*===diqbrk=============================================================*
36888*
36889 SUBROUTINE DT_DIQBRK
36890
36891 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36892 SAVE
36893
36894* event history
36895 PARAMETER (NMXHKK=200000)
36896 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36897 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36898 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36899* extended event history
36900 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36901 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36902 & IHIST(2,NMXHKK)
36903* event flag
36904 COMMON /DTEVNO/ NEVENT,ICASCA
36905
36906C IF(DT_RNDM(VV).LE.0.5D0)THEN
36907C CALL GSQBS1(NHKK)
36908C CALL GSQBS2(NHKK)
36909C CALL USQBS1(NHKK)
36910C CALL USQBS2(NHKK)
36911C CALL GSABS1(NHKK)
36912C CALL GSABS2(NHKK)
36913C CALL USABS1(NHKK)
36914C CALL USABS2(NHKK)
36915C ELSE
36916C CALL GSQBS2(NHKK)
36917C CALL GSQBS1(NHKK)
36918C CALL USQBS2(NHKK)
36919C CALL USQBS1(NHKK)
36920C CALL GSABS2(NHKK)
36921C CALL GSABS1(NHKK)
36922C CALL USABS2(NHKK)
36923C CALL USABS1(NHKK)
36924C ENDIF
36925
36926 IF(DT_RNDM(VV).LE.0.5D0) THEN
36927 CALL DT_DBREAK(1)
36928 CALL DT_DBREAK(2)
36929 CALL DT_DBREAK(3)
36930 CALL DT_DBREAK(4)
36931 CALL DT_DBREAK(5)
36932 CALL DT_DBREAK(6)
36933 CALL DT_DBREAK(7)
36934 CALL DT_DBREAK(8)
36935 ELSE
36936 CALL DT_DBREAK(2)
36937 CALL DT_DBREAK(1)
36938 CALL DT_DBREAK(4)
36939 CALL DT_DBREAK(3)
36940 CALL DT_DBREAK(6)
36941 CALL DT_DBREAK(5)
36942 CALL DT_DBREAK(8)
36943 CALL DT_DBREAK(7)
36944 ENDIF
36945
36946 RETURN
36947 END
36948
36949*$ CREATE MUSQBS2.FOR
36950*COPY MUSQBS2
36951C
36952C
36953C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
36954 SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
36955 * IP1,IP21,IP22,IPP1,IPP2,IPIP,ISQ,IGCOUN)
36956C
36957C USQBS-2 diagram (split target diquark)
36958C
36959 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36960 SAVE
36961
36962 PARAMETER ( LINP = 10 ,
36963 & LOUT = 6 ,
36964 & LDAT = 9 )
36965* event history
36966 PARAMETER (NMXHKK=200000)
36967 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36968 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36969 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36970* extended event history
36971 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36972 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36973 & IHIST(2,NMXHKK)
36974* Lorentz-parameters of the current interaction
36975 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
36976 & UMO,PPCM,EPROJ,PPROJ
36977* diquark-breaking mechanism
36978 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
36979
36980C
36981 PARAMETER (NTMHKK= 300)
36982 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
36983 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
36984 +(4,NTMHKK)
36985*KEEP,XSEADI.
36986 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
36987 +SSMIMQ,VVMTHR
36988*KEEP,DPRIN.
36989 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
36990 COMMON /EVFLAG/ NUMEV
36991C
36992C USQBS-2 diagram (split target diquark)
36993C
36994C
36995C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
36996C Input chain 2(NC2) sea-antiquark(NC2P)-sea-quark(NC2T)
36997C
36998C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
36999C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37000C
37001C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37002C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37003C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37004C
37005C
37006C Put new chains into COMMON /HKKTMP/
37007C
37008 IIGLU1=NC1T-NC1P-1
37009 IIGLU2=NC2T-NC2P-1
37010 IGCOUN=0
37011C WRITE(LOUT,*)'MUSQBS2: IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37012 CVQ=1.D0
37013 IREJ=0
37014 IF(IPIP.EQ.2)THEN
37015C IF(NUMEV.EQ.-324)THEN
37016C WRITE(LOUT,*)' MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37017C * 'IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN)',
37018C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37019C * IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN
37020 ENDIF
37021C
37022C
37023C
37024C determine x-values of NC1T diquark
37025 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37026 XVQP=PHKK(4,NC1P)*2.D0/UMO
37027C
37028C determine x-values of sea quark pair
37029C
37030 IPCO=1
37031 ICOU=0
37032 2234 CONTINUE
37033 ICOU=ICOU+1
37034 IF(ICOU.GE.500)THEN
37035 IREJ=1
37036 IF(ISQ.EQ.3)IREJ=3
37037 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 2234 ICOU. GT.500'
37038 IPCO=0
37039 RETURN
37040 ENDIF
37041 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37042 * UMO, XDIQT,XVQP
37043 XSQ=0.D0
37044 XSAQ=0.D0
37045**NEW
37046C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37047 IF (IPIP.EQ.1) THEN
37048 XQMAX = XDIQT/2.0D0
37049 XAQMAX = 2.D0*XVQP/3.0D0
37050 ELSE
37051 XQMAX = 2.D0*XVQP/3.0D0
37052 XAQMAX = XDIQT/2.0D0
37053 ENDIF
37054 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37055 ISAQ = 6+ISQ
37056C write(*,*) 'MUSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37057**
37058 IF(IPCO.GE.3)
37059 & WRITE(LOUT,*)'MUSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37060 IF(IREJ.GE.1)THEN
37061 IF(IPCO.GE.3)
37062 & WRITE(LOUT,*)'MUSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37063 IPCO=0
37064 RETURN
37065 ENDIF
37066 IF(IPIP.EQ.1)THEN
37067 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37068 ELSEIF(IPIP.EQ.2)THEN
37069 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37070 ENDIF
37071 IF(IPCO.GE.3)THEN
37072 WRITE(LOUT,'(A,4E12.4)')' MUSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37073 * XDIQT,XVQP,XSQ,XSAQ
37074 ENDIF
37075C
37076C subtract xsq,xsaq from NC1T diquark and NC1P quark
37077C
37078C XSQ=0.D0
37079 IF(IPIP.EQ.1)THEN
37080 XDIQT=XDIQT-XSQ
37081 XVQP =XVQP -XSAQ
37082 ELSEIF(IPIP.EQ.2)THEN
37083 XDIQT=XDIQT-XSAQ
37084 XVQP =XVQP -XSQ
37085 ENDIF
37086 IF(IPCO.GE.3)
37087 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37088C
37089C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37090C
37091 XVTHRO=CVQ/UMO
37092 IVTHR=0
37093 3466 CONTINUE
37094 IF(IVTHR.EQ.10)THEN
37095 IREJ=1
37096 IF(ISQ.EQ.3)IREJ=3
37097 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 3466 reject IVTHR 10'
37098 IPCO=0
37099 RETURN
37100 ENDIF
37101 IVTHR=IVTHR+1
37102 XVTHR=XVTHRO/(201-IVTHR)
37103 UNOPRV=UNON
37104 380 CONTINUE
37105 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37106 IREJ=1
37107 IF(ISQ.EQ.3)IREJ=3
37108 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 380 XVTHR large ',
37109 * XVTHR
37110 IPCO=0
37111 RETURN
37112 ENDIF
37113 IF(DT_RNDM(V).LT.0.5D0)THEN
37114 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37115 XVTQII=XDIQT-XVTQI
37116 ELSE
37117 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37118 XVTQI=XDIQT-XVTQII
37119 ENDIF
37120 IF(IPCO.GE.3)THEN
37121 WRITE(LOUT,'(A,2E12.4)')' MUSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37122 ENDIF
37123C
37124C Prepare 4 momenta of new chains and chain ends
37125C
37126C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37127C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37128C +(4,NTMHKK)
37129C
37130C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37131C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37132C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37133C
37134C SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37135C * IP1,IP21,IP22,IPP1,IPP2)
37136C
37137 IF(IPIP.EQ.1)THEN
37138 XSQ1=XSQ
37139 XSAQ1=XSAQ
37140 ISQ1=ISQ
37141 ISAQ1=ISAQ
37142 ELSEIF(IPIP.EQ.2)THEN
37143 XSQ1=XSAQ
37144 XSAQ1=XSQ
37145 ISQ1=ISAQ
37146 ISAQ1=ISQ
37147 ENDIF
37148 IDHKT(1) =IPP1
37149 ISTHKT(1) =951
37150 JMOHKT(1,1)=NC2P
37151 JMOHKT(2,1)=0
37152 JDAHKT(1,1)=3+IIGLU1
37153 JDAHKT(2,1)=0
37154C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37155 PHKT(1,1) =PHKK(1,NC2P)
37156 PHKT(2,1) =PHKK(2,NC2P)
37157 PHKT(3,1) =PHKK(3,NC2P)
37158 PHKT(4,1) =PHKK(4,NC2P)
37159C PHKT(5,1) =PHKK(5,NC2P)
37160 XMIST =(PHKT(4,1)**2-
37161 * PHKT(3,1)**2-PHKT(2,1)**2-
37162 *PHKT(1,1)**2)
37163 IF(XMIST.GT.0.D0)THEN
37164 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
37165 *PHKT(1,1)**2)
37166 ELSE
37167C WRITE(LOUT,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
37168 PHKT(5,1)=0.D0
37169 ENDIF
37170 VHKT(1,1) =VHKK(1,NC2P)
37171 VHKT(2,1) =VHKK(2,NC2P)
37172 VHKT(3,1) =VHKK(3,NC2P)
37173 VHKT(4,1) =VHKK(4,NC2P)
37174 WHKT(1,1) =WHKK(1,NC2P)
37175 WHKT(2,1) =WHKK(2,NC2P)
37176 WHKT(3,1) =WHKK(3,NC2P)
37177 WHKT(4,1) =WHKK(4,NC2P)
37178C Add here IIGLU1 gluons to this chaina
37179 PG1=0.D0
37180 PG2=0.D0
37181 PG3=0.D0
37182 PG4=0.D0
37183 IF(IIGLU1.GE.1)THEN
37184 JJG=NC1P
37185 DO 61 IIG=2,2+IIGLU1-1
37186 KKG=JJG+IIG-1
37187 IDHKT(IIG) =IDHKK(KKG)
37188 ISTHKT(IIG) =921
37189 JMOHKT(1,IIG)=KKG
37190 JMOHKT(2,IIG)=0
37191 JDAHKT(1,IIG)=3+IIGLU1
37192 JDAHKT(2,IIG)=0
37193 PHKT(1,IIG)=PHKK(1,KKG)
37194 PG1=PG1+ PHKT(1,IIG)
37195 PHKT(2,IIG)=PHKK(2,KKG)
37196 PG2=PG2+ PHKT(2,IIG)
37197 PHKT(3,IIG)=PHKK(3,KKG)
37198 PG3=PG3+ PHKT(3,IIG)
37199 PHKT(4,IIG)=PHKK(4,KKG)
37200 PG4=PG4+ PHKT(4,IIG)
37201 PHKT(5,IIG)=PHKK(5,KKG)
37202 VHKT(1,IIG) =VHKK(1,KKG)
37203 VHKT(2,IIG) =VHKK(2,KKG)
37204 VHKT(3,IIG) =VHKK(3,KKG)
37205 VHKT(4,IIG) =VHKK(4,KKG)
37206 WHKT(1,IIG) =WHKK(1,KKG)
37207 WHKT(2,IIG) =WHKK(2,KKG)
37208 WHKT(3,IIG) =WHKK(3,KKG)
37209 WHKT(4,IIG) =WHKK(4,KKG)
37210 61 CONTINUE
37211 ENDIF
37212 IDHKT(2+IIGLU1) =IP21
37213 ISTHKT(2+IIGLU1) =952
37214 JMOHKT(1,2+IIGLU1)=NC1T
37215 JMOHKT(2,2+IIGLU1)=0
37216 JDAHKT(1,2+IIGLU1)=3+IIGLU1
37217 JDAHKT(2,2+IIGLU1)=0
37218 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
37219 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
37220 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
37221 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
37222C PHKT(5,2) =PHKK(5,NC1T)
37223 XMIST =(PHKT(4,2+IIGLU1)**2-
37224 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37225 *PHKT(1,2+IIGLU1)**2)
37226 IF(XMIST.GT.0.D0)THEN
37227 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
37228 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37229 *PHKT(1,2+IIGLU1)**2)
37230 ELSE
37231C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37232 PHKT(5,5+IIGLU1)=0.D0
37233 ENDIF
37234 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
37235 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
37236 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
37237 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
37238 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
37239 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
37240 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
37241 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
37242 IDHKT(3+IIGLU1) =88888
37243 ISTHKT(3+IIGLU1) =95
37244 JMOHKT(1,3+IIGLU1)=1
37245 JMOHKT(2,3+IIGLU1)=2+IIGLU1
37246 JDAHKT(1,3+IIGLU1)=0
37247 JDAHKT(2,3+IIGLU1)=0
37248 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
37249 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
37250 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
37251 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
37252 XMIST
37253 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37254 * -PHKT(3,3+IIGLU1)**2)
37255 IF(XMIST.GT.0.D0)THEN
37256 PHKT(5,3+IIGLU1)
37257 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37258 * -PHKT(3,3+IIGLU1)**2)
37259 ELSE
37260C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37261 PHKT(5,5+IIGLU1)=0.D0
37262 ENDIF
37263 IF(IPIP.GE.2)THEN
37264C IF(NUMEV.EQ.-324)THEN
37265C WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
37266C * JDAHKT(1,1),
37267C *JDAHKT(2,1),(PHKT(III,1),III=1,5)
37268 DO 71 IIG=2,2+IIGLU1-1
37269C WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
37270C & JMOHKT(1,IIG),JMOHKT(2,IIG),
37271C * JDAHKT(1,IIG),
37272C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37273 71 CONTINUE
37274C WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
37275C * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
37276C *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
37277C WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
37278C * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
37279C *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
37280 ENDIF
37281 CHAMAL=CHAM1
37282 IF(IPIP.EQ.1)THEN
37283 IF(IPP1.LE.-3.OR.IP21.GE.3)CHAMAL=CHAM3
37284 ELSEIF(IPIP.EQ.2)THEN
37285 IF(IPP1.GE.3.OR.IP21.LE.-3)CHAMAL=CHAM3
37286 ENDIF
37287 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
37288C IREJ=1
37289 IPCO=0
37290C RETURN
37291C WRITE(LOUT,*)' MUSQBS1 jump back from chain 3'
37292 GO TO 3466
37293 ENDIF
37294 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
37295 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
37296 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
37297 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
37298 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
37299 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
37300 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
37301 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
37302 IF(IPIP.EQ.1)THEN
37303 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37304 ELSEIF(IPIP.EQ.2)THEN
37305 IDHKT(4+IIGLU1) =ISAQ1
37306 ENDIF
37307 ISTHKT(4+IIGLU1) =951
37308 JMOHKT(1,4+IIGLU1)=NC1P
37309 JMOHKT(2,4+IIGLU1)=0
37310 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37311 JDAHKT(2,4+IIGLU1)=0
37312C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37313 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37314 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37315 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37316 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37317C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37318 XMIST =(PHKT(4,4+IIGLU1)**2-
37319 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37320 *PHKT(1,4+IIGLU1)**2)
37321 IF(XMIST.GT.0.D0)THEN
37322 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
37323 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37324 *PHKT(1,4+IIGLU1)**2)
37325 ELSE
37326C WRITE(LOUT,*)'MUSQBS2 parton 4 mass square LT.0 ',XMIST
37327 PHKT(5,4+IIGLU1)=0.D0
37328 ENDIF
37329 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37330 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37331 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37332 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37333 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37334 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37335 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37336 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37337 IDHKT(5+IIGLU1) =IP22
37338 ISTHKT(5+IIGLU1) =952
37339 JMOHKT(1,5+IIGLU1)=NC1T
37340 JMOHKT(2,5+IIGLU1)=0
37341 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37342 JDAHKT(2,5+IIGLU1)=0
37343 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37344 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37345 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37346 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37347C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37348 XMIST =(PHKT(4,5+IIGLU1)**2-
37349 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37350 *PHKT(1,5+IIGLU1)**2)
37351 IF(XMIST.GT.0.D0)THEN
37352 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
37353 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37354 *PHKT(1,5+IIGLU1)**2)
37355 ELSE
37356C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37357 PHKT(5,5+IIGLU1)=0.D0
37358 ENDIF
37359 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37360 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37361 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37362 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37363 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37364 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37365 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37366 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37367 IDHKT(6+IIGLU1) =88888
37368 ISTHKT(6+IIGLU1) =95
37369 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37370 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37371 JDAHKT(1,6+IIGLU1)=0
37372 JDAHKT(2,6+IIGLU1)=0
37373 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37374 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37375 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37376 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37377 XMIST
37378 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37379 * -PHKT(3,6+IIGLU1)**2)
37380 IF(XMIST.GT.0.D0)THEN
37381 PHKT(5,6+IIGLU1)
37382 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37383 * -PHKT(3,6+IIGLU1)**2)
37384 ELSE
37385C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37386 PHKT(5,5+IIGLU1)=0.D0
37387 ENDIF
37388C IF(IPIP.GE.2)THEN
37389C IF(NUMEV.EQ.-324)THEN
37390C WRITE(6,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37391C * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37392C *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37393C WRITE(6,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37394C * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37395C *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37396C WRITE(6,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37397C * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37398C *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37399C ENDIF
37400 CHAMAL=CHAM1
37401 IF(IPIP.EQ.1)THEN
37402 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37403 ELSEIF(IPIP.EQ.2)THEN
37404 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37405 ENDIF
37406 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37407C IREJ=1
37408 IPCO=0
37409C RETURN
37410C WRITE(6,*)' MUSQBS1 jump back from chain 6',
37411C * CHAMAL,PHKT(5,6+IIGLU1)
37412 GO TO 3466
37413 ENDIF
37414 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37415 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37416 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37417 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37418 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
37419 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
37420 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
37421 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
37422C IDHKT(7) =1000*IPP1+100*ISQ+1
37423 IDHKT(7+IIGLU1) =IP1
37424 ISTHKT(7+IIGLU1) =951
37425 JMOHKT(1,7+IIGLU1)=NC1P
37426 JMOHKT(2,7+IIGLU1)=0
37427**NEW
37428C JDAHKT(1,7+IIGLU1)=9+IIGLU1
37429 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
37430**
37431 JDAHKT(2,7+IIGLU1)=0
37432 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
37433 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
37434 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
37435 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
37436C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
37437 XMIST =(PHKT(4,7+IIGLU1)**2-
37438 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37439 *PHKT(1,7+IIGLU1)**2)
37440 IF(XMIST.GT.0.D0)THEN
37441 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
37442 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37443 *PHKT(1,7+IIGLU1)**2)
37444 ELSE
37445C WRITE(6,*)'MUSQBS2 parton 7 mass square LT.0 ',XMIST
37446 PHKT(5,7+IIGLU1)=0.D0
37447 ENDIF
37448 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
37449 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
37450 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
37451 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
37452 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
37453 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
37454 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
37455 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
37456C Insert here the IIGLU2 gluons
37457 PG1=0.D0
37458 PG2=0.D0
37459 PG3=0.D0
37460 PG4=0.D0
37461 IF(IIGLU2.GE.1)THEN
37462 JJG=NC2P
37463 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37464 KKG=JJG+IIG-7-IIGLU1
37465 IDHKT(IIG) =IDHKK(KKG)
37466 ISTHKT(IIG) =921
37467 JMOHKT(1,IIG)=KKG
37468 JMOHKT(2,IIG)=0
37469 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
37470 JDAHKT(2,IIG)=0
37471 PHKT(1,IIG)=PHKK(1,KKG)
37472 PG1=PG1+ PHKT(1,IIG)
37473 PHKT(2,IIG)=PHKK(2,KKG)
37474 PG2=PG2+ PHKT(2,IIG)
37475 PHKT(3,IIG)=PHKK(3,KKG)
37476 PG3=PG3+ PHKT(3,IIG)
37477 PHKT(4,IIG)=PHKK(4,KKG)
37478 PG4=PG4+ PHKT(4,IIG)
37479 PHKT(5,IIG)=PHKK(5,KKG)
37480 VHKT(1,IIG) =VHKK(1,KKG)
37481 VHKT(2,IIG) =VHKK(2,KKG)
37482 VHKT(3,IIG) =VHKK(3,KKG)
37483 VHKT(4,IIG) =VHKK(4,KKG)
37484 WHKT(1,IIG) =WHKK(1,KKG)
37485 WHKT(2,IIG) =WHKK(2,KKG)
37486 WHKT(3,IIG) =WHKK(3,KKG)
37487 WHKT(4,IIG) =WHKK(4,KKG)
37488 81 CONTINUE
37489 ENDIF
37490 IF(IPIP.EQ.1)THEN
37491 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
37492 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
37493 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
37494 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
37495 ELSEIF(IPIP.EQ.2)THEN
37496 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
37497 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
37498 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
37499 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
37500 ENDIF
37501 ISTHKT(8+IIGLU1+IIGLU2) =952
37502 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
37503 JMOHKT(2,8+IIGLU1+IIGLU2)=0
37504 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
37505 JDAHKT(2,8+IIGLU1+IIGLU2)=0
37506 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC2T)+
37507 * PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
37508 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC2T)+
37509 * PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
37510 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC2T)+
37511 * PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
37512 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC2T)+
37513 * PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
37514C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
37515C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
37516 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
37517C IREJ=1
37518C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
37519C * ,PHKT(4,8+IIGLU1+IIGLU2), PHKK(4,NC2T),NC2T
37520 IPCO=0
37521C RETURN
37522 GO TO 3466
37523 ENDIF
37524C PHKT(5,8) =PHKK(5,NC2T)
37525 XMIST =(PHKT(4,8+IIGLU1+IIGLU2)**2-
37526 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37527 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37528 IF(XMIST.GT.0.D0)THEN
37529 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
37530 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37531 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37532 ELSE
37533C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37534 PHKT(5,5+IIGLU1)=0.D0
37535 ENDIF
37536 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
37537 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
37538 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
37539 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
37540 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
37541 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
37542 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
37543 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
37544 IDHKT(9+IIGLU1+IIGLU2) =88888
37545 ISTHKT(9+IIGLU1+IIGLU2) =95
37546 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
37547 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
37548 JDAHKT(1,9+IIGLU1+IIGLU2)=0
37549 JDAHKT(2,9+IIGLU1+IIGLU2)=0
37550**NEW
37551C PHKT(1,9+IIGLU1+IIGLU2)
37552C * =PHKT(1,7+IIGLU1+IIGLU2)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37553C PHKT(2,9+IIGLU1+IIGLU2)
37554C * =PHKT(2,7+IIGLU1+IIGLU2)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37555C PHKT(3,9+IIGLU1+IIGLU2)
37556C * =PHKT(3,7+IIGLU1+IIGLU2)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37557C PHKT(4,9+IIGLU1+IIGLU2)
37558C * =PHKT(4,7+IIGLU1+IIGLU2)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37559 PHKT(1,9+IIGLU1+IIGLU2)
37560 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37561 PHKT(2,9+IIGLU1+IIGLU2)
37562 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37563 PHKT(3,9+IIGLU1+IIGLU2)
37564 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37565 PHKT(4,9+IIGLU1+IIGLU2)
37566 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37567**
37568 XMIST
37569 * =(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37570 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37571 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37572 IF(XMIST.GT.0.D0)THEN
37573 PHKT(5,9+IIGLU1+IIGLU2)
37574 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37575 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37576 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37577 ELSE
37578C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37579 PHKT(5,5+IIGLU1)=0.D0
37580 ENDIF
37581 IF(IPIP.GE.2)THEN
37582C IF(NUMEV.EQ.-324)THEN
37583C WRITE(6,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
37584C * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
37585C *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
37586C DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37587C WRITE(6,*)IIG,ISTHKT(IIG),IDHKT(IIG),JMOHKT(1,IIG),JMOHKT(2,IIG),
37588C * JDAHKT(1,IIG),
37589C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37590C 91 CONTINUE
37591C WRITE(6,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
37592C * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
37593C *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
37594C *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
37595C WRITE(6,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
37596C * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
37597C *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
37598C *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
37599 ENDIF
37600 CHAMAL=CHAB1
37601 IF(IPIP.EQ.1)THEN
37602 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
37603 ELSEIF(IPIP.EQ.2)THEN
37604 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
37605 ENDIF
37606 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
37607C IREJ=1
37608 IPCO=0
37609C RETURN
37610C WRITE(6,*)' MUSQBS1 jump back from chain 9',
37611C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
37612 GO TO 3466
37613 ENDIF
37614 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
37615 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
37616 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
37617 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
37618 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
37619 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
37620 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
37621 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
37622C
37623 IPCO=0
37624 IGCOUN=9+IIGLU1+IIGLU2
37625 RETURN
37626 END
37627
37628*$ CREATE MGSQBS2.FOR
37629*COPY MGSQBS2
37630C
37631C
37632C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
37633 SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37634 * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,ISQ,IGCOUN)
37635C
37636C GSQBS-2 diagram (split target diquark)
37637C
37638 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
37639 SAVE
37640
37641 PARAMETER ( LINP = 10 ,
37642 & LOUT = 6 ,
37643 & LDAT = 9 )
37644* event history
37645 PARAMETER (NMXHKK=200000)
37646 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
37647 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
37648 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
37649* extended event history
37650 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
37651 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
37652 & IHIST(2,NMXHKK)
37653* Lorentz-parameters of the current interaction
37654 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
37655 & UMO,PPCM,EPROJ,PPROJ
37656* diquark-breaking mechanism
37657 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
37658
37659C
37660 PARAMETER (NTMHKK= 300)
37661 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37662 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37663 +(4,NTMHKK)
37664
37665*KEEP,XSEADI.
37666 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
37667 +SSMIMQ,VVMTHR
37668*KEEP,DPRIN.
37669 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
37670C
37671C GSQBS-2 diagram (split target diquark)
37672C
37673C
37674C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
37675C Input chain 2(NC2) valence-diquark(NC2P)-sea-quark(NC2T)
37676C
37677C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
37678C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37679C
37680C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37681C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37682C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37683C
37684C
37685C
37686C Put new chains into COMMON /HKKTMP/
37687C
37688 IIGLU1=NC1T-NC1P-1
37689 IIGLU2=NC2T-NC2P-1
37690 IGCOUN=0
37691C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37692 CVQ=1.D0
37693 IREJ=0
37694C IF(IPIP.EQ.2)THEN
37695C WRITE(6,*)' MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37696C * 'IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN)',
37697C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37698C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN
37699C ENDIF
37700C
37701C
37702C
37703C determine x-values of NC1T diquark
37704 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37705 XVQP=PHKK(4,NC1P)*2.D0/UMO
37706C
37707C determine x-values of sea quark pair
37708C
37709 IPCO=1
37710 ICOU=0
37711 2234 CONTINUE
37712 ICOU=ICOU+1
37713 IF(ICOU.GE.500)THEN
37714 IREJ=1
37715 IF(ISQ.EQ.3)IREJ=3
37716 IF(IPCO.GE.3)
37717 & WRITE(LOUT,*)' MGSQBS2 Rejection 2234 ICOU. GT.500'
37718 IPCO=0
37719 RETURN
37720 ENDIF
37721 IF(IPCO.GE.3)
37722 & WRITE(LOUT,*)'MGSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37723 * UMO, XDIQT,XVQP
37724 XSQ=0.D0
37725 XSAQ=0.D0
37726**NEW
37727C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37728 IF (IPIP.EQ.1) THEN
37729 XQMAX = XDIQT/2.0D0
37730 XAQMAX = 2.D0*XVQP/3.0D0
37731 ELSE
37732 XQMAX = 2.D0*XVQP/3.0D0
37733 XAQMAX = XDIQT/2.0D0
37734 ENDIF
37735 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37736 ISAQ = 6+ISQ
37737C write(*,*) 'MGSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37738**
37739 IF(IPCO.GE.3)
37740 & WRITE(LOUT,*)'MGSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37741 IF(IREJ.GE.1)THEN
37742 IF(IPCO.GE.3)
37743 & WRITE(LOUT,*)'MGSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37744 IPCO=0
37745 RETURN
37746 ENDIF
37747 IF(IPIP.EQ.1)THEN
37748 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37749 ELSEIF(IPIP.EQ.2)THEN
37750 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37751 ENDIF
37752 IF(IPCO.GE.3)THEN
37753 WRITE(LOUT,'(A,4E12.4)')' MGSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37754 * XDIQT,XVQP,XSQ,XSAQ
37755 ENDIF
37756C
37757C subtract xsq,xsaq from NC1T diquark and NC1P quark
37758C
37759C XSQ=0.D0
37760 IF(IPIP.EQ.1)THEN
37761 XDIQT=XDIQT-XSQ
37762 XVQP =XVQP -XSAQ
37763 ELSEIF(IPIP.EQ.2)THEN
37764 XDIQT=XDIQT-XSAQ
37765 XVQP =XVQP -XSQ
37766 ENDIF
37767 IF(IPCO.GE.3)
37768 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37769C
37770C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37771C
37772 XVTHRO=CVQ/UMO
37773 IVTHR=0
37774 3466 CONTINUE
37775 IF(IVTHR.EQ.10)THEN
37776 IREJ=1
37777 IF(ISQ.EQ.3)IREJ=3
37778 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 3466 reject IVTHR 10'
37779 IPCO=0
37780 RETURN
37781 ENDIF
37782 IVTHR=IVTHR+1
37783 XVTHR=XVTHRO/(201-IVTHR)
37784 UNOPRV=UNON
37785 380 CONTINUE
37786 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37787 IREJ=1
37788 IF(ISQ.EQ.3)IREJ=3
37789 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 Rejection 380 XVTHR large ',
37790 * XVTHR
37791 IPCO=0
37792 RETURN
37793 ENDIF
37794 IF(DT_RNDM(V).LT.0.5D0)THEN
37795 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37796 XVTQII=XDIQT-XVTQI
37797 ELSE
37798 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37799 XVTQI=XDIQT-XVTQII
37800 ENDIF
37801 IF(IPCO.GE.3)THEN
37802 WRITE(LOUT,'(A,2E12.4)')' MGSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37803 ENDIF
37804C
37805C Prepare 4 momenta of new chains and chain ends
37806C
37807C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37808C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37809C +(4,NTMHKK)
37810C
37811C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37812C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37813C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37814C
37815C SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37816C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IGCOUN)
37817C
37818 IF(IPIP.EQ.1)THEN
37819 XSQ1=XSQ
37820 XSAQ1=XSAQ
37821 ISQ1=ISQ
37822 ISAQ1=ISAQ
37823 ELSEIF(IPIP.EQ.2)THEN
37824 XSQ1=XSAQ
37825 XSAQ1=XSQ
37826 ISQ1=ISAQ
37827 ISAQ1=ISQ
37828 ENDIF
37829 KK11=IP21
37830C IDHKT(1) =1000*IPP11+100*IPP12+1
37831 KK21=IPP11
37832 KK22=IPP12
37833 XGIVE=0.D0
37834 IF(IPIP.EQ.1)THEN
37835 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37836 ELSEIF(IPIP.EQ.2)THEN
37837 IDHKT(4+IIGLU1) =ISAQ1
37838 ENDIF
37839 ISTHKT(4+IIGLU1) =961
37840 JMOHKT(1,4+IIGLU1)=NC1P
37841 JMOHKT(2,4+IIGLU1)=0
37842 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37843 JDAHKT(2,4+IIGLU1)=0
37844C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37845 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37846 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37847 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37848 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37849C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37850 XXMIST=(PHKT(4,4+IIGLU1)**2-
37851 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37852 *PHKT(1,4+IIGLU1)**2)
37853 IF(XXMIST.GT.0.D0)THEN
37854 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37855 ELSE
37856 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
37857 XXMIST=ABS(XXMIST)
37858 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37859 ENDIF
37860 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37861 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37862 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37863 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37864 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37865 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37866 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37867 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37868 IDHKT(5+IIGLU1) =IP22
37869 ISTHKT(5+IIGLU1) =962
37870 JMOHKT(1,5+IIGLU1)=NC1T
37871 JMOHKT(2,5+IIGLU1)=0
37872 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37873 JDAHKT(2,5+IIGLU1)=0
37874 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37875 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37876 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37877 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37878C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37879 XXMIST=(PHKT(4,5+IIGLU1)**2-
37880 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37881 *PHKT(1,5+IIGLU1)**2)
37882 IF(XXMIST.GT.0.D0)THEN
37883 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37884 ELSE
37885 WRITE(LOUT,*)' MGSQBS2 XXMIST', XXMIST
37886 XXMIST=ABS(XXMIST)
37887 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37888 ENDIF
37889 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37890 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37891 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37892 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37893 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37894 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37895 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37896 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37897 IDHKT(6+IIGLU1) =88888
37898 ISTHKT(6+IIGLU1) =96
37899 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37900 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37901 JDAHKT(1,6+IIGLU1)=0
37902 JDAHKT(2,6+IIGLU1)=0
37903 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37904 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37905 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37906 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37907 PHKT(5,6+IIGLU1)
37908 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37909 * -PHKT(3,6+IIGLU1)**2)
37910 CHAMAL=CHAM1
37911 IF(IPIP.EQ.1)THEN
37912 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37913 ELSEIF(IPIP.EQ.2)THEN
37914 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37915 ENDIF
37916C---------------------------------------------------
37917 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37918 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
37919C we drop chain 6 and give the energy to chain 3
37920 IDHKT(6+IIGLU1)=22888
37921 XGIVE=1.D0
37922C WRITE(6,*)' drop chain 6 xgive=1'
37923 GO TO 7788
37924 ELSEIF(IDHKT(4+IIGLU1).EQ.-IP21)THEN
37925C we drop chain 6 and give the energy to chain 3
37926C and change KK11 to IDHKT(5)
37927 IDHKT(6+IIGLU1)=22888
37928 XGIVE=1.D0
37929C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(5)'
37930 KK11=IDHKT(5+IIGLU1)
37931 GO TO 7788
37932 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP11)THEN
37933C we drop chain 6 and give the energy to chain 3
37934C and change KK21 to IDHKT(5+IIGLU1)
37935C IDHKT(1) =1000*IPP11+100*IPP12+1
37936 IDHKT(6+IIGLU1)=22888
37937 XGIVE=1.D0
37938C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(5+IIGLU1)'
37939 KK21=IDHKT(5+IIGLU1)
37940 GO TO 7788
37941 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP12)THEN
37942C we drop chain 6 and give the energy to chain 3
37943C and change KK22 to IDHKT(5)
37944C IDHKT(1) =1000*IPP11+100*IPP12+1
37945 IDHKT(6+IIGLU1)=22888
37946 XGIVE=1.D0
37947C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(5+IIGLU1)'
37948 KK22=IDHKT(5+IIGLU1)
37949 GO TO 7788
37950 ENDIF
37951C IREJ=1
37952 IPCO=0
37953C RETURN
37954 GO TO 3466
37955 ENDIF
37956 7788 CONTINUE
37957C---------------------------------------------------
37958 IF(IPIP.GE.3)THEN
37959 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37960 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37961 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37962 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37963 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37964 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37965 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37966 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37967 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37968 ENDIF
37969 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37970 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37971 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37972 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37973 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
37974 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
37975 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
37976 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
37977C IDHKT(1) =1000*IPP11+100*IPP12+1
37978 IF(IPIP.EQ.1)THEN
37979 IDHKT(1) =1000*KK21+100*KK22+3
37980 IF(IDHKT(1).EQ.1203)IDHKT(1)=2103
37981 IF(IDHKT(1).EQ.1303)IDHKT(1)=3103
37982 IF(IDHKT(1).EQ.2303)IDHKT(1)=3203
37983 ELSEIF(IPIP.EQ.2)THEN
37984 IDHKT(1) =1000*KK21+100*KK22-3
37985 IF(IDHKT(1).EQ.-1203)IDHKT(1)=-2103
37986 IF(IDHKT(1).EQ.-1303)IDHKT(1)=-3103
37987 IF(IDHKT(1).EQ.-2303)IDHKT(1)=-3203
37988 ENDIF
37989 ISTHKT(1) =961
37990 JMOHKT(1,1)=NC2P
37991 JMOHKT(2,1)=0
37992 JDAHKT(1,1)=3+IIGLU1
37993 JDAHKT(2,1)=0
37994C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37995 PHKT(1,1) =PHKK(1,NC2P)
37996 *+XGIVE*PHKT(1,4+IIGLU1)
37997 PHKT(2,1) =PHKK(2,NC2P)
37998 *+XGIVE*PHKT(2,4+IIGLU1)
37999 PHKT(3,1) =PHKK(3,NC2P)
38000 *+XGIVE*PHKT(3,4+IIGLU1)
38001 PHKT(4,1) =PHKK(4,NC2P)
38002 *+XGIVE*PHKT(4,4+IIGLU1)
38003C PHKT(5,1) =PHKK(5,NC2P)
38004 XXMIST=PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38005 *PHKT(1,1)**2
38006 IF(XXMIST.GT.0.D0)THEN
38007 PHKT(5,1) =SQRT(XXMIST)
38008 ELSE
38009 WRITE(LOUT,*)'MGSQBS2',XXMIST
38010 XXMIST=ABS(XXMIST)
38011 PHKT(5,1) =SQRT(XXMIST)
38012 ENDIF
38013 VHKT(1,1) =VHKK(1,NC2P)
38014 VHKT(2,1) =VHKK(2,NC2P)
38015 VHKT(3,1) =VHKK(3,NC2P)
38016 VHKT(4,1) =VHKK(4,NC2P)
38017 WHKT(1,1) =WHKK(1,NC2P)
38018 WHKT(2,1) =WHKK(2,NC2P)
38019 WHKT(3,1) =WHKK(3,NC2P)
38020 WHKT(4,1) =WHKK(4,NC2P)
38021C Add here IIGLU1 gluons to this chaina
38022 PG1=0.D0
38023 PG2=0.D0
38024 PG3=0.D0
38025 PG4=0.D0
38026 IF(IIGLU1.GE.1)THEN
38027 JJG=NC1P
38028 DO 61 IIG=2,2+IIGLU1-1
38029 KKG=JJG+IIG-1
38030 IDHKT(IIG) =IDHKK(KKG)
38031 ISTHKT(IIG) =921
38032 JMOHKT(1,IIG)=KKG
38033 JMOHKT(2,IIG)=0
38034 JDAHKT(1,IIG)=3+IIGLU1
38035 JDAHKT(2,IIG)=0
38036 PHKT(1,IIG)=PHKK(1,KKG)
38037 PG1=PG1+ PHKT(1,IIG)
38038 PHKT(2,IIG)=PHKK(2,KKG)
38039 PG2=PG2+ PHKT(2,IIG)
38040 PHKT(3,IIG)=PHKK(3,KKG)
38041 PG3=PG3+ PHKT(3,IIG)
38042 PHKT(4,IIG)=PHKK(4,KKG)
38043 PG4=PG4+ PHKT(4,IIG)
38044 PHKT(5,IIG)=PHKK(5,KKG)
38045 VHKT(1,IIG) =VHKK(1,KKG)
38046 VHKT(2,IIG) =VHKK(2,KKG)
38047 VHKT(3,IIG) =VHKK(3,KKG)
38048 VHKT(4,IIG) =VHKK(4,KKG)
38049 WHKT(1,IIG) =WHKK(1,KKG)
38050 WHKT(2,IIG) =WHKK(2,KKG)
38051 WHKT(3,IIG) =WHKK(3,KKG)
38052 WHKT(4,IIG) =WHKK(4,KKG)
38053 61 CONTINUE
38054 ENDIF
38055C IDHKT(2) =IP21
38056 IDHKT(2+IIGLU1) =KK11
38057 ISTHKT(2+IIGLU1) =962
38058 JMOHKT(1,2+IIGLU1)=NC1T
38059 JMOHKT(2,2+IIGLU1)=0
38060 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38061 JDAHKT(2,2+IIGLU1)=0
38062 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
38063C * +0.5D0*PHKK(1,NC2T)
38064 *+XGIVE*PHKT(1,5+IIGLU1)
38065 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
38066C *+0.5D0*PHKK(2,NC2T)
38067 *+XGIVE*PHKT(2,5+IIGLU1)
38068 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
38069C *+0.5D0*PHKK(3,NC2T)
38070 *+XGIVE*PHKT(3,5+IIGLU1)
38071 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
38072C *+0.5D0*PHKK(4,NC2T)
38073 *+XGIVE*PHKT(4,5+IIGLU1)
38074C PHKT(5,2) =PHKK(5,NC1T)
38075 XXMIST=(PHKT(4,2+IIGLU1)**2-
38076 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38077 *PHKT(1,2+IIGLU1)**2)
38078 IF(XXMIST.GT.0.D0)THEN
38079 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38080 ELSE
38081 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
38082 XXMIST=ABS(XXMIST)
38083 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38084 ENDIF
38085 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
38086 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
38087 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
38088 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
38089 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
38090 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
38091 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
38092 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
38093 IDHKT(3+IIGLU1) =88888
38094 ISTHKT(3+IIGLU1) =96
38095 JMOHKT(1,3+IIGLU1)=1
38096 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38097 JDAHKT(1,3+IIGLU1)=0
38098 JDAHKT(2,3+IIGLU1)=0
38099 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38100 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38101 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38102 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38103 PHKT(5,3+IIGLU1)
38104 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38105 * -PHKT(3,3+IIGLU1)**2)
38106 IF(IPIP.EQ.3)THEN
38107 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
38108 * JDAHKT(1,1),
38109 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38110 DO 71 IIG=2,2+IIGLU1-1
38111 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38112 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38113 * JDAHKT(1,IIG),
38114 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38115 71 CONTINUE
38116 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38117 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38118 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38119 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38120 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38121 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38122 ENDIF
38123 CHAMAL=CHAB1
38124 IF(IPIP.EQ.1)THEN
38125 IF(IPP11.GE.3.OR.IPP12.GE.3.OR.IP21.GE.3)CHAMAL=CHAB3
38126 ELSEIF(IPIP.EQ.2)THEN
38127 IF(IPP11.LE.-3.OR.IPP12.LE.-3.OR.IP21.LE.-3)CHAMAL=CHAB3
38128 ENDIF
38129 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38130C IREJ=1
38131 IPCO=0
38132C RETURN
38133 GO TO 3466
38134 ENDIF
38135 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38136 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38137 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38138 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38139 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38140 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38141 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38142 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38143C IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+1
38144 IDHKT(7+IIGLU1) =IP1
38145 ISTHKT(7+IIGLU1) =961
38146 JMOHKT(1,7+IIGLU1)=NC1P
38147 JMOHKT(2,7+IIGLU1)=0
38148 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38149 JDAHKT(2,7+IIGLU1)=0
38150 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
38151 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
38152 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
38153 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
38154C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
38155 XXMIST=(PHKT(4,7+IIGLU1)**2-
38156 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38157 *PHKT(1,7+IIGLU1)**2)
38158 IF(XXMIST.GT.0.D0)THEN
38159 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38160 ELSE
38161 WRITE(LOUT,*)' MGSQBS2, XXMIST',XXMIST
38162 XXMIST=ABS(XXMIST)
38163 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38164 ENDIF
38165 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
38166 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
38167 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
38168 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
38169 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
38170 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
38171 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
38172 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38173C IDHKT(7) =1000*IPP1+100*ISQ+1
38174C Insert here the IIGLU2 gluons
38175 PG1=0.D0
38176 PG2=0.D0
38177 PG3=0.D0
38178 PG4=0.D0
38179 IF(IIGLU2.GE.1)THEN
38180 JJG=NC2P
38181 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38182 KKG=JJG+IIG-7-IIGLU1
38183 IDHKT(IIG) =IDHKK(KKG)
38184 ISTHKT(IIG) =921
38185 JMOHKT(1,IIG)=KKG
38186 JMOHKT(2,IIG)=0
38187 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38188 JDAHKT(2,IIG)=0
38189 PHKT(1,IIG)=PHKK(1,KKG)
38190 PG1=PG1+ PHKT(1,IIG)
38191 PHKT(2,IIG)=PHKK(2,KKG)
38192 PG2=PG2+ PHKT(2,IIG)
38193 PHKT(3,IIG)=PHKK(3,KKG)
38194 PG3=PG3+ PHKT(3,IIG)
38195 PHKT(4,IIG)=PHKK(4,KKG)
38196 PG4=PG4+ PHKT(4,IIG)
38197 PHKT(5,IIG)=PHKK(5,KKG)
38198 VHKT(1,IIG) =VHKK(1,KKG)
38199 VHKT(2,IIG) =VHKK(2,KKG)
38200 VHKT(3,IIG) =VHKK(3,KKG)
38201 VHKT(4,IIG) =VHKK(4,KKG)
38202 WHKT(1,IIG) =WHKK(1,KKG)
38203 WHKT(2,IIG) =WHKK(2,KKG)
38204 WHKT(3,IIG) =WHKK(3,KKG)
38205 WHKT(4,IIG) =WHKK(4,KKG)
38206 81 CONTINUE
38207 ENDIF
38208 IF(IPIP.EQ.1)THEN
38209 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
38210 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
38211 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
38212 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
38213 ELSEIF(IPIP.EQ.2)THEN
38214**NEW
38215C IDHKT(8) =1000*IPP2+100*(-ISQ1+6)-3
38216 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
38217**
38218 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
38219 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
38220 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
38221 ENDIF
38222 ISTHKT(8+IIGLU1+IIGLU2) =962
38223 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
38224 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38225 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38226 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38227C PHKT(1,8) =0.5D0*PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ/(XDIQT+XSQ)
38228C PHKT(2,8) =0.5D0*PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ/(XDIQT+XSQ)
38229C PHKT(3,8) =0.5D0*PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ/(XDIQT+XSQ)
38230C PHKT(4,8) =0.5D0*PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ/(XDIQT+XSQ)
38231 PHKT(1,8+IIGLU1+IIGLU2) =
38232 * PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
38233 PHKT(2,8+IIGLU1+IIGLU2) =
38234 * PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
38235 PHKT(3,8+IIGLU1+IIGLU2) =
38236 * PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
38237 PHKT(4,8+IIGLU1+IIGLU2) =
38238 * PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
38239C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
38240C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
38241 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
38242C IREJ=1
38243C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
38244 IPCO=0
38245C RETURN
38246 GO TO 3466
38247 ENDIF
38248C PHKT(5,8) =PHKK(5,NC2T)
38249 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38250 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38251 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38252 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
38253 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
38254 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
38255 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
38256 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
38257 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
38258 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
38259 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
38260 IDHKT(9+IIGLU1+IIGLU2) =88888
38261 ISTHKT(9+IIGLU1+IIGLU2) =96
38262 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38263 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38264 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38265 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38266 PHKT(1,9+IIGLU1+IIGLU2)
38267 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38268 PHKT(2,9+IIGLU1+IIGLU2)
38269 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38270 PHKT(3,9+IIGLU1+IIGLU2)
38271 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38272 PHKT(4,9+IIGLU1+IIGLU2)
38273 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38274 PHKT(5,9+IIGLU1+IIGLU2)
38275 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
38276 * PHKT(2,9+IIGLU1+IIGLU2)**2
38277 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38278 IF(IPIP.GE.3)THEN
38279 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38280 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38281 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38282 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38283 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38284 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38285 * JDAHKT(1,IIG),
38286 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38287 91 CONTINUE
38288 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
38289 * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
38290 *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
38291 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38292 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38293 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38294 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38295 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38296 ENDIF
38297 CHAMAL=CHAB1
38298 IF(IPIP.EQ.1)THEN
38299 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38300 ELSEIF(IPIP.EQ.2)THEN
38301 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38302 ENDIF
38303 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38304C IREJ=1
38305 IPCO=0
38306C RETURN
38307 GO TO 3466
38308 ENDIF
38309 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38310 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38311 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38312 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38313 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38314 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38315 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38316 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38317C
38318 IPCO=0
38319 IGCOUN=9+IIGLU1+IIGLU2
38320 RETURN
38321 END
38322
38323*$ CREATE MUSQBS1.FOR
38324*COPY MUSQBS1
38325C
38326C
38327C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
38328 SUBROUTINE MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38329 * IP11,IP12,IP2,IPP1,IPP2,IPIP,ISQ,IGCOUN)
38330C
38331C USQBS-1 diagram (split projectile diquark)
38332C
38333 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
38334 SAVE
38335
38336 PARAMETER ( LINP = 10 ,
38337 & LOUT = 6 ,
38338 & LDAT = 9 )
38339* event history
38340 PARAMETER (NMXHKK=200000)
38341 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
38342 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
38343 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
38344* extended event history
38345 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
38346 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
38347 & IHIST(2,NMXHKK)
38348* Lorentz-parameters of the current interaction
38349 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
38350 & UMO,PPCM,EPROJ,PPROJ
38351* diquark-breaking mechanism
38352 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
38353
38354C
38355 PARAMETER (NTMHKK= 300)
38356 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38357 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38358 +(4,NTMHKK)
38359*KEEP,XSEADI.
38360 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
38361 +SSMIMQ,VVMTHR
38362*KEEP,DPRIN.
38363 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
38364 COMMON /EVFLAG/ NUMEV
38365C
38366C USQBS-1 diagram (split projectile diquark)
38367C
38368C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
38369C Input chain 2(NC2) sea-quark(NC2P)-sea-antiquark(NC2T)
38370C
38371C Create quark(qsP)-antiquark(aqsT) pair, energy from NC1P and NC1T
38372C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38373C
38374C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38375C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38376C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38377C
38378C Put new chains into COMMON /HKKTMP/
38379C
38380 IIGLU1=NC1T-NC1P-1
38381 IIGLU2=NC2T-NC2P-1
38382 IGCOUN=0
38383C WRITE(6,*)'MUSQBS1: IIGLU1,IIGLU2,IPIP ',IIGLU1,IIGLU2,IPIP
38384 CVQ=1.D0
38385 IREJ=0
38386 IF(IPIP.EQ.3)THEN
38387C IF(NUMEV.EQ.-324)THEN
38388 WRITE(LOUT,*)' MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
38389 * ' IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN)',
38390 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38391 * IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN
38392 ENDIF
38393C
38394C
38395C
38396C determine x-values of NC1P diquark
38397 XDIQP=PHKK(4,NC1P)*2.D0/UMO
38398 XVQT=PHKK(4,NC1T)*2.D0/UMO
38399C
38400C determine x-values of sea quark pair
38401C
38402 IPCO=1
38403 ICOU=0
38404 2234 CONTINUE
38405 ICOU=ICOU+1
38406 IF(ICOU.GE.500)THEN
38407 IREJ=1
38408 IF(ISQ.EQ.3)IREJ=3
38409 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 2234 ICOU. GT.100'
38410 IPCO=0
38411 RETURN
38412 ENDIF
38413 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
38414 * UMO, XDIQP,XVQT
38415 XSQ=0.D0
38416 XSAQ=0.D0
38417**NEW
38418C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
38419 IF (IPIP.EQ.1) THEN
38420 XQMAX = XDIQP/2.0D0
38421 XAQMAX = 2.D0*XVQT/3.0D0
38422 ELSE
38423 XQMAX = 2.D0*XVQT/3.0D0
38424 XAQMAX = XDIQP/2.0D0
38425 ENDIF
38426 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
38427 ISAQ = 6+ISQ
38428C write(*,*) 'MUSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
38429**
38430 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38431 IF(IREJ.GE.1)THEN
38432 IF(IPCO.GE.3)
38433 & WRITE(LOUT,*)'MUSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38434 IPCO=0
38435 RETURN
38436 ENDIF
38437 IF(IPIP.EQ.1)THEN
38438 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38439 ELSEIF(IPIP.EQ.2)THEN
38440 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38441 ENDIF
38442 IF(IPCO.GE.3)THEN
38443 WRITE(LOUT,'(A,4E12.4)')' MUSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
38444 * XDIQP,XVQT,XSQ,XSAQ
38445 ENDIF
38446C
38447C subtract xsq,xsaq from NC1P diquark and NC1T quark
38448C
38449C XSQ=0.D0
38450 IF(IPIP.EQ.1)THEN
38451 XDIQP=XDIQP-XSQ
38452 XVQT =XVQT -XSAQ
38453 ELSEIF(IPIP.EQ.2)THEN
38454 XDIQP=XDIQP-XSAQ
38455 XVQT =XVQT -XSQ
38456 ENDIF
38457 IF(IPCO.GE.3)
38458 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
38459C
38460C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38461C
38462 XVTHRO=CVQ/UMO
38463 IVTHR=0
38464 3466 CONTINUE
38465 IF(IVTHR.EQ.10)THEN
38466 IREJ=1
38467 IF(ISQ.EQ.3)IREJ=3
38468 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 3466 reject IVTHR 10'
38469 IPCO=0
38470 RETURN
38471 ENDIF
38472 IVTHR=IVTHR+1
38473 XVTHR=XVTHRO/(201-IVTHR)
38474 UNOPRV=UNON
38475 380 CONTINUE
38476 IF(XVTHR.GT.0.66D0*XDIQP)THEN
38477 IREJ=1
38478 IF(ISQ.EQ.3)IREJ=3
38479 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 380 XVTHR large ',
38480 * XVTHR
38481 IPCO=0
38482 RETURN
38483 ENDIF
38484 IF(DT_RNDM(V).LT.0.5D0)THEN
38485 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38486 XVPQII=XDIQP-XVPQI
38487 ELSE
38488 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38489 XVPQI=XDIQP-XVPQII
38490 ENDIF
38491 IF(IPCO.GE.3)THEN
38492 WRITE(LOUT,'(A,2E12.4)')' MUSQBS1:XVPQI,XVPQII ',XVPQI,XVPQII
38493 ENDIF
38494C
38495C Prepare 4 momenta of new chains and chain ends
38496C
38497C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38498C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38499C +(4,NTMHKK)
38500C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38501C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38502C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38503 IF(IPIP.EQ.1)THEN
38504 XSQ1=XSQ
38505 XSAQ1=XSAQ
38506 ISQ1=ISQ
38507 ISAQ1=ISAQ
38508 ELSEIF(IPIP.EQ.2)THEN
38509 XSQ1=XSAQ
38510 XSAQ1=XSQ
38511 ISQ1=ISAQ
38512 ISAQ1=ISQ
38513 ENDIF
38514 IDHKT(1) =IP11
38515 ISTHKT(1) =931
38516 JMOHKT(1,1)=NC1P
38517 JMOHKT(2,1)=0
38518 JDAHKT(1,1)=3+IIGLU1
38519 JDAHKT(2,1)=0
38520C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38521 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
38522 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
38523 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
38524 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
38525C PHKT(5,1) =PHKK(5,NC1P)
38526 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38527 *PHKT(1,1)**2)
38528 IF(XMIST.GE.0.D0)THEN
38529 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38530 *PHKT(1,1)**2)
38531 ELSE
38532C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38533 PHKT(5,1)=0.D0
38534 ENDIF
38535 VHKT(1,1) =VHKK(1,NC1P)
38536 VHKT(2,1) =VHKK(2,NC1P)
38537 VHKT(3,1) =VHKK(3,NC1P)
38538 VHKT(4,1) =VHKK(4,NC1P)
38539 WHKT(1,1) =WHKK(1,NC1P)
38540 WHKT(2,1) =WHKK(2,NC1P)
38541 WHKT(3,1) =WHKK(3,NC1P)
38542 WHKT(4,1) =WHKK(4,NC1P)
38543C Add here IIGLU1 gluons to this chaina
38544 PG1=0.D0
38545 PG2=0.D0
38546 PG3=0.D0
38547 PG4=0.D0
38548 IF(IIGLU1.GE.1)THEN
38549 JJG=NC1P
38550 DO 61 IIG=2,2+IIGLU1-1
38551 KKG=JJG+IIG-1
38552 IDHKT(IIG) =IDHKK(KKG)
38553 ISTHKT(IIG) =921
38554 JMOHKT(1,IIG)=KKG
38555 JMOHKT(2,IIG)=0
38556 JDAHKT(1,IIG)=3+IIGLU1
38557 JDAHKT(2,IIG)=0
38558 PHKT(1,IIG)=PHKK(1,KKG)
38559 PG1=PG1+ PHKT(1,IIG)
38560 PHKT(2,IIG)=PHKK(2,KKG)
38561 PG2=PG2+ PHKT(2,IIG)
38562 PHKT(3,IIG)=PHKK(3,KKG)
38563 PG3=PG3+ PHKT(3,IIG)
38564 PHKT(4,IIG)=PHKK(4,KKG)
38565 PG4=PG4+ PHKT(4,IIG)
38566 PHKT(5,IIG)=PHKK(5,KKG)
38567 VHKT(1,IIG) =VHKK(1,KKG)
38568 VHKT(2,IIG) =VHKK(2,KKG)
38569 VHKT(3,IIG) =VHKK(3,KKG)
38570 VHKT(4,IIG) =VHKK(4,KKG)
38571 WHKT(1,IIG) =WHKK(1,KKG)
38572 WHKT(2,IIG) =WHKK(2,KKG)
38573 WHKT(3,IIG) =WHKK(3,KKG)
38574 WHKT(4,IIG) =WHKK(4,KKG)
38575 61 CONTINUE
38576 ENDIF
38577 IDHKT(2+IIGLU1) =IPP2
38578 ISTHKT(2+IIGLU1) =932
38579 JMOHKT(1,2+IIGLU1)=NC2T
38580 JMOHKT(2,2+IIGLU1)=0
38581 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38582 JDAHKT(2,2+IIGLU1)=0
38583 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
38584 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
38585 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
38586 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
38587C PHKT(5,2+IIGLU1) =PHKK(5,NC2T)
38588 XMIST=(PHKT(4,2+IIGLU1)**2-
38589 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38590 *PHKT(1,2+IIGLU1)**2)
38591 IF(XMIST.GT.0.D0)THEN
38592 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
38593 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38594 *PHKT(1,2+IIGLU1)**2)
38595 ELSE
38596C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38597 PHKT(5,2+IIGLU1)=0.D0
38598 ENDIF
38599 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
38600 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
38601 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
38602 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
38603 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
38604 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
38605 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
38606 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
38607 IDHKT(3+IIGLU1) =88888
38608 ISTHKT(3+IIGLU1) =94
38609 JMOHKT(1,3+IIGLU1)=1
38610 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38611 JDAHKT(1,3+IIGLU1)=0
38612 JDAHKT(2,3+IIGLU1)=0
38613 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38614 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38615 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38616 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38617 XMIST
38618 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38619 * -PHKT(3,3+IIGLU1)**2)
38620 IF(XMIST.GE.0.D0)THEN
38621 PHKT(5,3+IIGLU1)
38622 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38623 * -PHKT(3,3+IIGLU1)**2)
38624 ELSE
38625C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38626 PHKT(5,1)=0.D0
38627 ENDIF
38628 IF(IPIP.GE.3)THEN
38629C IF(NUMEV.EQ.-324)THEN
38630 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),
38631 * JMOHKT(2,1),JDAHKT(1,1),
38632 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38633 DO 71 IIG=2,2+IIGLU1-1
38634 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38635 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38636 * JDAHKT(1,IIG),
38637 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38638 71 CONTINUE
38639 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38640 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38641 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38642 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38643 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38644 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38645 ENDIF
38646 CHAMAL=CHAM1
38647 IF(IPIP.EQ.1)THEN
38648 IF(IP11.GE.3.OR.IPP2.GE.3)CHAMAL=CHAM3
38649 ELSEIF(IPIP.EQ.2)THEN
38650 IF(IP11.LE.-3.OR.IPP2.LE.-3)CHAMAL=CHAM3
38651 ENDIF
38652 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38653C IREJ=1
38654 IPCO=0
38655C RETURN
38656C WRITE(6,*)' MUSQBS1 jump back from chain 3'
38657 GO TO 3466
38658 ENDIF
38659 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38660 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38661 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38662 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38663 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38664 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38665 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38666 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38667 IDHKT(4+IIGLU1) =IP12
38668 ISTHKT(4+IIGLU1) =931
38669 JMOHKT(1,4+IIGLU1)=NC1P
38670 JMOHKT(2,4+IIGLU1)=0
38671 JDAHKT(1,4+IIGLU1)=6+IIGLU1
38672 JDAHKT(2,4+IIGLU1)=0
38673C create chain 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38674 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
38675 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
38676 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
38677 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
38678C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
38679 XMIST =(PHKT(4,4+IIGLU1)**2-
38680 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38681 *PHKT(1,4+IIGLU1)**2)
38682 IF(XMIST.GT.0.D0)THEN
38683 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
38684 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38685 *PHKT(1,4+IIGLU1)**2)
38686 ELSE
38687C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38688 PHKT(5,4+IIGLU1)=0.D0
38689 ENDIF
38690 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
38691 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
38692 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
38693 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
38694 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
38695 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
38696 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
38697 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
38698 IF(IPIP.EQ.1)THEN
38699 IDHKT(5+IIGLU1) =-(ISAQ1-6)
38700 ELSEIF(IPIP.EQ.2)THEN
38701 IDHKT(5+IIGLU1) =ISAQ1
38702 ENDIF
38703 ISTHKT(5+IIGLU1) =932
38704 JMOHKT(1,5+IIGLU1)=NC1T
38705 JMOHKT(2,5+IIGLU1)=0
38706 JDAHKT(1,5+IIGLU1)=6+IIGLU1
38707 JDAHKT(2,5+IIGLU1)=0
38708 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
38709 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
38710 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
38711 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
38712C IF( PHKT(4,5).EQ.0.D0)THEN
38713C IREJ=1
38714CIPCO=0
38715CRETURN
38716C ENDIF
38717C PHKT(5,5) =PHKK(5,NC1T)
38718 XMIST=(PHKT(4,5+IIGLU1)**2-
38719 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38720 *PHKT(1,5+IIGLU1)**2)
38721 IF(XMIST.GT.0.D0)THEN
38722 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
38723 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38724 *PHKT(1,5+IIGLU1)**2)
38725 ELSE
38726C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38727 PHKT(5,5+IIGLU1)=0.D0
38728 ENDIF
38729 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
38730 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
38731 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
38732 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
38733 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
38734 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
38735 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
38736 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
38737 IDHKT(6+IIGLU1) =88888
38738 ISTHKT(6+IIGLU1) =94
38739 JMOHKT(1,6+IIGLU1)=4+IIGLU1
38740 JMOHKT(2,6+IIGLU1)=5+IIGLU1
38741 JDAHKT(1,6+IIGLU1)=0
38742 JDAHKT(2,6+IIGLU1)=0
38743 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
38744 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
38745 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
38746 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
38747 XMIST
38748 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38749 * -PHKT(3,6+IIGLU1)**2)
38750 IF(XMIST.GE.0.D0)THEN
38751 PHKT(5,6+IIGLU1)
38752 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38753 * -PHKT(3,6+IIGLU1)**2)
38754 ELSE
38755C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38756 PHKT(5,1)=0.D0
38757 ENDIF
38758C IF(IPIP.EQ.3)THEN
38759 CHAMAL=CHAM1
38760 IF(IPIP.EQ.1)THEN
38761 IF(IP12.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
38762 ELSEIF(IPIP.EQ.2)THEN
38763 IF(IP12.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
38764 ENDIF
38765 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
38766C IREJ=1
38767 IPCO=0
38768C RETURN
38769C WRITE(6,*)' MGSQBS1 jump back from chain 6',
38770C * CHAMAL,PHKT(5,6+IIGLU1)
38771 GO TO 3466
38772 ENDIF
38773 IF(IPIP.GE.3)THEN
38774C IF(NUMEV.EQ.-324)THEN
38775 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
38776 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
38777 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
38778 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
38779 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
38780 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
38781 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
38782 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
38783 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
38784 ENDIF
38785 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
38786 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
38787 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
38788 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
38789 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
38790 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
38791 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
38792 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
38793 IF(IPIP.EQ.1)THEN
38794 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+3
38795 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
38796 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
38797 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
38798 ELSEIF(IPIP.EQ.2)THEN
38799 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
38800 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
38801 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
38802 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
38803C WRITE(6,*)'IDHKT(7+IIGLU1),IPP1,ISQ1',IDHKT(7+IIGLU1),IPP1,ISQ1
38804 ENDIF
38805 ISTHKT(7+IIGLU1) =931
38806 JMOHKT(1,7+IIGLU1)=NC2P
38807 JMOHKT(2,7+IIGLU1)=0
38808 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38809 JDAHKT(2,7+IIGLU1)=0
38810C create chain 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38811 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
38812 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
38813 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
38814 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
38815C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
38816C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
38817 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
38818C IREJ=1
38819C WRITE(6,*)'reject PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P)'
38820 IPCO=0
38821C RETURN
38822 GO TO 3466
38823 ENDIF
38824C PHKT(5,7) =PHKK(5,NC2P)
38825 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
38826 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38827 *PHKT(1,7+IIGLU1)**2)
38828 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
38829 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
38830 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
38831 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
38832 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
38833 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
38834 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
38835 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38836C Insert here the IIGLU2 gluons
38837 PG1=0.D0
38838 PG2=0.D0
38839 PG3=0.D0
38840 PG4=0.D0
38841 IF(IIGLU2.GE.1)THEN
38842 JJG=NC2P
38843 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38844 KKG=JJG+IIG-7-IIGLU1
38845 IDHKT(IIG) =IDHKK(KKG)
38846 ISTHKT(IIG) =921
38847 JMOHKT(1,IIG)=KKG
38848 JMOHKT(2,IIG)=0
38849 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38850 JDAHKT(2,IIG)=0
38851 PHKT(1,IIG)=PHKK(1,KKG)
38852 PG1=PG1+ PHKT(1,IIG)
38853 PHKT(2,IIG)=PHKK(2,KKG)
38854 PG2=PG2+ PHKT(2,IIG)
38855 PHKT(3,IIG)=PHKK(3,KKG)
38856 PG3=PG3+ PHKT(3,IIG)
38857 PHKT(4,IIG)=PHKK(4,KKG)
38858 PG4=PG4+ PHKT(4,IIG)
38859 PHKT(5,IIG)=PHKK(5,KKG)
38860 VHKT(1,IIG) =VHKK(1,KKG)
38861 VHKT(2,IIG) =VHKK(2,KKG)
38862 VHKT(3,IIG) =VHKK(3,KKG)
38863 VHKT(4,IIG) =VHKK(4,KKG)
38864 WHKT(1,IIG) =WHKK(1,KKG)
38865 WHKT(2,IIG) =WHKK(2,KKG)
38866 WHKT(3,IIG) =WHKK(3,KKG)
38867 WHKT(4,IIG) =WHKK(4,KKG)
38868 81 CONTINUE
38869 ENDIF
38870 IDHKT(8+IIGLU1+IIGLU2) =IP2
38871 ISTHKT(8+IIGLU1+IIGLU2) =932
38872 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
38873 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38874 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38875 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38876 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
38877 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
38878 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
38879 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
38880C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
38881 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
38882 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38883 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38884 IF(XMIST.GT.0.D0)THEN
38885 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38886 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38887 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38888 ELSE
38889C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38890 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
38891 ENDIF
38892 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
38893 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
38894 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
38895 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
38896 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
38897 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
38898 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
38899 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
38900 IDHKT(9+IIGLU1+IIGLU2) =88888
38901 ISTHKT(9+IIGLU1+IIGLU2) =94
38902 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38903 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38904 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38905 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38906 PHKT(1,9+IIGLU1+IIGLU2)
38907 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38908 PHKT(2,9+IIGLU1+IIGLU2)
38909 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38910 PHKT(3,9+IIGLU1+IIGLU2)
38911 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38912 PHKT(4,9+IIGLU1+IIGLU2)
38913 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38914 XMIST
38915 *=(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38916 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38917 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38918 IF(XMIST.GE.0.D0)THEN
38919 PHKT(5,9+IIGLU1+IIGLU2)
38920 *=SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38921 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38922 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38923 ELSE
38924C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38925 PHKT(5,1)=0.D0
38926 ENDIF
38927 IF(IPIP.GE.3)THEN
38928C IF(NUMEV.EQ.-324)THEN
38929 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38930 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38931 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38932 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38933 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38934 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38935 * JDAHKT(1,IIG),
38936 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38937 91 CONTINUE
38938 WRITE(LOUT,*)8+IIGLU1+IIGLU2,
38939 * ISTHKT(8+IIGLU1+IIGLU2),IDHKT(8+IIGLU1+IIGLU2),
38940 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
38941 *JDAHKT(1,8+IIGLU1+IIGLU2),
38942 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38943 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38944 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38945 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38946 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38947 ENDIF
38948 CHAMAL=CHAB1
38949 IF(IPIP.EQ.1)THEN
38950 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38951 ELSEIF(IPIP.EQ.2)THEN
38952 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38953 ENDIF
38954 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38955C IREJ=1
38956 IPCO=0
38957C RETURN
38958C WRITE(6,*)' MGSQBS1 jump back from chain 9',
38959C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
38960 GO TO 3466
38961 ENDIF
38962 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38963 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38964 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38965 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38966 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38967 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38968 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38969 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38970C
38971 IPCO=0
38972 IGCOUN=9+IIGLU1+IIGLU2
38973 RETURN
38974 END
38975
38976*$ CREATE MGSQBS1.FOR
38977*COPY MGSQBS1
38978C
38979C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
38980 SUBROUTINE MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38981 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,ISQ,IGCOUN)
38982C
38983C GSQBS-1 diagram (split projectile diquark)
38984C
38985 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
38986 SAVE
38987
38988 PARAMETER ( LINP = 10 ,
38989 & LOUT = 6 ,
38990 & LDAT = 9 )
38991* event history
38992 PARAMETER (NMXHKK=200000)
38993 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
38994 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
38995 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
38996* extended event history
38997 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
38998 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
38999 & IHIST(2,NMXHKK)
39000* Lorentz-parameters of the current interaction
39001 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
39002 & UMO,PPCM,EPROJ,PPROJ
39003* diquark-breaking mechanism
39004 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39005
39006C
39007 PARAMETER (NTMHKK= 300)
39008 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39009 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39010 +(4,NTMHKK)
39011*KEEP,XSEADI.
39012 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
39013 +SSMIMQ,VVMTHR
39014*KEEP,DPRIN.
39015 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
39016C
39017C GSQBS-1 diagram (split projectile diquark)
39018C
39019C
39020C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
39021C Input chain 2(NC2) sea-quark(NC2P)-valence-diquark(NC2T)
39022C
39023C Create quark(qs)-antiquark(aqs) pair energy from NC1P and NC1T
39024C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39025C
39026C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39027C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39028C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39029C
39030C Put new chains into COMMON /HKKTMP/
39031C
39032 IIGLU1=NC1T-NC1P-1
39033 IIGLU2=NC2T-NC2P-1
39034 IGCOUN=0
39035C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
39036 CVQ=1.D0
39037 NNNC1=IDHKK(NC1)/1000
39038 MMMC1=IDHKK(NC1)-NNNC1*1000
39039 KKKC1=ISTHKK(NC1)
39040 NNNC2=IDHKK(NC2)/1000
39041 MMMC2=IDHKK(NC2)-NNNC2*1000
39042 KKKC2=ISTHKK(NC2)
39043 IREJ=0
39044 IF(IPIP.EQ.3)THEN
39045 WRITE(LOUT,*)' MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
39046 * ' IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN)',
39047 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
39048 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN
39049 ENDIF
39050C
39051C
39052C
39053C determine x-values of NC1P diquark
39054 XDIQP=PHKK(4,NC1P)*2.D0/UMO
39055 XVQT=PHKK(4,NC1T)*2.D0/UMO
39056C
39057C determine x-values of sea quark pair
39058C
39059 IPCO=1
39060 ICOU=0
39061 2234 CONTINUE
39062 ICOU=ICOU+1
39063 IF(ICOU.GE.500)THEN
39064 IREJ=1
39065 IF(ISQ.EQ.3)IREJ=3
39066 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 Rejection 2234 ICOU. GT.100'
39067 IPCO=0
39068 RETURN
39069 ENDIF
39070 IF(IPCO.GE.3)WRITE(LOUT,*)'MGSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
39071 * UMO, XDIQP,XVQT
39072 XSQ=0.D0
39073 XSAQ=0.D0
39074**NEW
39075C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
39076 IF (IPIP.EQ.1) THEN
39077 XQMAX = XDIQP/2.0D0
39078 XAQMAX = 2.D0*XVQT/3.0D0
39079 ELSE
39080 XQMAX = 2.D0*XVQT/3.0D0
39081 XAQMAX = XDIQP/2.0D0
39082 ENDIF
39083 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
39084 ISAQ = 6+ISQ
39085C write(*,*) 'MGSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
39086**
39087 IF(IPCO.GE.3)
39088 & WRITE(LOUT,*)'MGSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39089 IF(IREJ.GE.1)THEN
39090 IF(IPCO.GE.3)
39091 & WRITE(LOUT,*)'MGSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39092 IPCO=0
39093 RETURN
39094 ENDIF
39095 IF(IPIP.EQ.1)THEN
39096 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39097 ELSEIF(IPIP.EQ.2)THEN
39098 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39099 ENDIF
39100 IF(IPCO.GE.3)THEN
39101 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
39102 * XDIQP,XVQT,XSQ,XSAQ
39103 ENDIF
39104C
39105C subtract xsq,xsaq from NC1P diquark and NC1T quark
39106C
39107C XSQ=0.D0
39108 IF(IPIP.EQ.1)THEN
39109 XDIQP=XDIQP-XSQ
39110**NEW
39111C IF (XDIQP.LT.0.0D0) WRITE(*,*) ' mgsqbs1: XDIQP<0!!',XDIQP
39112**
39113 XVQT =XVQT -XSAQ
39114 ELSEIF(IPIP.EQ.2)THEN
39115 XDIQP=XDIQP-XSAQ
39116 XVQT =XVQT -XSQ
39117 ENDIF
39118 IF(IPCO.GE.3)
39119 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
39120C
39121C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39122C
39123 XVTHRO=CVQ/UMO
39124 IVTHR=0
39125 3466 CONTINUE
39126 IF(IVTHR.EQ.10)THEN
39127 IREJ=1
39128 IF(ISQ.EQ.3)IREJ=3
39129 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 3466 reject IVTHR 10'
39130 IPCO=0
39131 RETURN
39132 ENDIF
39133 IVTHR=IVTHR+1
39134 XVTHR=XVTHRO/(201-IVTHR)
39135 UNOPRV=UNON
39136 380 CONTINUE
39137 IF(XVTHR.GT.0.66D0*XDIQP)THEN
39138 IREJ=1
39139 IF(ISQ.EQ.3)IREJ=3
39140 IF(IPCO.GE.3)
39141 & WRITE(LOUT,*)' MGSQBS1 Rejection 380 XVTHR large ',
39142 * XVTHR
39143 IPCO=0
39144 RETURN
39145 ENDIF
39146 IF(DT_RNDM(V).LT.0.5D0)THEN
39147 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39148 XVPQII=XDIQP-XVPQI
39149 ELSE
39150 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39151 XVPQI=XDIQP-XVPQII
39152 ENDIF
39153 IF(IPCO.GE.3)THEN
39154 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1:XVTHR,XDIQP,XVPQI,XVPQII ',
39155 * XVTHR,XDIQP,XVPQI,XVPQII
39156 ENDIF
39157C
39158C Prepare 4 momenta of new chains and chain ends
39159C
39160C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39161C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39162C +(4,NTMHKK)
39163C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39164C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39165C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39166 IF(IPIP.EQ.1)THEN
39167 XSQ1=XSQ
39168 XSAQ1=XSAQ
39169 ISQ1=ISQ
39170 ISAQ1=ISAQ
39171 ELSEIF(IPIP.EQ.2)THEN
39172 XSQ1=XSAQ
39173 XSAQ1=XSQ
39174 ISQ1=ISAQ
39175 ISAQ1=ISQ
39176 ENDIF
39177 KK11=IP11
39178C IDHKT(2) =1000*IPP21+100*IPP22+1
39179 KK21= IPP21
39180 KK22= IPP22
39181 XGIVE=0.D0
39182 IDHKT(4+IIGLU1) =IP12
39183 ISTHKT(4+IIGLU1) =921
39184 JMOHKT(1,4+IIGLU1)=NC1P
39185 JMOHKT(2,4+IIGLU1)=0
39186 JDAHKT(1,4+IIGLU1)=6+IIGLU1
39187 JDAHKT(2,4+IIGLU1)=0
39188**NEW
39189 IF ((XDIQP.LT.0.0D0).OR.(XVPQII.LT.0.0D0).OR.
39190 & (XSQ1.LT.0.0D0)) WRITE(LOUT,*) ' mgsqbs1: ',XDIQP,XVPQII,XSQ1
39191**
39192 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
39193 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
39194 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
39195 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
39196C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
39197 XXMIST=(PHKT(4,4+IIGLU1)**2-
39198 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
39199 * PHKT(1,4+IIGLU1)**2)
39200 IF(XXMIST.GT.0.D0)THEN
39201 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39202 ELSE
39203 WRITE(LOUT,*)'MGSQBS1 XXMIST',XXMIST
39204 XXMIST=ABS(XXMIST)
39205 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39206 ENDIF
39207 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
39208 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
39209 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
39210 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
39211 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
39212 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
39213 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
39214 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
39215 IF(IPIP.EQ.1)THEN
39216 IDHKT(5+IIGLU1) =-(ISAQ1-6)
39217 ELSEIF(IPIP.EQ.2)THEN
39218 IDHKT(5+IIGLU1) =ISAQ1
39219 ENDIF
39220 ISTHKT(5+IIGLU1) =922
39221 JMOHKT(1,5+IIGLU1)=NC1T
39222 JMOHKT(2,5+IIGLU1)=0
39223 JDAHKT(1,5+IIGLU1)=6+IIGLU1
39224 JDAHKT(2,5+IIGLU1)=0
39225**NEW
39226 IF ((XSAQ1.LT.0.0D0).OR.(XVQT .LT.0.0D0))
39227 & WRITE(LOUT,*) ' mgsqbs2: ',XSAQ1,XVQT
39228**
39229 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
39230 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
39231 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
39232 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
39233C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
39234 XMIST=(PHKT(4,5+IIGLU1)**2-
39235 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39236 *PHKT(1,5+IIGLU1)**2)
39237 IF(XMIST.GT.0.D0)THEN
39238 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
39239 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39240 *PHKT(1,5+IIGLU1)**2)
39241 ELSE
39242C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
39243 PHKT(5,5+IIGLU1)=0.D0
39244 ENDIF
39245 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
39246 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
39247 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
39248 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
39249 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
39250 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
39251 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
39252 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
39253 IDHKT(6+IIGLU1) =88888
39254C IDHKT(6) =1000*NNNC1+MMMC1
39255 ISTHKT(6+IIGLU1) =93
39256C ISTHKT(6) =KKKC1
39257 JMOHKT(1,6+IIGLU1)=4+IIGLU1
39258 JMOHKT(2,6+IIGLU1)=5+IIGLU1
39259 JDAHKT(1,6+IIGLU1)=0
39260 JDAHKT(2,6+IIGLU1)=0
39261 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
39262 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
39263 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
39264 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
39265 PHKT(5,6+IIGLU1)
39266 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
39267 * -PHKT(3,6+IIGLU1)**2)
39268 CHAMAL=CHAM1
39269 IF(IPIP.EQ.1)THEN
39270 IF(IP12.GE.3.OR.ISAQ.GE.9)CHAMAL=CHAM3
39271 ELSEIF(IPIP.EQ.2)THEN
39272 IF(IP12.LE.-3.OR.ISAQ.GE.3)CHAMAL=CHAM3
39273 ENDIF
39274 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
39275 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
39276C we drop chain 6 and give the energy to chain 3
39277 IDHKT(6+IIGLU1)=33888
39278 XGIVE=1.D0
39279C WRITE(6,*)' drop chain 6 xgive=1'
39280 GO TO 7788
39281 ELSEIF(IDHKT(5+IIGLU1).EQ.-IP11)THEN
39282C we drop chain 6 and give the energy to chain 3
39283C and change KK11 to IDHKT(4)
39284 IDHKT(6+IIGLU1)=33888
39285 XGIVE=1.D0
39286C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(4+IIGLU1)'
39287 KK11=IDHKT(4+IIGLU1)
39288 GO TO 7788
39289 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP21)THEN
39290C we drop chain 6 and give the energy to chain 3
39291C and change KK21 to IDHKT(4)
39292C IDHKT(2) =1000*IPP21+100*IPP22+1
39293 IDHKT(6+IIGLU1)=33888
39294 XGIVE=1.D0
39295C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(4+IIGLU1)'
39296 KK21=IDHKT(4+IIGLU1)
39297 GO TO 7788
39298 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP22)THEN
39299C we drop chain 6 and give the energy to chain 3
39300C and change KK22 to IDHKT(4)
39301C IDHKT(2) =1000*IPP21+100*IPP22+1
39302 IDHKT(6+IIGLU1)=33888
39303 XGIVE=1.D0
39304C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(4+IIGLU1)'
39305 KK22=IDHKT(4+IIGLU1)
39306 GO TO 7788
39307 ENDIF
39308C IREJ=1
39309 IPCO=0
39310C RETURN
39311C WRITE(6,*)' MGSQBS1 jump back from chain 6'
39312 GO TO 3466
39313 ENDIF
39314 7788 CONTINUE
39315 IF(IPIP.GE.3)THEN
39316 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
39317 * JMOHKT(1,4+IIGLU1),
39318 * JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
39319 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
39320 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
39321 * JMOHKT(1,5+IIGLU1),
39322 * JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
39323 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
39324 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
39325 * JMOHKT(1,6+IIGLU1),
39326 * JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
39327 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
39328 ENDIF
39329 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
39330 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
39331 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
39332 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
39333 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
39334 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
39335 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
39336 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
39337C IDHKT(1) =IP11
39338 IDHKT(1) =KK11
39339 ISTHKT(1) =921
39340 JMOHKT(1,1)=NC1P
39341 JMOHKT(2,1)=0
39342 JDAHKT(1,1)=3+IIGLU1
39343 JDAHKT(2,1)=0
39344 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
39345C * +0.5D0*PHKK(1,NC2P)
39346 *+XGIVE*PHKT(1,4+IIGLU1)
39347 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
39348C * +0.5D0*PHKK(2,NC2P)
39349 *+XGIVE*PHKT(2,4+IIGLU1)
39350 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
39351C * +0.5D0*PHKK(3,NC2P)
39352 *+XGIVE*PHKT(3,4+IIGLU1)
39353 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
39354C * +0.5D0*PHKK(4,NC2P)
39355 *+XGIVE*PHKT(4,4+IIGLU1)
39356C PHKT(5,1) =PHKK(5,NC1P)
39357 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39358 *PHKT(1,1)**2)
39359 IF(XMIST.GE.0.D0)THEN
39360 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39361 *PHKT(1,1)**2)
39362 ELSE
39363C WRITE(6,*)'MGSQBS1 parton 1 mass square LT.0 ',XMIST
39364 PHKT(5,1)=0.D0
39365 ENDIF
39366 VHKT(1,1) =VHKK(1,NC1P)
39367 VHKT(2,1) =VHKK(2,NC1P)
39368 VHKT(3,1) =VHKK(3,NC1P)
39369 VHKT(4,1) =VHKK(4,NC1P)
39370 WHKT(1,1) =WHKK(1,NC1P)
39371 WHKT(2,1) =WHKK(2,NC1P)
39372 WHKT(3,1) =WHKK(3,NC1P)
39373 WHKT(4,1) =WHKK(4,NC1P)
39374C Add here IIGLU1 gluons to this chaina
39375 PG1=0.D0
39376 PG2=0.D0
39377 PG3=0.D0
39378 PG4=0.D0
39379 IF(IIGLU1.GE.1)THEN
39380 JJG=NC1P
39381 DO 61 IIG=2,2+IIGLU1-1
39382 KKG=JJG+IIG-1
39383 IDHKT(IIG) =IDHKK(KKG)
39384 ISTHKT(IIG) =921
39385 JMOHKT(1,IIG)=KKG
39386 JMOHKT(2,IIG)=0
39387 JDAHKT(1,IIG)=3+IIGLU1
39388 JDAHKT(2,IIG)=0
39389 PHKT(1,IIG)=PHKK(1,KKG)
39390 PG1=PG1+ PHKT(1,IIG)
39391 PHKT(2,IIG)=PHKK(2,KKG)
39392 PG2=PG2+ PHKT(2,IIG)
39393 PHKT(3,IIG)=PHKK(3,KKG)
39394 PG3=PG3+ PHKT(3,IIG)
39395 PHKT(4,IIG)=PHKK(4,KKG)
39396 PG4=PG4+ PHKT(4,IIG)
39397 PHKT(5,IIG)=PHKK(5,KKG)
39398 VHKT(1,IIG) =VHKK(1,KKG)
39399 VHKT(2,IIG) =VHKK(2,KKG)
39400 VHKT(3,IIG) =VHKK(3,KKG)
39401 VHKT(4,IIG) =VHKK(4,KKG)
39402 WHKT(1,IIG) =WHKK(1,KKG)
39403 WHKT(2,IIG) =WHKK(2,KKG)
39404 WHKT(3,IIG) =WHKK(3,KKG)
39405 WHKT(4,IIG) =WHKK(4,KKG)
39406 61 CONTINUE
39407 ENDIF
39408C IDHKT(2) =1000*IPP21+100*IPP22+1
39409 IF(IPIP.EQ.1)THEN
39410 IDHKT(2+IIGLU1) =1000*KK21+100*KK22+3
39411 IF(IDHKT(2+IIGLU1).EQ.1203)IDHKT(2+IIGLU1)=2103
39412 IF(IDHKT(2+IIGLU1).EQ.1303)IDHKT(2+IIGLU1)=3103
39413 IF(IDHKT(2+IIGLU1).EQ.2303)IDHKT(2+IIGLU1)=3203
39414 ELSEIF(IPIP.EQ.2)THEN
39415 IDHKT(2+IIGLU1) =1000*KK21+100*KK22-3
39416 IF(IDHKT(2+IIGLU1).EQ.-1203)IDHKT(2+IIGLU1)=-2103
39417 IF(IDHKT(2+IIGLU1).EQ.-1303)IDHKT(2+IIGLU1)=-3103
39418 IF(IDHKT(2+IIGLU1).EQ.-2303)IDHKT(2+IIGLU1)=-3203
39419 ENDIF
39420 ISTHKT(2+IIGLU1) =922
39421 JMOHKT(1,2+IIGLU1)=NC2T
39422 JMOHKT(2,2+IIGLU1)=0
39423 JDAHKT(1,2+IIGLU1)=3+IIGLU1
39424 JDAHKT(2,2+IIGLU1)=0
39425 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
39426 *+XGIVE*PHKT(1,5+IIGLU1)
39427 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
39428 *+XGIVE*PHKT(2,5+IIGLU1)
39429 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
39430 *+XGIVE*PHKT(3,5+IIGLU1)
39431 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
39432 *+XGIVE*PHKT(4,5+IIGLU1)
39433C PHKT(5,2) =PHKK(5,NC2T)
39434 XMIST=(PHKT(4,2+IIGLU1)**2-
39435 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39436 *PHKT(1,2+IIGLU1)**2)
39437 IF(XMIST.GT.0.D0)THEN
39438 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
39439 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39440 *PHKT(1,2+IIGLU1)**2)
39441 ELSE
39442C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39443 PHKT(5,2+IIGLU1)=0.D0
39444 ENDIF
39445 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
39446 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
39447 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
39448 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
39449 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
39450 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
39451 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
39452 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
39453 IDHKT(3+IIGLU1) =88888
39454C IDHKT(3) =1000*NNNC1+MMMC1+10
39455 ISTHKT(3+IIGLU1) =93
39456C ISTHKT(3) =KKKC1
39457 JMOHKT(1,3+IIGLU1)=1
39458 JMOHKT(2,3+IIGLU1)=2+IIGLU1
39459 JDAHKT(1,3+IIGLU1)=0
39460 JDAHKT(2,3+IIGLU1)=0
39461 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
39462 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
39463 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
39464 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
39465 PHKT(5,3+IIGLU1)
39466 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
39467 * -PHKT(3,3+IIGLU1)**2)
39468 IF(IPIP.GE.3)THEN
39469 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
39470 * JDAHKT(1,1),
39471 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
39472 DO 71 IIG=2,2+IIGLU1-1
39473 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39474 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39475 * JDAHKT(1,IIG),
39476 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39477 71 CONTINUE
39478 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),
39479 & IDHKT(2),JMOHKT(1,2+IIGLU1),
39480 * JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
39481 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
39482 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
39483 * JMOHKT(1,3+IIGLU1),
39484 * JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
39485 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
39486 ENDIF
39487 CHAMAL=CHAB1
39488**NEW
39489C IF(IPIP.EQ.1)THEN
39490C IF(IPP21.GE.3.OR.IPP22.GE.3.OR.IP11.GE.3)CHAMAL=CHAB3
39491C ELSEIF(IPIP.EQ.2)THEN
39492C IF(IPP21.LE.-3.OR.IPP22.LE.-3.OR.IP11.LE.-3)CHAMAL=CHAB3
39493C ENDIF
39494 IF(IPIP.EQ.1)THEN
39495 IF(KK21.GE.3.OR.KK22.GE.3.OR.KK11.GE.3)CHAMAL=CHAB3
39496 ELSEIF(IPIP.EQ.2)THEN
39497 IF(KK21.LE.-3.OR.KK22.LE.-3.OR.KK11.LE.-3)CHAMAL=CHAB3
39498 ENDIF
39499**
39500 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
39501C IREJ=1
39502 IPCO=0
39503C RETURN
39504C WRITE(6,*)' MGSQBS1 jump back from chain 3'
39505 GO TO 3466
39506 ENDIF
39507 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
39508 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
39509 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
39510 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
39511 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
39512 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
39513 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
39514 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
39515 IF(IPIP.EQ.1)THEN
39516 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ1+3
39517 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
39518 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
39519 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
39520 ELSEIF(IPIP.EQ.2)THEN
39521 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
39522 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
39523 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
39524 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
39525C WRITE(6,*)'IDHKT(7),IPP1,ISQ1',IDHKT(7),IPP1,ISQ1
39526 ENDIF
39527 ISTHKT(7+IIGLU1) =921
39528 JMOHKT(1,7+IIGLU1)=NC2P
39529 JMOHKT(2,7+IIGLU1)=0
39530 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
39531 JDAHKT(2,7+IIGLU1)=0
39532C PHKT(1,7) =0.5D0*PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ/(XDIQP+XSQ)
39533C PHKT(2,7) =0.5D0*PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ/(XDIQP+XSQ)
39534C PHKT(3,7) =0.5D0*PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ/(XDIQP+XSQ)
39535C PHKT(4,7+IIGLU1) =0.5D0*PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ/(XDIQP+XSQ)
39536**NEW
39537 IF ((XSQ1 .LT.0.0D0).OR.(XDIQP .LT.0.0D0))
39538 & WRITE(LOUT,*) ' mgsqbs3: ',XSQ1,XDIQP
39539**
39540 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
39541 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
39542 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
39543 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
39544C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
39545C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
39546 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
39547C IREJ=1
39548C WRITE(6,*)'reject PHKT(4,7).GE. PHKK(4,NC1P)'
39549 IPCO=0
39550C RETURN
39551 GO TO 3466
39552 ENDIF
39553C PHKT(5,7) =PHKK(5,NC2P)
39554 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
39555 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
39556 *PHKT(1,7+IIGLU1)**2)
39557 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
39558 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
39559 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
39560 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
39561 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
39562 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
39563 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
39564 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
39565C Insert here the IIGLU2 gluons
39566 PG1=0.D0
39567 PG2=0.D0
39568 PG3=0.D0
39569 PG4=0.D0
39570 IF(IIGLU2.GE.1)THEN
39571 JJG=NC2P
39572 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39573 KKG=JJG+IIG-7-IIGLU1
39574 IDHKT(IIG) =IDHKK(KKG)
39575 ISTHKT(IIG) =921
39576 JMOHKT(1,IIG)=KKG
39577 JMOHKT(2,IIG)=0
39578 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
39579 JDAHKT(2,IIG)=0
39580 PHKT(1,IIG)=PHKK(1,KKG)
39581 PG1=PG1+ PHKT(1,IIG)
39582 PHKT(2,IIG)=PHKK(2,KKG)
39583 PG2=PG2+ PHKT(2,IIG)
39584 PHKT(3,IIG)=PHKK(3,KKG)
39585 PG3=PG3+ PHKT(3,IIG)
39586 PHKT(4,IIG)=PHKK(4,KKG)
39587 PG4=PG4+ PHKT(4,IIG)
39588 PHKT(5,IIG)=PHKK(5,KKG)
39589 VHKT(1,IIG) =VHKK(1,KKG)
39590 VHKT(2,IIG) =VHKK(2,KKG)
39591 VHKT(3,IIG) =VHKK(3,KKG)
39592 VHKT(4,IIG) =VHKK(4,KKG)
39593 WHKT(1,IIG) =WHKK(1,KKG)
39594 WHKT(2,IIG) =WHKK(2,KKG)
39595 WHKT(3,IIG) =WHKK(3,KKG)
39596 WHKT(4,IIG) =WHKK(4,KKG)
39597 81 CONTINUE
39598 ENDIF
39599 IDHKT(8+IIGLU1+IIGLU2) =IP2
39600 ISTHKT(8+IIGLU1+IIGLU2) =922
39601 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
39602 JMOHKT(2,8+IIGLU1+IIGLU2)=0
39603 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
39604 JDAHKT(2,8+IIGLU1+IIGLU2)=0
39605**NEW
39606 IF ((XVQT.LT.0.0D0).OR.(XSAQ1 .LT.0.0D0))
39607 & WRITE(LOUT,*) ' mgsqbs4: ',XVQT,XSAQ1
39608**
39609 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
39610 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
39611 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
39612 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
39613C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
39614 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
39615 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39616 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39617 IF(XMIST.GT.0.D0)THEN
39618 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
39619 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39620 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39621 ELSE
39622C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39623 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
39624 ENDIF
39625 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
39626 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
39627 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
39628 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
39629 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
39630 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
39631 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
39632 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
39633 IDHKT(9+IIGLU1+IIGLU2) =88888
39634C IDHKT(9) =1000*NNNC2+MMMC2+10
39635 ISTHKT(9+IIGLU1+IIGLU2) =93
39636C ISTHKT(9) =KKKC2
39637 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
39638 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
39639 JDAHKT(1,9+IIGLU1+IIGLU2)=0
39640 JDAHKT(2,9+IIGLU1+IIGLU2)=0
39641 PHKT(1,9+IIGLU1+IIGLU2) =PHKT(1,7+IIGLU1)
39642 * +PHKT(1,8+IIGLU1+IIGLU2)+PG1
39643 PHKT(2,9+IIGLU1+IIGLU2) =PHKT(2,7+IIGLU1)
39644 * +PHKT(2,8+IIGLU1+IIGLU2)+PG2
39645 PHKT(3,9+IIGLU1+IIGLU2) =PHKT(3,7+IIGLU1)
39646 * +PHKT(3,8+IIGLU1+IIGLU2)+PG3
39647 PHKT(4,9+IIGLU1+IIGLU2) =PHKT(4,7+IIGLU1)
39648 * +PHKT(4,8+IIGLU1+IIGLU2)+PG4
39649 PHKT(5,9+IIGLU1+IIGLU2)
39650 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
39651 * PHKT(2,9+IIGLU1+IIGLU2)**2
39652 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
39653 IF(IPIP.GE.3)THEN
39654 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
39655 * JMOHKT(1,7+IIGLU1),
39656 * JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
39657 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
39658 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39659 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39660 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39661 * JDAHKT(1,IIG),
39662 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39663 91 CONTINUE
39664 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
39665 * IDHKT(8+IIGLU1+IIGLU2),
39666 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
39667 * JDAHKT(1,8+IIGLU1+IIGLU2),
39668 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
39669 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
39670 * IDHKT(9+IIGLU1+IIGLU2),
39671 * JMOHKT(1,9+IIGLU1+IIGLU2),JMOHKT(2,9+IIGLU1+IIGLU2),
39672 * JDAHKT(1,9+IIGLU1+IIGLU2),
39673 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
39674 ENDIF
39675 CHAMAL=CHAB1
39676 IF(IPIP.EQ.1)THEN
39677 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
39678 ELSEIF(IPIP.EQ.2)THEN
39679 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
39680 ENDIF
39681 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
39682C IREJ=1
39683 IPCO=0
39684C RETURN
39685C WRITE(6,*)' MGSQBS1 jump back from chain 9',
39686C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
39687 GO TO 3466
39688 ENDIF
39689 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
39690 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
39691 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
39692 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
39693 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
39694 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
39695 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
39696 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
39697C
39698 IGCOUN=9+IIGLU1+IIGLU2
39699 IPCO=0
39700 RETURN
39701 END
39702
39703*$ CREATE HKKHKT.FOR
39704*COPY HKKHKT
39705C
39706C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
39707C
39708 SUBROUTINE HKKHKT(I,J)
39709 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39710 SAVE
39711
39712* event history
39713 PARAMETER (NMXHKK=200000)
39714 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39715 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39716 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39717* extended event history
39718 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39719 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39720 & IHIST(2,NMXHKK)
39721
39722 PARAMETER (NTMHKK= 300)
39723 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39724 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39725 +(4,NTMHKK)
39726C
39727 ISTHKK(I) =ISTHKT(J)
39728 IDHKK(I) =IDHKT(J)
39729C IF(J.EQ.3.OR.J.EQ.6.OR.J.EQ.9)THEN
39730 IF(IDHKK(I).EQ.88888)THEN
39731C JMOHKK(1,I)=I-2
39732C JMOHKK(2,I)=I-1
39733 JMOHKK(1,I)=I-(J-JMOHKT(1,J))
39734 JMOHKK(2,I)=I-(J-JMOHKT(2,J))
39735 ELSE
39736 JMOHKK(1,I)=JMOHKT(1,J)
39737 JMOHKK(2,I)=JMOHKT(2,J)
39738 ENDIF
39739 JDAHKK(1,I)=JDAHKT(1,J)
39740 JDAHKK(2,I)=JDAHKT(2,J)
39741C IF(J.EQ.1.OR.J.EQ.4.OR.J.EQ.7)THEN
39742C JDAHKK(1,I)=I+2
39743C ELSEIF(J.EQ.2.OR.J.EQ.5.OR.J.EQ.8)THEN
39744C JDAHKK(1,I)=I+1
39745C ENDIF
39746 IF(JDAHKT(1,J).GT.0)THEN
39747 JDAHKK(1,I)=I+(JDAHKT(1,J)-J)
39748 ENDIF
39749 PHKK(1,I) =PHKT(1,J)
39750 PHKK(2,I) =PHKT(2,J)
39751 PHKK(3,I) =PHKT(3,J)
39752 PHKK(4,I) =PHKT(4,J)
39753 PHKK(5,I) =PHKT(5,J)
39754 VHKK(1,I) =VHKT(1,J)
39755 VHKK(2,I) =VHKT(2,J)
39756 VHKK(3,I) =VHKT(3,J)
39757 VHKK(4,I) =VHKT(4,J)
39758 WHKK(1,I) =WHKT(1,J)
39759 WHKK(2,I) =WHKT(2,J)
39760 WHKK(3,I) =WHKT(3,J)
39761 WHKK(4,I) =WHKT(4,J)
39762 RETURN
39763 END
39764
39765*$ CREATE DT_DBREAK.FOR
39766*COPY DT_DBREAK
39767*
39768*===dbreak=============================================================*
39769*
39770 SUBROUTINE DT_DBREAK(MODE)
39771
39772************************************************************************
39773* This is the steering subroutine for the different diquark breaking *
39774* mechanisms. *
39775* *
39776* MODE = 1 breaking of projectile diquark in qq-q chain using *
39777* a sea quark (q-qq chain) of the same projectile *
39778* = 2 breaking of target diquark in q-qq chain using *
39779* a sea quark (qq-q chain) of the same target *
39780* = 3 breaking of projectile diquark in qq-q chain using *
39781* a sea quark (q-aq chain) of the same projectile *
39782* = 4 breaking of target diquark in q-qq chain using *
39783* a sea quark (aq-q chain) of the same target *
39784* = 5 breaking of projectile anti-diquark in aqaq-aq chain using *
39785* a sea anti-quark (aq-aqaq chain) of the same projectile *
39786* = 6 breaking of target anti-diquark in aq-aqaq chain using *
39787* a sea anti-quark (aqaq-aq chain) of the same target *
39788* = 7 breaking of projectile anti-diquark in aqaq-aq chain using *
39789* a sea anti-quark (aq-q chain) of the same projectile *
39790* = 8 breaking of target anti-diquark in aq-aqaq chain using *
39791* a sea anti-quark (q-aq chain) of the same target *
39792* *
39793* Original version by J. Ranft. *
39794* This version dated 17.5.00 is written by S. Roesler. *
39795************************************************************************
39796
39797 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39798 SAVE
39799 PARAMETER ( LINP = 10 ,
39800 & LOUT = 6 ,
39801 & LDAT = 9 )
39802
39803* event history
39804 PARAMETER (NMXHKK=200000)
39805 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39806 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39807 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39808* extended event history
39809 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39810 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39811 & IHIST(2,NMXHKK)
39812* flags for input different options
39813 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
39814 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
39815 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
39816* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
39817 PARAMETER (MAXCHN=10000)
39818 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
39819* diquark-breaking mechanism
39820 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39821* flags for particle decays
39822 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
39823 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
39824 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
39825
39826*
39827* chain identifiers
39828* ( 1 = q-aq, 2 = aq-q, 3 = q-qq, 4 = qq-q,
39829* 5 = aq-adq, 6 = adq-aq, 7 = dq-adq, 8 = adq-dq )
39830 DIMENSION IDCHN1(8),IDCHN2(8)
39831 DATA IDCHN1 / 4, 3, 4, 3, 6, 5, 6, 5/
39832 DATA IDCHN2 / 3, 4, 1, 2, 5, 6, 2, 1/
39833*
39834* parton identifiers
39835* ( +-21/22 = valence, +-31/32 = Glauber-sea, +-41/42 = Pomeron (diff),
39836* +-51/52 = unitarity-sea, +-61/62 = gluons )
39837 DIMENSION ISP1P(8,3),ISP1T(8,3),ISP2P(8,3),ISP2T(8,3)
39838 DATA ISP1P / 21, 21, 21, 21, 21, 21, 21, 21,
39839 & 31, 31, 31, 31, 31, 31, 31, 31,
39840 & 41, 41, 41, 41, 51, 51, 51, 51/
39841 DATA ISP1T / 22, 22, 22, 22, 22, 22, 22, 22,
39842 & 32, 32, 32, 32, 32, 32, 32, 32,
39843 & 42, 42, 42, 42, 52, 52, 52, 52/
39844 DATA ISP2P / 31, 21, 31, 31, 21, 21, 21, 21,
39845 & 51, 31, 41, 41, 31, 31, 31, 31,
39846 & 0, 41, 51, 51, 51, 51, 51, 51/
39847 DATA ISP2T / 22, 32, 32, 32, 22, 22, 22, 22,
39848 & 32, 52, 42, 42, 32, 32, 32, 32,
39849 & 42, 0, 52, 52, 52, 52, 52, 52/
39850
39851 IF (NCHAIN.LE.0) RETURN
39852 DO 1 I=1,NCHAIN
39853 IDX1 = IDXCHN(1,I)
39854 IS1P = ABS(ISTHKK(JMOHKK(1,IDX1)))
39855 IS1T = ABS(ISTHKK(JMOHKK(2,IDX1)))
39856 IF ( (IDXCHN(2,I).EQ.IDCHN1(MODE))
39857 & .AND.
39858 & ((IS1P.EQ.ISP1P(MODE,1)).OR.(IS1P.EQ.ISP1P(MODE,2)).OR.
39859 & (IS1P.EQ.ISP1P(MODE,3)))
39860 & .AND.
39861 & ((IS1T.EQ.ISP1T(MODE,1)).OR.(IS1T.EQ.ISP1T(MODE,2)).OR.
39862 & (IS1T.EQ.ISP1T(MODE,3)))
39863 & ) THEN
39864 DO 2 J=1,NCHAIN
39865 IDX2 = IDXCHN(1,J)
39866 IS2P = ABS(ISTHKK(JMOHKK(1,IDX2)))
39867 IS2T = ABS(ISTHKK(JMOHKK(2,IDX2)))
39868 IF ( (IDXCHN(2,J).EQ.IDCHN2(MODE))
39869 & .AND.
39870 & ((IS2P.EQ.ISP2P(MODE,1)).OR.(IS2P.EQ.ISP2P(MODE,2))
39871 & .OR.(IS2P.EQ.ISP2P(MODE,3)))
39872 & .AND.
39873 & ((IS2T.EQ.ISP2T(MODE,1)).OR.(IS2T.EQ.ISP2T(MODE,2))
39874 & .OR.(IS2T.EQ.ISP2T(MODE,3)))
39875 & ) THEN
39876* find mother nucleons of the diquark to be splitted and of the
39877* sea-quark and reject this combination if it is not the same
39878 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.
39879 & (MODE.EQ.5).OR.(MODE.EQ.7)) THEN
39880 IANCES = 1
39881 ELSE
39882 IANCES = 2
39883 ENDIF
39884 IDXMO1 = JMOHKK(IANCES,IDX1)
39885 4 CONTINUE
39886 IF ((JMOHKK(1,IDXMO1).NE.0).AND.
39887 & (JMOHKK(2,IDXMO1).NE.0)) THEN
39888 IANC = IANCES
39889 ELSE
39890 IANC = 1
39891 ENDIF
39892 IF (JMOHKK(IANC,IDXMO1).NE.0) THEN
39893 IDXMO1 = JMOHKK(IANC,IDXMO1)
39894 GOTO 4
39895 ENDIF
39896 IDXMO2 = JMOHKK(IANCES,IDX2)
39897 5 CONTINUE
39898 IF ((JMOHKK(1,IDXMO2).NE.0).AND.
39899 & (JMOHKK(2,IDXMO2).NE.0)) THEN
39900 IANC = IANCES
39901 ELSE
39902 IANC = 1
39903 ENDIF
39904 IF (JMOHKK(IANC,IDXMO2).NE.0) THEN
39905 IDXMO2 = JMOHKK(IANC,IDXMO2)
39906 GOTO 5
39907 ENDIF
39908 IF (IDXMO1.NE.IDXMO2) GOTO 2
39909* quark content of projectile parton
39910 IP1 = IDHKK(JMOHKK(1,IDX1))
39911 IP11 = IP1/1000
39912 IP12 = (IP1-1000*IP11)/100
39913 IP2 = IDHKK(JMOHKK(2,IDX1))
39914 IP21 = IP2/1000
39915 IP22 = (IP2-1000*IP21)/100
39916* quark content of target parton
39917 IT1 = IDHKK(JMOHKK(1,IDX2))
39918 IT11 = IT1/1000
39919 IT12 = (IT1-1000*IT11)/100
39920 IT2 = IDHKK(JMOHKK(2,IDX2))
39921 IT21 = IT2/1000
39922 IT22 = (IT2-1000*IT21)/100
39923* split diquark and form new chains
39924 IF (MODE.EQ.1) THEN
39925 IF (IT1.EQ.4) GOTO 2
39926 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39927 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39928 & IP11,IP12,IP2,IT1,IT21,IT22,1,IPQ,IGCOUN)
39929 ELSEIF (MODE.EQ.2) THEN
39930 IF (IT2.EQ.4) GOTO 2
39931 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39932 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39933 & IP1,IP21,IP22,IT11,IT12,IT2,1,IPQ,IGCOUN)
39934 ELSEIF (MODE.EQ.3) THEN
39935 IF (IT1.EQ.4) GOTO 2
39936 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39937 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39938 & IP11,IP12,IP2,IT1,IT2,1,IPQ,IGCOUN)
39939 ELSEIF (MODE.EQ.4) THEN
39940 IF (IT2.EQ.4) GOTO 2
39941 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39942 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39943 & IP1,IP21,IP22,IT1,IT2,1,IPQ,IGCOUN)
39944 ELSEIF (MODE.EQ.5) THEN
39945 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39946 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39947 & IP11,IP12,IP2,IT1,IT21,IT22,2,IPQ,IGCOUN)
39948 ELSEIF (MODE.EQ.6) THEN
39949 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39950 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39951 & IP1,IP21,IP22,IT11,IT12,IT2,2,IPQ,IGCOUN)
39952 ELSEIF (MODE.EQ.7) THEN
39953 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39954 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39955 & IP11,IP12,IP2,IT1,IT2,2,IPQ,IGCOUN)
39956 ELSEIF (MODE.EQ.8) THEN
39957 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39958 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39959 & IP1,IP21,IP22,IT1,IT2,2,IPQ,IGCOUN)
39960 ENDIF
39961 IF (IREJ.GE.1) THEN
39962 if ((ipq.lt.0).or.(ipq.ge.4))
39963 & write(LOUT,*) 'ipq !!!',ipq,mode
39964 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
39965* accept or reject new chains corresponding to PDBSEA
39966 ELSE
39967 IF ((IPQ.EQ.1).OR.(IPQ.EQ.2)) THEN
39968 ACC = DBRKA(1,MODE)+DBRKA(2,MODE)
39969 REJ = DBRKR(1,MODE)+DBRKR(2,MODE)
39970 ELSEIF (IPQ.EQ.3) THEN
39971 ACC = DBRKA(3,MODE)
39972 REJ = DBRKR(3,MODE)
39973 ELSE
39974 WRITE(LOUT,*) ' inconsistent IPQ ! ',IPQ
39975 STOP
39976 ENDIF
39977 IF (ACC/(ACC+REJ).LE.PDBSEA(IPQ)) THEN
39978 DBRKA(IPQ,MODE) = DBRKA(IPQ,MODE)+1.0D0
39979 IACC = 1
39980 ELSE
39981 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
39982 IACC = 0
39983 ENDIF
39984* new chains have been accepted and are now copied into HKKEVT
39985 IF (IACC.EQ.1) THEN
39986 IF (LEMCCK) THEN
39987 CALL DT_EVTEMC(PHKK(1,IDX1),PHKK(2,IDX1),
39988 & PHKK(3,IDX1),PHKK(4,IDX1),
39989 & 1,IDUM1,IDUM2)
39990 CALL DT_EVTEMC(PHKK(1,IDX2),PHKK(2,IDX2),
39991 & PHKK(3,IDX2),PHKK(4,IDX2),
39992 & 2,IDUM1,IDUM2)
39993 ENDIF
39994 IDHKK(IDX1) = 99888
39995 IDHKK(IDX2) = 99888
39996 IDXCHN(2,I) = -1
39997 IDXCHN(2,J) = -1
39998 DO 3 K=1,IGCOUN
39999 NHKK = NHKK+1
40000 CALL HKKHKT(NHKK,K)
40001 IF ((LEMCCK).AND.(IDHKK(NHKK).EQ.88888))THEN
40002 PX = -PHKK(1,NHKK)
40003 PY = -PHKK(2,NHKK)
40004 PZ = -PHKK(3,NHKK)
40005 PE = -PHKK(4,NHKK)
40006 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
40007 ENDIF
40008 3 CONTINUE
40009 IF (LEMCCK) THEN
40010 CHKLEV = 0.1D0
40011 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,9000,
40012 & IREJ)
40013 IF (IREJ.NE.0) CALL DT_EVTOUT(4)
40014 ENDIF
40015 GOTO 1
40016 ENDIF
40017 ENDIF
40018 ENDIF
40019 2 CONTINUE
40020 ENDIF
40021 1 CONTINUE
40022 RETURN
40023 END
40024
40025*$ CREATE DT_CQPAIR.FOR
40026*COPY DT_CQPAIR
40027*
40028*===cqpair=============================================================*
40029*
40030 SUBROUTINE DT_CQPAIR(XQMAX,XAQMAX,XQ,XAQ,IFLV,IREJ)
40031
40032************************************************************************
40033* This subroutine Creates a Quark-antiquark PAIR from the sea. *
40034* *
40035* XQMAX maxium energy fraction of quark (input) *
40036* XAQMAX maxium energy fraction of antiquark (input) *
40037* XQ energy fraction of quark (output) *
40038* XAQ energy fraction of antiquark (output) *
40039* IFLV quark flavour (- antiquark flavor) (output) *
40040* *
40041* This version dated 14.5.00 is written by S. Roesler. *
40042************************************************************************
40043
40044 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
40045 SAVE
40046 PARAMETER ( LINP = 10 ,
40047 & LOUT = 6 ,
40048 & LDAT = 9 )
40049
40050* Lorentz-parameters of the current interaction
40051 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
40052 & UMO,PPCM,EPROJ,PPROJ
40053
40054*
40055 IREJ = 0
40056 XQ = 0.0D0
40057 XAQ = 0.0D0
40058*
40059* sample quark flavour
40060*
40061* set seasq here (the one from DTCHAI should be used in the future)
40062 SEASQ = 0.5D0
40063 IFLV = INT(1.0D0+DT_RNDM(XQMAX)*(2.0D0+SEASQ))
40064*
40065* sample energy fractions of sea pair
40066* we first sample the energy fraction of a gluon and then split the gluon
40067*
40068* maximum energy fraction of the gluon forced via input
40069 XGMAXI = XQMAX+XAQMAX
40070* minimum energy fraction of the gluon
40071 XTHR1 = 4.0D0 /UMO**2
40072 XTHR2 = 0.54D0/UMO**1.5D0
40073 XGMIN = MAX(XTHR1,XTHR2)
40074* maximum energy fraction of the gluon
40075 XGMAX = 0.3D0
40076 XGMAX = MIN(XGMAXI,XGMAX)
40077 IF (XGMIN.GE.XGMAX) THEN
40078 IREJ = 1
40079 RETURN
40080 ENDIF
40081*
40082* sample energy fraction of the gluon
40083 NLOOP = 0
40084 1 CONTINUE
40085 NLOOP = NLOOP+1
40086 IF (NLOOP.GE.50) THEN
40087 IREJ = 1
40088 RETURN
40089 ENDIF
40090 XGLUON = DT_SAMSQX(XGMIN,XGMAX)
40091 EGLUON = XGLUON*UMO/2.0D0
40092*
40093* split gluon into q-aq pair (we follow PHOJET's subroutine PHO_GLU2QU)
40094 ZMIN = MIN(0.1D0,0.5D0/EGLUON)
40095 ZMAX = 1.0D0-ZMIN
40096 RZ = DT_RNDM(ZMAX)
40097 XHLP = ((1.0D0-RZ)*ZMIN**3+RZ*ZMAX**3)**0.33333
40098 RQ = DT_RNDM(ZMAX)
40099 IF (RQ.LT.0.5D0) THEN
40100 XQ = XGLUON*XHLP
40101 XAQ = XGLUON-XQ
40102 ELSE
40103 XAQ = XGLUON*XHLP
40104 XQ = XGLUON-XAQ
40105 ENDIF
40106 IF ((XQ.GT.XQMAX).OR.(XAQ.GT.XAQMAX)) GOTO 1
40107
40108 RETURN
40109 END