d30b8254 |
1 | * |
2 | * +-------------------------------------------------------------+ |
3 | * | | |
4 | * | | |
5 | * | DPMJET 3.0 | |
6 | * | | |
7 | * | | |
8 | * | S. Roesler+), R. Engel#), J. Ranft*) | |
9 | * | | |
10 | * | +) CERN, TIS-RP | |
11 | * | CH-1211 Geneva 23, Switzerland | |
12 | * | Email: Stefan.Roesler@cern.ch | |
13 | * | | |
14 | * | #) University of Delaware, BRI | |
15 | * | Newark, DE 19716, USA | |
16 | * | | |
17 | * | *) University of Siegen, Dept. of Physics | |
18 | * | D-57068 Siegen, Germany | |
19 | * | | |
20 | * | | |
21 | * | http://home.cern.ch/sroesler/dpmjet3.html | |
22 | * | | |
23 | * | | |
24 | * | Monte Carlo models used for event generation: | |
25 | * | PHOJET 1.12, JETSET 7.4 and LEPTO 6.5.1 | |
26 | * | | |
27 | * +-------------------------------------------------------------+ |
28 | * |
29 | * |
30 | *===init===============================================================* |
31 | * |
32 | CDECK ID>, DT_INIT |
33 | SUBROUTINE DT_INIT(NCASES,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR, |
34 | & IDP,IGLAU) |
35 | |
36 | ************************************************************************ |
37 | * Initialization of event generation * |
38 | * This version dated 7.4.98 is written by S. Roesler. * |
39 | ************************************************************************ |
40 | |
41 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
42 | SAVE |
43 | |
44 | PARAMETER ( LINP = 5 , |
45 | & LOUT = 6 , |
46 | & LDAT = 9 ) |
47 | |
48 | PARAMETER (ZERO=0.0D0,ONE=1.0D0) |
49 | |
50 | * particle properties (BAMJET index convention) |
51 | CHARACTER*8 ANAME |
52 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
53 | & IICH(210),IIBAR(210),K1(210),K2(210) |
54 | * names of hadrons used in input-cards |
55 | CHARACTER*8 BTYPE |
56 | COMMON /DTPAIN/ BTYPE(30) |
57 | |
ba758f5a |
58 | INCLUDE '(DIMPAR)' |
59 | INCLUDE '(PAREVT)' |
60 | INCLUDE '(EVAPAR)' |
61 | INCLUDE '(FRBKCM)' |
d30b8254 |
62 | |
63 | PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) |
64 | |
65 | * emulsion treatment |
66 | COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX), |
67 | & NCOMPO,IEMUL |
68 | * Glauber formalism: parameters |
69 | COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX), |
70 | & BMAX(NCOMPX),BSTEP(NCOMPX), |
71 | & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB), |
72 | & NSITEB,NSTATB |
73 | * Glauber formalism: cross sections |
74 | COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2, |
75 | & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX), |
76 | & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX), |
77 | & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX), |
78 | & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX), |
79 | & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX), |
80 | & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX), |
81 | & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX), |
82 | & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX), |
83 | & BSLOPE,NEBINI,NQBINI |
84 | * interface HADRIN-DPM |
85 | COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA |
86 | * central particle production, impact parameter biasing |
87 | COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR |
88 | * parameter for intranuclear cascade |
89 | LOGICAL LPAULI |
90 | COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI |
91 | * various options for treatment of partons (DTUNUC 1.x) |
92 | * (chain recombination, Cronin,..) |
93 | LOGICAL LCO2CR,LINTPT |
94 | COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM, |
95 | & LCO2CR,LINTPT |
96 | * threshold values for x-sampling (DTUNUC 1.x) |
97 | COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA, |
98 | & SSMIMQ,VVMTHR |
99 | * flags for input different options |
100 | LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO |
101 | COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6), |
102 | & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT |
103 | * nuclear potential |
104 | LOGICAL LFERMI |
105 | COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD, |
106 | & EBINDP(2),EBINDN(2),EPOT(2,210), |
107 | & ETACOU(2),ICOUL,LFERMI |
108 | * n-n cross section fluctuations |
109 | PARAMETER (NBINS = 1000) |
110 | COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT |
111 | * flags for particle decays |
112 | COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20), |
113 | & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20), |
114 | & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0 |
115 | * diquark-breaking mechanism |
116 | COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3 |
117 | * nucleon-nucleon event-generator |
118 | CHARACTER*8 CMODEL |
119 | LOGICAL LPHOIN |
120 | COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN |
121 | * properties of interacting particles |
122 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
123 | * properties of photon/lepton projectiles |
124 | COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC |
125 | * flags for diffractive interactions (DTUNUC 1.x) |
126 | COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF |
127 | * parameters for hA-diffraction |
128 | COMMON /DTDIHA/ DIBETA,DIALPH |
129 | * Lorentz-parameters of the current interaction |
130 | COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB, |
131 | & UMO,PPCM,EPROJ,PPROJ |
132 | * kinematical cuts for lepton-nucleus interactions |
133 | COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX, |
134 | & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI |
135 | * VDM parameter for photon-nucleus interactions |
136 | COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3) |
137 | * Glauber formalism: flags and parameters for statistics |
138 | LOGICAL LPROD |
139 | CHARACTER*8 CGLB |
140 | COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD |
141 | * cuts for variable energy runs |
142 | COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI |
143 | * flags for activated histograms |
144 | COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL |
145 | |
146 | COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) |
147 | |
148 | COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) |
149 | |
150 | * LEPTO |
151 | **LUND single / double precision |
152 | REAL CUT,PARL,TMPX,TMPY,TMPW2,TMPQ2,TMPU |
153 | COMMON /LEPTOU/ CUT(14),LST(40),PARL(30), |
154 | & TMPX,TMPY,TMPW2,TMPQ2,TMPU |
155 | * LEPTO |
156 | REAL RPPN |
157 | COMMON /LEPTOI/ RPPN,LEPIN,INTER |
158 | * steering flags for qel neutrino scattering modules |
159 | COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC |
160 | * event flag |
161 | COMMON /DTEVNO/ NEVENT,ICASCA |
162 | |
163 | INTEGER PYCOMP |
164 | |
165 | C DIMENSION XPARA(5) |
166 | DIMENSION XDUMB(40),IPRANG(5) |
167 | |
168 | PARAMETER (MXCARD=58) |
169 | CHARACTER*78 CLINE,CTITLE |
170 | CHARACTER*60 CWHAT |
171 | CHARACTER*8 BLANK,SDUM |
172 | CHARACTER*10 CODE,CODEWD |
173 | CHARACTER*72 HEADER |
174 | LOGICAL LSTART,LEINP,LXSTAB |
175 | DIMENSION WHAT(6),CODE(MXCARD) |
176 | DATA CODE/ |
177 | & 'TITLE ','PROJPAR ','TARPAR ','ENERGY ', |
178 | & 'MOMENTUM ','CMENERGY ','EMULSION ','FERMI ', |
179 | & 'TAUFOR ','PAULI ','COULOMB ','HADRIN ', |
180 | & 'EVAP ','EMCCHECK ','MODEL ','PHOINPUT ', |
181 | & 'GLAUBERI ','FLUCTUAT ','CENTRAL ','RECOMBIN ', |
182 | & 'COMBIJET ','XCUTS ','INTPT ','CRONINPT ', |
183 | & 'SEADISTR ','SEASU3 ','DIQUARKS ','RESONANC ', |
184 | & 'DIFFRACT ','SINGLECH ','NOFRAGME ','HADRONIZE ', |
185 | & 'POPCORN ','PARDECAY ','BEAM ','LUND-MSTU ', |
186 | & 'LUND-MSTJ ','LUND-MDCY ','LUND-PARJ ','LUND-PARU ', |
187 | & 'OUTLEVEL ','FRAME ','L-TAG ','L-ETAG ', |
188 | & 'ECMS-CUT ','VDM-PAR1 ','HISTOGRAM ','XS-TABLE ', |
189 | & 'GLAUB-PAR ','GLAUB-INI ','VDM-PAR2 ','XS-QELPRO ', |
190 | & 'RNDMINIT ','LEPTO-CUT ','LEPTO-LST ','LEPTO-PARL', |
191 | & 'START ','STOP '/ |
192 | DATA BLANK /' '/ |
193 | |
194 | DATA LSTART,LXSTAB,IFIRST /.TRUE.,.FALSE.,1/ |
195 | DATA CMEOLD /0.0D0/ |
196 | |
197 | * --- Added by Chiara |
198 | |
199 | CHARACTER*100 ALIROOT |
200 | CHARACTER*100 FILNAM |
201 | INTEGER*4 LNROOT |
202 | LOGICAL EXISTS |
203 | ALIROOT=' ' |
204 | |
205 | *--------------------------------------------------------------------- |
206 | * at the first call of INIT: initialize event generation |
207 | EPNSAV = EPN |
208 | IF (LSTART) THEN |
209 | CALL DT_TITLE |
210 | * initialization and test of the random number generator |
211 | IF (ITRSPT.NE.1) THEN |
212 | |
213 | CALL FL48UT (ISRM48,ISEED1,ISEED2) |
214 | CALL FL48IN (54217137,ISEED1,ISEED2) |
215 | |
216 | ENDIF |
217 | * initialization of BAMJET, DECAY and HADRIN |
218 | CALL DT_DDATAR |
219 | CALL DT_DHADDE |
220 | CALL DT_DCHANT |
221 | CALL DT_DCHANH |
222 | * set default values for input variables |
223 | CALL DT_DEFAUL(EPN,PPN) |
224 | IGLAU = 0 |
225 | IXSQEL = 0 |
226 | * flag for collision energy input |
227 | LEINP = .FALSE. |
228 | LSTART = .FALSE. |
229 | ENDIF |
230 | |
231 | *--------------------------------------------------------------------- |
232 | 10 CONTINUE |
233 | |
234 | * bypass reading input cards (e.g. for use with Fluka) |
235 | * in this case Epn is expected to carry the beam momentum |
236 | IF (NCASES.EQ.-1) THEN |
237 | IP = NPMASS |
238 | IPZ = NPCHAR |
239 | PPN = EPNSAV |
240 | EPN = ZERO |
241 | CMENER = ZERO |
242 | LEINP = .TRUE. |
243 | MKCRON = 0 |
244 | WHAT(1) = 1 |
245 | WHAT(2) = 0 |
246 | CODEWD = 'START ' |
247 | GOTO 900 |
248 | ENDIF |
249 | |
250 | * read control card from input-unit LINP |
251 | C READ(LINP,'(A78)',END=9999) CLINE |
252 | * ### Read control card from specified file |
253 | * ### Changed by Chiara (original version LINP=5) |
254 | * OPEN(UNIT=7, |
255 | * + FILE='/home/oppedisa/AliRoot/new/DPMJET/inp/PbPbLHC.inp', |
256 | * + STATUS='OLD') |
257 | |
258 | CALL GETENVF('ALICE_ROOT',ALIROOT) |
259 | LNROOT = LNBLNK(ALIROOT) |
260 | |
ba758f5a |
261 | FILNAM=ALIROOT(1:LNROOT)//'/DPMJET/inp/ppLHC.inp' |
d30b8254 |
262 | OPEN(UNIT=7,FILE=FILNAM,STATUS='OLD') |
ba758f5a |
263 | OPEN(UNIT=14,FILE="nuclear.bin",STATUS='OLD') |
264 | * OPEN(UNIT=6,FILE="dpm.out",STATUS='UNKNOWN') |
d30b8254 |
265 | |
266 | READ(7,'(A78)',END=9999) CLINE |
267 | |
268 | IF (CLINE(1:1).EQ.'*') THEN |
269 | * comment-line |
270 | C WRITE(LOUT,'(A78)') CLINE |
271 | GOTO 10 |
272 | ENDIF |
273 | C READ(CLINE,1000,END=9999) CODEWD,(WHAT(I),I=1,6),SDUM |
274 | C1000 FORMAT(A10,6E10.0,A8) |
275 | DO 1008 I=1,6 |
276 | WHAT(I) = ZERO |
277 | 1008 CONTINUE |
278 | READ(CLINE,1006,END=9999) CODEWD,CWHAT,SDUM |
279 | 1006 FORMAT(A10,A60,A8) |
280 | READ(CWHAT,*,END=1007) (WHAT(I),I=1,6) |
281 | 1007 CONTINUE |
282 | WRITE(LOUT,1001) CODEWD,(WHAT(I),I=1,6),SDUM |
283 | 1001 FORMAT(A10,6G10.3,A8) |
284 | |
285 | 900 CONTINUE |
286 | |
287 | * check for valid control card and get card index |
288 | ICW = 0 |
289 | DO 11 I=1,MXCARD |
290 | IF (CODEWD.EQ.CODE(I)) ICW = I |
291 | 11 CONTINUE |
292 | IF (ICW.EQ.0) THEN |
293 | WRITE(LOUT,1002) CODEWD |
294 | 1002 FORMAT(/,1X,'---> ',A10,': invalid control-card !',/) |
295 | GOTO 10 |
296 | ENDIF |
d30b8254 |
297 | GOTO( |
298 | *------------------------------------------------------------ |
299 | * TITLE , PROJPAR , TARPAR , ENERGY , MOMENTUM, |
300 | & 100 , 110 , 120 , 130 , 140 , |
301 | * |
302 | *------------------------------------------------------------ |
303 | * CMENERGY, EMULSION, FERMI , TAUFOR , PAULI , |
304 | & 150 , 160 , 170 , 180 , 190 , |
305 | * |
306 | *------------------------------------------------------------ |
307 | * COULOMB , HADRIN , EVAP , EMCCHECK, MODEL , |
308 | & 200 , 210 , 220 , 230 , 240 , |
309 | * |
310 | *------------------------------------------------------------ |
311 | * PHOINPUT, GLAUBERI, FLUCTUAT, CENTRAL , RECOMBIN, |
312 | & 250 , 260 , 270 , 280 , 290 , |
313 | * |
314 | *------------------------------------------------------------ |
315 | * COMBIJET, XCUTS , INTPT , CRONINPT, SEADISTR, |
316 | & 300 , 310 , 320 , 330 , 340 , |
317 | * |
318 | *------------------------------------------------------------ |
319 | * SEASU3 , DIQUARKS, RESONANC, DIFFRACT, SINGLECH, |
320 | & 350 , 360 , 370 , 380 , 390 , |
321 | * |
322 | *------------------------------------------------------------ |
323 | * NOFRAGME, HADRONIZE, POPCORN , PARDECAY, BEAM , |
324 | & 400 , 410 , 420 , 430 , 440 , |
325 | * |
326 | *------------------------------------------------------------ |
327 | * LUND-MSTU, LUND-MSTJ, LUND-MDCY, LUND-PARJ, LUND-PARU, |
328 | & 450 , 451 , 452 , 460 , 470 , |
329 | * |
330 | *------------------------------------------------------------ |
331 | * OUTLEVEL, FRAME , L-TAG , L-ETAG , ECMS-CUT, |
332 | & 480 , 490 , 500 , 510 , 520 , |
333 | * |
334 | *------------------------------------------------------------ |
335 | * VDM-PAR1, HISTOGRAM, XS-TABLE , GLAUB-PAR, GLAUB-INI, |
336 | & 530 , 540 , 550 , 560 , 565 , |
337 | * |
338 | *------------------------------------------------------------ |
339 | * , , VDM-PAR2, XS-QELPRO, RNDMINIT , |
340 | & 570 , 580 , 590 , |
341 | * |
342 | *------------------------------------------------------------ |
343 | * LEPTO-CUT, LEPTO-LST,LEPTO-PARL, START , STOP ) |
344 | & 600 , 610 , 620 , 630 , 640 ) , ICW |
345 | * |
346 | *------------------------------------------------------------ |
347 | |
348 | GOTO 10 |
349 | |
350 | ********************************************************************* |
351 | * * |
352 | * control card: codewd = TITLE * |
353 | * * |
354 | * what (1..6), sdum no meaning * |
355 | * * |
356 | * Note: The control-card following this must consist of * |
357 | * a string of characters usually giving the title of * |
358 | * the run. * |
359 | * * |
360 | ********************************************************************* |
361 | |
362 | 100 CONTINUE |
363 | C READ(LINP,'(A78)') CTITLE |
364 | * ### Read control card from specified file |
365 | * ### Changed by Chiara (original version LINP=5) |
366 | READ(7,'(A78)') CTITLE |
367 | |
368 | WRITE(LOUT,'(//,5X,A78,//)') CTITLE |
369 | GOTO 10 |
370 | |
371 | ********************************************************************* |
372 | * * |
373 | * control card: codewd = PROJPAR * |
374 | * * |
375 | * what (1) = mass number of projectile nucleus default: 1 * |
376 | * what (2) = charge of projectile nucleus default: 1 * |
377 | * what (3..6) no meaning * |
378 | * sdum projectile particle code word * |
379 | * * |
380 | * Note: If sdum is defined what (1..2) have no meaning. * |
381 | * * |
382 | ********************************************************************* |
383 | |
384 | 110 CONTINUE |
385 | IF (SDUM.EQ.BLANK) THEN |
386 | IP = INT(WHAT(1)) |
387 | IPZ = INT(WHAT(2)) |
388 | IJPROJ = 1 |
389 | IBPROJ = 1 |
390 | ELSE |
391 | IJPROJ = 0 |
392 | DO 111 II=1,30 |
393 | IF (SDUM.EQ.BTYPE(II)) THEN |
394 | IP = 1 |
395 | IPZ = 1 |
396 | IF (II.EQ.26) THEN |
397 | IJPROJ = 135 |
398 | ELSEIF (II.EQ.27) THEN |
399 | IJPROJ = 136 |
400 | ELSEIF (II.EQ.28) THEN |
401 | IJPROJ = 133 |
402 | ELSEIF (II.EQ.29) THEN |
403 | IJPROJ = 134 |
404 | ELSE |
405 | IJPROJ = II |
406 | ENDIF |
407 | IBPROJ = IIBAR(IJPROJ) |
408 | * photon |
409 | IF ((IJPROJ.EQ.7).AND.(WHAT(1).GT.ZERO)) VIRT = WHAT(1) |
410 | * lepton |
411 | IF (((IJPROJ.EQ. 3).OR.(IJPROJ.EQ. 4).OR. |
412 | & (IJPROJ.EQ.10).OR.(IJPROJ.EQ.11)).AND. |
413 | & (WHAT(1).GT.ZERO)) Q2HI = WHAT(1) |
414 | ENDIF |
415 | 111 CONTINUE |
416 | IF (IJPROJ.EQ.0) THEN |
417 | WRITE(LOUT,1110) |
418 | 1110 FORMAT(/,1X,'invalid PROJPAR card !',/) |
419 | GOTO 9999 |
420 | ENDIF |
421 | ENDIF |
422 | GOTO 10 |
423 | |
424 | ********************************************************************* |
425 | * * |
426 | * control card: codewd = TARPAR * |
427 | * * |
428 | * what (1) = mass number of target nucleus default: 1 * |
429 | * what (2) = charge of target nucleus default: 1 * |
430 | * what (3..6) no meaning * |
431 | * sdum target particle code word * |
432 | * * |
433 | * Note: If sdum is defined what (1..2) have no meaning. * |
434 | * * |
435 | ********************************************************************* |
436 | |
437 | 120 CONTINUE |
438 | IF (SDUM.EQ.BLANK) THEN |
439 | IT = INT(WHAT(1)) |
440 | ITZ = INT(WHAT(2)) |
441 | IJTARG = 1 |
442 | IBTARG = 1 |
443 | ELSE |
444 | IJTARG = 0 |
445 | DO 121 II=1,30 |
446 | IF (SDUM.EQ.BTYPE(II)) THEN |
447 | IT = 1 |
448 | ITZ = 1 |
449 | IJTARG = II |
450 | IBTARG = IIBAR(IJTARG) |
451 | ENDIF |
452 | 121 CONTINUE |
453 | IF (IJTARG.EQ.0) THEN |
454 | WRITE(LOUT,1120) |
455 | 1120 FORMAT(/,1X,'invalid TARPAR card !',/) |
456 | GOTO 9999 |
457 | ENDIF |
458 | ENDIF |
459 | GOTO 10 |
460 | |
461 | ********************************************************************* |
462 | * * |
463 | * control card: codewd = ENERGY * |
464 | * * |
465 | * what (1) = energy (GeV) of projectile in Lab. * |
466 | * if what(1) < 0: |what(1)| = kinetic energy * |
467 | * default: 200 GeV * |
468 | * if |what(2)| > 0: min. energy for variable * |
469 | * energy runs * |
470 | * what (2) = max. energy for variable energy runs * |
471 | * if what(2) < 0: |what(2)| = kinetic energy * |
472 | * * |
473 | ********************************************************************* |
474 | |
475 | 130 CONTINUE |
476 | EPN = WHAT(1) |
477 | PPN = ZERO |
478 | CMENER = ZERO |
479 | IF ((ABS(WHAT(2)).GT.ZERO).AND. |
480 | & (ABS(WHAT(2)).GT.ABS(WHAT(1)))) THEN |
481 | VARELO = WHAT(1) |
482 | VAREHI = WHAT(2) |
483 | EPN = VAREHI |
484 | ENDIF |
485 | LEINP = .TRUE. |
486 | GOTO 10 |
487 | |
488 | ********************************************************************* |
489 | * * |
490 | * control card: codewd = MOMENTUM * |
491 | * * |
492 | * what (1) = momentum (GeV/c) of projectile in Lab. * |
493 | * default: 200 GeV/c * |
494 | * what (2..6), sdum no meaning * |
495 | * * |
496 | ********************************************************************* |
497 | |
498 | 140 CONTINUE |
499 | EPN = ZERO |
500 | PPN = WHAT(1) |
501 | CMENER = ZERO |
502 | LEINP = .TRUE. |
503 | GOTO 10 |
504 | |
505 | ********************************************************************* |
506 | * * |
507 | * control card: codewd = CMENERGY * |
508 | * * |
509 | * what (1) = energy in nucleon-nucleon cms. * |
510 | * default: none * |
511 | * what (2..6), sdum no meaning * |
512 | * * |
513 | ********************************************************************* |
514 | |
515 | 150 CONTINUE |
516 | EPN = ZERO |
517 | PPN = ZERO |
518 | CMENER = WHAT(1) |
519 | LEINP = .TRUE. |
520 | GOTO 10 |
521 | |
522 | ********************************************************************* |
523 | * * |
524 | * control card: codewd = EMULSION * |
525 | * * |
526 | * definition of nuclear emulsions * |
527 | * * |
528 | * what(1) mass number of emulsion component * |
529 | * what(2) charge of emulsion component * |
530 | * what(3) fraction of events in which a scattering on a * |
531 | * nucleus of this properties is performed * |
532 | * what(4,5,6) as what(1,2,3) but for another component * |
533 | * default: no emulsion * |
534 | * sdum no meaning * |
535 | * * |
536 | * Note: If this input-card is once used with valid parameters * |
537 | * TARPAR is obsolete. * |
538 | * Not the absolute values of the fractions are important * |
539 | * but only the ratios of fractions of different comp. * |
540 | * This control card can be repeatedly used to define * |
541 | * emulsions consisting of up to 10 elements. * |
542 | * * |
543 | ********************************************************************* |
544 | |
545 | 160 CONTINUE |
546 | IF ((WHAT(1).GT.ZERO).AND.(WHAT(2).GT.ZERO) |
547 | & .AND.(ABS(WHAT(3)).GT.ZERO)) THEN |
548 | NCOMPO = NCOMPO+1 |
549 | IF (NCOMPO.GT.NCOMPX) THEN |
550 | WRITE(LOUT,1600) |
551 | STOP |
552 | ENDIF |
553 | IEMUMA(NCOMPO) = INT(WHAT(1)) |
554 | IEMUCH(NCOMPO) = INT(WHAT(2)) |
555 | EMUFRA(NCOMPO) = WHAT(3) |
556 | IEMUL = 1 |
557 | C CALL SHMAKF(IDUM,IDUM,IEMUMA(NCOMPO),IEMUCH(NCOMPO)) |
558 | ENDIF |
559 | IF ((WHAT(4).GT.ZERO).AND.(WHAT(5).GT.ZERO) |
560 | & .AND.(ABS(WHAT(6)).GT.ZERO)) THEN |
561 | NCOMPO = NCOMPO+1 |
562 | IF (NCOMPO.GT.NCOMPX) THEN |
563 | WRITE(LOUT,1001) |
564 | STOP |
565 | ENDIF |
566 | IEMUMA(NCOMPO) = INT(WHAT(4)) |
567 | IEMUCH(NCOMPO) = INT(WHAT(5)) |
568 | EMUFRA(NCOMPO) = WHAT(6) |
569 | C CALL SHMAKF(IDUM,IDUM,IEMUMA(NCOMPO),IEMUCH(NCOMPO)) |
570 | ENDIF |
571 | 1600 FORMAT(1X,'too many emulsion components - program stopped') |
572 | GOTO 10 |
573 | |
574 | ********************************************************************* |
575 | * * |
576 | * control card: codewd = FERMI * |
577 | * * |
578 | * what (1) = -1 Fermi-motion of nucleons not treated * |
579 | * default: 1 * |
580 | * what (2) = scale factor for Fermi-momentum * |
581 | * default: 0.75 * |
582 | * what (3..6), sdum no meaning * |
583 | * * |
584 | ********************************************************************* |
585 | |
586 | 170 CONTINUE |
587 | IF (WHAT(1).EQ.-1.0D0) THEN |
588 | LFERMI = .FALSE. |
589 | ELSE |
590 | LFERMI = .TRUE. |
591 | ENDIF |
592 | XMOD = WHAT(2) |
593 | IF (XMOD.GE.ZERO) FERMOD = XMOD |
594 | GOTO 10 |
595 | |
596 | ********************************************************************* |
597 | * * |
598 | * control card: codewd = TAUFOR * |
599 | * * |
600 | * formation time supressed intranuclear cascade * |
601 | * * |
602 | * what (1) formation time (in fm/c) * |
603 | * note: what(1)=10. corresponds roughly to an * |
604 | * average formation time of 1 fm/c * |
605 | * default: 5. fm/c * |
606 | * what (2) number of generations followed * |
607 | * default: 25 * |
608 | * what (3) = 1. p_t-dependent formation zone * |
609 | * = 2. constant formation zone * |
610 | * default: 1 * |
611 | * what (4) modus of selection of nucleus where the * |
612 | * cascade if followed first * |
613 | * = 1. proj./target-nucleus with probab. 1/2 * |
614 | * = 2. nucleus with highest mass * |
615 | * = 3. proj. nucleus if particle is moving in pos. z * |
616 | * targ. nucleus if particle is moving in neg. z * |
617 | * default: 1 * |
618 | * what (5..6), sdum no meaning * |
619 | * * |
620 | ********************************************************************* |
621 | |
622 | 180 CONTINUE |
623 | TAUFOR = WHAT(1) |
624 | KTAUGE = INT(WHAT(2)) |
625 | INCMOD = 1 |
626 | IF ((WHAT(3).GE.1.0D0).AND.(WHAT(3).LE.2.0D0)) |
627 | & ITAUVE = INT(WHAT(3)) |
628 | IF ((WHAT(4).GE.1.0D0).AND.(WHAT(4).LE.3.0D0)) |
629 | & INCMOD = INT(WHAT(4)) |
630 | GOTO 10 |
631 | |
632 | ********************************************************************* |
633 | * * |
634 | * control card: codewd = PAULI * |
635 | * * |
636 | * what (1) = -1 Pauli's principle for secondary * |
637 | * interactions not treated * |
638 | * default: 1 * |
639 | * what (2..6), sdum no meaning * |
640 | * * |
641 | ********************************************************************* |
642 | |
643 | 190 CONTINUE |
644 | IF (WHAT(1).EQ.-1.0D0) THEN |
645 | LPAULI = .FALSE. |
646 | ELSE |
647 | LPAULI = .TRUE. |
648 | ENDIF |
649 | GOTO 10 |
650 | |
651 | ********************************************************************* |
652 | * * |
653 | * control card: codewd = COULOMB * |
654 | * * |
655 | * what (1) = -1. Coulomb-energy treatment switched off * |
656 | * default: 1 * |
657 | * what (2..6), sdum no meaning * |
658 | * * |
659 | ********************************************************************* |
660 | |
661 | 200 CONTINUE |
662 | ICOUL = 1 |
663 | IF (WHAT(1).EQ.-1.0D0) THEN |
664 | ICOUL = 0 |
665 | ELSE |
666 | ICOUL = 1 |
667 | ENDIF |
668 | GOTO 10 |
669 | |
670 | ********************************************************************* |
671 | * * |
672 | * control card: codewd = HADRIN * |
673 | * * |
674 | * HADRIN module * |
675 | * * |
676 | * what (1) = 0. elastic/inelastic interactions with probab. * |
677 | * as defined by cross-sections * |
678 | * = 1. inelastic interactions forced * |
679 | * = 2. elastic interactions forced * |
680 | * default: 1 * |
681 | * what (2) upper threshold in total energy (GeV) below * |
682 | * which interactions are sampled by HADRIN * |
683 | * default: 5. GeV * |
684 | * what (3..6), sdum no meaning * |
685 | * * |
686 | ********************************************************************* |
687 | |
688 | 210 CONTINUE |
689 | IWHAT = INT(WHAT(1)) |
690 | IF ((IWHAT.GE.0).AND.(IWHAT.LE.2)) INTHAD = IWHAT |
691 | IF ((WHAT(2).GT.ZERO).AND.(WHAT(2).LT.15.0D0)) EHADTH = WHAT(2) |
692 | GOTO 10 |
693 | |
694 | ********************************************************************* |
695 | * * |
696 | * control card: codewd = EVAP * |
697 | * * |
698 | * evaporation module * |
699 | * * |
700 | * what (1) =< -1 ==> evaporation is switched off * |
701 | * >= 1 ==> evaporation is performed * |
702 | * * |
703 | * what (1) = i1 + i2*10 + i3*100 + i4*10000 * |
704 | * (i1, i2, i3, i4 >= 0 ) * |
705 | * * |
706 | * i1 is the flag for selecting the T=0 level density option used * |
707 | * = 1: standard EVAP level densities with Cook pairing * |
708 | * energies * |
709 | * = 2: Z,N-dependent Gilbert & Cameron level densities * |
710 | * (default) * |
711 | * = 3: Julich A-dependent level densities * |
712 | * = 4: Z,N-dependent Brancazio & Cameron level densities * |
713 | * * |
714 | * i2 >= 1: high energy fission activated * |
715 | * (default high energy fission activated) * |
716 | * * |
717 | * i3 = 0: No energy dependence for level densities * |
718 | * = 1: Standard Ignyatuk (1975, 1st) energy dependence * |
719 | * for level densities (default) * |
720 | * = 2: Standard Ignyatuk (1975, 1st) energy dependence * |
721 | * for level densities with NOT used set of parameters * |
722 | * = 3: Standard Ignyatuk (1975, 1st) energy dependence * |
723 | * for level densities with NOT used set of parameters * |
724 | * = 4: Second Ignyatuk (1975, 2nd) energy dependence * |
725 | * for level densities * |
726 | * = 5: Second Ignyatuk (1975, 2nd) energy dependence * |
727 | * for level densities with fit 1 Iljinov & Mebel set of * |
728 | * parameters * |
729 | * = 6: Second Ignyatuk (1975, 2nd) energy dependence * |
730 | * for level densities with fit 2 Iljinov & Mebel set of * |
731 | * parameters * |
732 | * = 7: Second Ignyatuk (1975, 2nd) energy dependence * |
733 | * for level densities with fit 3 Iljinov & Mebel set of * |
734 | * parameters * |
735 | * = 8: Second Ignyatuk (1975, 2nd) energy dependence * |
736 | * for level densities with fit 4 Iljinov & Mebel set of * |
737 | * parameters * |
738 | * * |
739 | * i4 >= 1: Original Gilbert and Cameron pairing energies used * |
740 | * (default Cook's modified pairing energies) * |
741 | * * |
742 | * what (2) = ig + 10 * if (ig and if must have the same sign) * |
743 | * * |
744 | * ig =< -1 ==> deexcitation gammas are not produced * |
745 | * (if the evaporation step is not performed * |
746 | * they are never produced) * |
747 | * if =< -1 ==> Fermi Break Up is not invoked * |
748 | * (if the evaporation step is not performed * |
749 | * it is never invoked) * |
750 | * The default is: deexcitation gamma produced and Fermi break up * |
751 | * activated for the new preequilibrium, not * |
752 | * activated otherwise. * |
753 | * what (3..6), sdum no meaning * |
754 | * * |
755 | ********************************************************************* |
756 | |
757 | 220 CONTINUE |
758 | |
759 | IF (WHAT(1).LE.-1.0D0) THEN |
760 | LEVPRT = .FALSE. |
761 | LDEEXG = .FALSE. |
762 | LHEAVY = .FALSE. |
763 | GOTO 10 |
764 | ENDIF |
765 | WHTSAV = WHAT (1) |
766 | IF ( NINT (WHAT (1)) .GE. 10000 ) THEN |
767 | LLVMOD = .FALSE. |
768 | JLVHLP = NINT (WHAT (1)) / 10000 |
769 | WHAT (1) = WHAT (1) - 10000.D+00 * JLVHLP |
770 | END IF |
771 | IF ( NINT (WHAT (1)) .GE. 100 ) THEN |
772 | JLVMOD = NINT (WHAT (1)) / 100 |
773 | WHAT (1) = WHAT (1) - 100.D+00 * JLVMOD |
774 | END IF |
775 | IF ( NINT (WHAT (1)) .GE. 10 ) THEN |
776 | IFISS = 1 |
777 | JLVHLP = NINT (WHAT (1)) / 10 |
778 | WHAT (1) = WHAT (1) - 10.D+00 * JLVHLP |
779 | ELSE IF ( NINT (WHTSAV) .NE. 0 ) THEN |
780 | IFISS = 0 |
781 | END IF |
782 | IF ( NINT (WHAT (1)) .GE. 0 ) THEN |
783 | LEVPRT = .TRUE. |
784 | ILVMOD = NINT (WHAT(1)) |
785 | IF ( ABS (NINT (WHAT (2))) .GE. 10 ) THEN |
786 | LFRMBK = .TRUE. |
787 | JLVHLP = NINT (WHAT (2)) / 10 |
788 | WHAT (2) = WHAT (2) - 10.D+00 * JLVHLP |
789 | ELSE IF ( NINT (WHAT (2)) .NE. 0 ) THEN |
790 | LFRMBK = .FALSE. |
791 | END IF |
792 | IF ( NINT (WHAT (2)) .GE. 0 ) THEN |
793 | LDEEXG = .TRUE. |
794 | ELSE |
795 | LDEEXG = .FALSE. |
796 | END IF |
797 | **sr heavies are always put to /FKFHVY/ |
798 | C IF ( NINT (WHAT(3)) .GE. 1 ) THEN |
799 | C LHEAVY = .TRUE. |
800 | C ELSE |
801 | C LHEAVY = .FALSE. |
802 | C END IF |
803 | LHEAVY = .TRUE. |
804 | ELSE |
805 | LEVPRT = .FALSE. |
806 | LDEEXG = .FALSE. |
807 | LHEAVY = .FALSE. |
808 | END IF |
809 | |
810 | LOLDEV = .FALSE. |
811 | |
812 | GOTO 10 |
813 | |
814 | ********************************************************************* |
815 | * * |
816 | * control card: codewd = EMCCHECK * |
817 | * * |
818 | * extended energy-momentum / quantum-number conservation check * |
819 | * * |
820 | * what (1) = -1 extended check not performed * |
821 | * default: 1. * |
822 | * what (2..6), sdum no meaning * |
823 | * * |
824 | ********************************************************************* |
825 | |
826 | 230 CONTINUE |
827 | IF (WHAT(1).EQ.-1) THEN |
828 | LEMCCK = .FALSE. |
829 | ELSE |
830 | LEMCCK = .TRUE. |
831 | ENDIF |
832 | GOTO 10 |
833 | |
834 | ********************************************************************* |
835 | * * |
836 | * control card: codewd = MODEL * |
837 | * * |
838 | * Model to be used to treat nucleon-nucleon interactions * |
839 | * * |
840 | * sdum = DTUNUC two-chain model * |
841 | * = PHOJET multiple chains including minijets * |
842 | * = LEPTO DIS * |
843 | * = QNEUTRIN quasi-elastic neutrino scattering * |
844 | * default: PHOJET * |
845 | * * |
846 | * if sdum = LEPTO: * |
847 | * what (1) (variable INTER) * |
848 | * = 1 gamma exchange * |
849 | * = 2 W+- exchange * |
850 | * = 3 Z0 exchange * |
851 | * = 4 gamma/Z0 exchange * |
852 | * * |
853 | * if sdum = QNEUTRIN: * |
854 | * what (1) = 0 elastic scattering on nucleon and * |
855 | * tau does not decay (default) * |
856 | * = 1 decay of tau into mu.. * |
857 | * = 2 decay of tau into e.. * |
858 | * = 10 CC events on p and n * |
859 | * = 11 NC events on p and n * |
860 | * * |
861 | * what (2..6) no meaning * |
862 | * * |
863 | ********************************************************************* |
864 | |
865 | 240 CONTINUE |
866 | IF (SDUM.EQ.CMODEL(1)) THEN |
867 | MCGENE = 1 |
868 | ELSEIF (SDUM.EQ.CMODEL(2)) THEN |
869 | MCGENE = 2 |
870 | ELSEIF (SDUM.EQ.CMODEL(3)) THEN |
871 | MCGENE = 3 |
872 | IF ((WHAT(1).GE.1.0D0).AND.(WHAT(1).LE.4.0D0)) |
873 | & INTER = INT(WHAT(1)) |
874 | ELSEIF (SDUM.EQ.CMODEL(4)) THEN |
875 | MCGENE = 4 |
876 | IWHAT = INT(WHAT(1)) |
877 | IF ((IWHAT.EQ.1 ).OR.(IWHAT.EQ.2 ).OR. |
878 | & (IWHAT.EQ.10).OR.(IWHAT.EQ.11)) |
879 | & NEUDEC = IWHAT |
880 | ELSE |
881 | STOP ' Unknown model !' |
882 | ENDIF |
883 | GOTO 10 |
884 | |
885 | ********************************************************************* |
886 | * * |
887 | * control card: codewd = PHOINPUT * |
888 | * * |
889 | * Start of input-section for PHOJET-specific input-cards * |
890 | * Note: This section will not be finished before giving * |
891 | * ENDINPUT-card * |
892 | * what (1..6), sdum no meaning * |
893 | * * |
894 | ********************************************************************* |
895 | |
896 | 250 CONTINUE |
897 | IF (LPHOIN) THEN |
898 | |
899 | C CALL PHO_INIT(LINP,IREJ1) |
900 | * ### Read control card from specified file |
901 | * ### Changed by Chiara (original version LINP=5) |
902 | CALL PHO_INIT(7,IREJ1) |
903 | |
904 | IF (IREJ1.NE.0) THEN |
905 | WRITE(LOUT,'(1X,A)')'INIT: reading PHOJET-input failed' |
906 | STOP |
907 | ENDIF |
908 | LPHOIN = .FALSE. |
909 | ENDIF |
910 | GOTO 10 |
911 | |
912 | ********************************************************************* |
913 | * * |
914 | * control card: codewd = GLAUBERI * |
915 | * * |
916 | * Pre-initialization of impact parameter selection * |
917 | * * |
918 | * what (1..6), sdum no meaning * |
919 | * * |
920 | ********************************************************************* |
921 | |
922 | 260 CONTINUE |
923 | IF (IFIRST.NE.99) THEN |
924 | CALL DT_RNDMST(12,34,56,78) |
925 | CALL DT_RNDMTE(1) |
926 | OPEN(40,FILE='shm.out',STATUS='UNKNOWN') |
927 | C OPEN(11,FILE='shm.dbg',STATUS='UNKNOWN') |
928 | IFIRST = 99 |
929 | ENDIF |
930 | |
931 | IPPN = 8 |
932 | PLOW = 10.0D0 |
933 | C IPPN = 1 |
934 | C PLOW = 100.0D0 |
935 | PHI = 1.0D5 |
936 | APLOW = LOG10(PLOW) |
937 | APHI = LOG10(PHI) |
938 | ADP = (APHI-APLOW)/DBLE(IPPN) |
939 | |
940 | IPLOW = 1 |
941 | IDIP = 1 |
942 | IIP = 5 |
943 | C IPLOW = 1 |
944 | C IDIP = 1 |
945 | C IIP = 1 |
946 | IPRANG(1) = 1 |
947 | IPRANG(2) = 2 |
948 | IPRANG(3) = 5 |
949 | IPRANG(4) = 10 |
950 | IPRANG(5) = 20 |
951 | |
952 | ITLOW = 30 |
953 | IDIT = 3 |
954 | IIT = 60 |
955 | C IDIT = 10 |
956 | C IIT = 21 |
957 | |
958 | DO 473 NCIT=1,IIT |
959 | IT = ITLOW+(NCIT-1)*IDIT |
960 | C IPHI = IT |
961 | C IDIP = 10 |
962 | C IIP = (IPHI-IPLOW)/IDIP |
963 | C IF (IIP.EQ.0) IIP = 1 |
964 | C IF (IT.EQ.IPLOW) IIP = 0 |
965 | |
966 | DO 472 NCIP=1,IIP |
967 | IP = IPRANG(NCIP) |
968 | CC IF (NCIP.LE.IIP) THEN |
969 | C IP = IPLOW+(NCIP-1)*IDIP |
970 | CC ELSE |
971 | CC IP = IT |
972 | CC ENDIF |
973 | IF (IP.GT.IT) GOTO 472 |
974 | |
975 | DO 471 NCP=1,IPPN+1 |
976 | APPN = APLOW+DBLE(NCP-1)*ADP |
977 | PPN = 10**APPN |
978 | |
979 | OPEN(12,FILE='shm.sta',STATUS='UNKNOWN') |
980 | WRITE(12,'(1X,2I5,E15.3)') IP,IT,PPN |
981 | CLOSE(12) |
982 | |
983 | XLIM1 = 0.0D0 |
984 | XLIM2 = 50.0D0 |
985 | XLIM3 = ZERO |
986 | IBIN = 50 |
987 | CALL DT_NEWHGR(XDUM,XDUM,XDUM,XDUMB,-1,IHDUM) |
988 | CALL DT_NEWHGR(XLIM1,XLIM2,XLIM3,XDUMB,IBIN,IHSHMA) |
989 | |
990 | NEVFIT = 5 |
991 | C IF ((IP.GT.10).OR.(IT.GT.10)) THEN |
992 | C NEVFIT = 5 |
993 | C ELSE |
994 | C NEVFIT = 10 |
995 | C ENDIF |
996 | SIGAV = 0.0D0 |
997 | |
998 | DO 478 I=1,NEVFIT |
999 | CALL DT_SHMAKI(IP,IDUM1,IT,IDUM1,IJPROJ,PPN,99) |
1000 | SIGAV = SIGAV+XSPRO(1,1,1) |
1001 | DO 479 J=1,50 |
1002 | XC = DBLE(J) |
1003 | CALL DT_FILHGR(XC,BSITE(1,1,1,J),IHSHMA,I) |
1004 | 479 CONTINUE |
1005 | 478 CONTINUE |
1006 | |
1007 | CALL DT_EVTHIS(IDUM) |
1008 | HEADER = ' BSITE' |
1009 | C CALL OUTGEN(IHSHMA,0,0,0,0,0,HEADER,0,NEVFIT,ONE,0,1,-1) |
1010 | |
1011 | C CALL GENFIT(XPARA) |
1012 | C WRITE(40,'(2I4,E11.3,F6.0,5E11.3)') |
1013 | C & IP,IT,PPN,SIGAV/DBLE(NEVFIT),XPARA |
1014 | |
1015 | 471 CONTINUE |
1016 | |
1017 | 472 CONTINUE |
1018 | |
1019 | 473 CONTINUE |
1020 | |
1021 | STOP |
1022 | |
1023 | ********************************************************************* |
1024 | * * |
1025 | * control card: codewd = FLUCTUAT * |
1026 | * * |
1027 | * Treatment of cross section fluctuations * |
1028 | * * |
1029 | * what (1) = 1 treat cross section fluctuations * |
1030 | * default: 0. * |
1031 | * what (1..6), sdum no meaning * |
1032 | * * |
1033 | ********************************************************************* |
1034 | |
1035 | 270 CONTINUE |
1036 | IFLUCT = 0 |
1037 | IF (WHAT(1).EQ.ONE) THEN |
1038 | IFLUCT = 1 |
1039 | CALL DT_FLUINI |
1040 | ENDIF |
1041 | GOTO 10 |
1042 | |
1043 | ********************************************************************* |
1044 | * * |
1045 | * control card: codewd = CENTRAL * |
1046 | * * |
1047 | * what (1) = 1. central production forced default: 0 * |
1048 | * if what (1) < 0 and > -100 * |
1049 | * what (2) = min. impact parameter default: 0 * |
1050 | * what (3) = max. impact parameter default: b_max * |
1051 | * if what (1) < -99 * |
1052 | * what (2) = fraction of cross section default: 1 * |
1053 | * if what (1) = -1 : evaporation/fzc suppressed * |
1054 | * if what (1) < -1 : evaporation/fzc allowed * |
1055 | * * |
1056 | * what (4..6), sdum no meaning * |
1057 | * * |
1058 | ********************************************************************* |
1059 | |
1060 | 280 CONTINUE |
1061 | ICENTR = INT(WHAT(1)) |
1062 | IF (ICENTR.LT.0) THEN |
1063 | IF (ICENTR.GT.-100) THEN |
1064 | BIMIN = WHAT(2) |
1065 | BIMAX = WHAT(3) |
1066 | ELSE |
1067 | XSFRAC = WHAT(2) |
1068 | ENDIF |
1069 | ENDIF |
1070 | GOTO 10 |
1071 | |
1072 | ********************************************************************* |
1073 | * * |
1074 | * control card: codewd = RECOMBIN * |
1075 | * * |
1076 | * Chain recombination * |
1077 | * (recombine S-S and V-V chains to V-S chains) * |
1078 | * * |
1079 | * what (1) = -1. recombination switched off default: 1 * |
1080 | * what (2..6), sdum no meaning * |
1081 | * * |
1082 | ********************************************************************* |
1083 | |
1084 | 290 CONTINUE |
1085 | IRECOM = 1 |
1086 | IF (WHAT(1).EQ.-1.0D0) IRECOM = 0 |
1087 | GOTO 10 |
1088 | |
1089 | ********************************************************************* |
1090 | * * |
1091 | * control card: codewd = COMBIJET * |
1092 | * * |
1093 | * chain fusion (2 q-aq --> qq-aqaq) * |
1094 | * * |
1095 | * what (1) = 1 fusion treated * |
1096 | * default: 0. * |
1097 | * what (2) minimum number of uncombined chains from * |
1098 | * single projectile or target nucleons * |
1099 | * default: 0. * |
1100 | * what (3..6), sdum no meaning * |
1101 | * * |
1102 | ********************************************************************* |
1103 | |
1104 | 300 CONTINUE |
1105 | LCO2CR = .FALSE. |
1106 | IF (INT(WHAT(1)).EQ.1) LCO2CR = .TRUE. |
1107 | IF (WHAT(2).GE.ZERO) CUTOF = WHAT(2) |
1108 | GOTO 10 |
1109 | |
1110 | ********************************************************************* |
1111 | * * |
1112 | * control card: codewd = XCUTS * |
1113 | * * |
1114 | * thresholds for x-sampling * |
1115 | * * |
1116 | * what (1) defines lower threshold for val.-q x-value (CVQ) * |
1117 | * default: 1. * |
1118 | * what (2) defines lower threshold for val.-qq x-value (CDQ) * |
1119 | * default: 2. * |
1120 | * what (3) defines lower threshold for sea-q x-value (CSEA) * |
1121 | * default: 0.2 * |
1122 | * what (4) sea-q x-values in S-S chains (SSMIMA) * |
1123 | * default: 0.14 * |
1124 | * what (5) not used * |
1125 | * default: 2. * |
1126 | * what (6), sdum no meaning * |
1127 | * * |
1128 | * Note: Lower thresholds (what(1..3)) are def. as x_thr=CXXX/ECM * |
1129 | * * |
1130 | ********************************************************************* |
1131 | |
1132 | 310 CONTINUE |
1133 | IF (WHAT(1).GE.0.5D0) CVQ = WHAT(1) |
1134 | IF (WHAT(2).GE.ONE) CDQ = WHAT(2) |
1135 | IF (WHAT(3).GE.0.1D0) CSEA = WHAT(3) |
1136 | IF (WHAT(4).GE.ZERO) THEN |
1137 | SSMIMA = WHAT(4) |
1138 | SSMIMQ = SSMIMA**2 |
1139 | ENDIF |
1140 | IF (WHAT(5).GT.2.0D0) VVMTHR = WHAT(5) |
1141 | GOTO 10 |
1142 | |
1143 | ********************************************************************* |
1144 | * * |
1145 | * control card: codewd = INTPT * |
1146 | * * |
1147 | * what (1) = -1 intrinsic transverse momenta of partons * |
1148 | * not treated default: 1 * |
1149 | * what (2..6), sdum no meaning * |
1150 | * * |
1151 | ********************************************************************* |
1152 | |
1153 | 320 CONTINUE |
1154 | IF (WHAT(1).EQ.-1.0D0) THEN |
1155 | LINTPT = .FALSE. |
1156 | ELSE |
1157 | LINTPT = .TRUE. |
1158 | ENDIF |
1159 | GOTO 10 |
1160 | |
1161 | ********************************************************************* |
1162 | * * |
1163 | * control card: codewd = CRONINPT * |
1164 | * * |
1165 | * Cronin effect (multiple scattering of partons at chain ends) * |
1166 | * * |
1167 | * what (1) = -1 Cronin effect not treated default: 1 * |
1168 | * what (2) = 0 scattering parameter default: 0.64 * |
1169 | * what (3..6), sdum no meaning * |
1170 | * * |
1171 | ********************************************************************* |
1172 | |
1173 | 330 CONTINUE |
1174 | IF (WHAT(1).EQ.-1.0D0) THEN |
1175 | MKCRON = 0 |
1176 | ELSE |
1177 | MKCRON = 1 |
1178 | ENDIF |
1179 | CRONCO = WHAT(2) |
1180 | GOTO 10 |
1181 | |
1182 | ********************************************************************* |
1183 | * * |
1184 | * control card: codewd = SEADISTR * |
1185 | * * |
1186 | * what (1) (XSEACO) sea(x) prop. 1/x**what (1) default: 1. * |
1187 | * what (2) (UNON) default: 2. * |
1188 | * what (3) (UNOM) default: 1.5 * |
1189 | * what (4) (UNOSEA) default: 5. * |
1190 | * qdis(x) prop. (1-x)**what (1) etc. * |
1191 | * what (5..6), sdum no meaning * |
1192 | * * |
1193 | ********************************************************************* |
1194 | |
1195 | 340 CONTINUE |
1196 | XSEACO = WHAT(1) |
1197 | XSEACU = 1.05D0-XSEACO |
1198 | UNON = WHAT(2) |
1199 | IF (UNON.LT.0.1D0) UNON = 2.0D0 |
1200 | UNOM = WHAT(3) |
1201 | IF (UNOM.LT.0.1D0) UNOM = 1.5D0 |
1202 | UNOSEA = WHAT(4) |
1203 | IF (UNOSEA.LT.0.1D0) UNOSEA = 5.0D0 |
1204 | GOTO 10 |
1205 | |
1206 | ********************************************************************* |
1207 | * * |
1208 | * control card: codewd = SEASU3 * |
1209 | * * |
1210 | * Treatment of strange-quarks at chain ends * |
1211 | * * |
1212 | * what (1) (SEASQ) strange-quark supression factor * |
1213 | * iflav = 1.+rndm*(2.+SEASQ) * |
1214 | * default: 1. * |
1215 | * what (2..6), sdum no meaning * |
1216 | * * |
1217 | ********************************************************************* |
1218 | |
1219 | 350 CONTINUE |
1220 | SEASQ = WHAT(1) |
1221 | GOTO 10 |
1222 | |
1223 | ********************************************************************* |
1224 | * * |
1225 | * control card: codewd = DIQUARKS * |
1226 | * * |
1227 | * what (1) = -1. sea-diquark/antidiquark-pairs not treated * |
1228 | * default: 1. * |
1229 | * what (2..6), sdum no meaning * |
1230 | * * |
1231 | ********************************************************************* |
1232 | |
1233 | 360 CONTINUE |
1234 | IF (WHAT(1).EQ.-1.0D0) THEN |
1235 | LSEADI = .FALSE. |
1236 | ELSE |
1237 | LSEADI = .TRUE. |
1238 | ENDIF |
1239 | GOTO 10 |
1240 | |
1241 | ********************************************************************* |
1242 | * * |
1243 | * control card: codewd = RESONANC * |
1244 | * * |
1245 | * treatment of low mass chains * |
1246 | * * |
1247 | * what (1) = -1 low chain masses are not corrected for resonance * |
1248 | * masses (obsolete for BAMJET-fragmentation) * |
1249 | * default: 1. * |
1250 | * what (2) = -1 massless partons default: 1. (massive) * |
1251 | * default: 1. (massive) * |
1252 | * what (3) = -1 chain-system containing chain of too small * |
1253 | * mass is rejected (note: this does not fully * |
1254 | * apply to S-S chains) default: 0. * |
1255 | * what (4..6), sdum no meaning * |
1256 | * * |
1257 | ********************************************************************* |
1258 | |
1259 | 370 CONTINUE |
1260 | IRESCO = 1 |
1261 | IMSHL = 1 |
1262 | IRESRJ = 0 |
1263 | IF (WHAT(1).EQ.-ONE) IRESCO = 0 |
1264 | IF (WHAT(2).EQ.-ONE) IMSHL = 0 |
1265 | IF (WHAT(3).EQ.-ONE) IRESRJ = 1 |
1266 | GOTO 10 |
1267 | |
1268 | ********************************************************************* |
1269 | * * |
1270 | * control card: codewd = DIFFRACT * |
1271 | * * |
1272 | * Treatment of diffractive events * |
1273 | * * |
1274 | * what (1) = (ISINGD) 0 no single diffraction * |
1275 | * 1 single diffraction included * |
1276 | * +-2 single diffractive events only * |
1277 | * +-3 projectile single diffraction only * |
1278 | * +-4 target single diffraction only * |
1279 | * -5 double pomeron exchange only * |
1280 | * (neg. sign applies to PHOJET events) * |
1281 | * default: 0. * |
1282 | * * |
1283 | * what (2) = (IDOUBD) 0 no double diffraction * |
1284 | * 1 double diffraction included * |
1285 | * 2 double diffractive events only * |
1286 | * default: 0. * |
1287 | * what (3) = 1 projectile diffraction treated (2-channel form.) * |
1288 | * default: 0. * |
1289 | * what (4) = alpha-parameter in projectile diffraction * |
1290 | * default: 0. * |
1291 | * what (5..6), sdum no meaning * |
1292 | * * |
1293 | ********************************************************************* |
1294 | |
1295 | 380 CONTINUE |
1296 | IF (ABS(WHAT(1)).GT.ZERO) ISINGD = INT(WHAT(1)) |
1297 | IF (ABS(WHAT(2)).GT.ZERO) IDOUBD = INT(WHAT(2)) |
1298 | IF ((ISINGD.GT.1).AND.(IDOUBD.GT.1)) THEN |
1299 | WRITE(LOUT,1380) |
1300 | 1380 FORMAT(1X,'INIT: inconsistent DIFFRACT - input !',/, |
1301 | & 11X,'IDOUBD is reset to zero') |
1302 | IDOUBD = 0 |
1303 | ENDIF |
1304 | IF (WHAT(3).GT.ZERO) DIBETA = WHAT(3) |
1305 | IF (WHAT(4).GT.ZERO) DIALPH = WHAT(4) |
1306 | GOTO 10 |
1307 | |
1308 | ********************************************************************* |
1309 | * * |
1310 | * control card: codewd = SINGLECH * |
1311 | * * |
1312 | * what (1) = 1. Regge contribution (one chain) included * |
1313 | * default: 0. * |
1314 | * what (2..6), sdum no meaning * |
1315 | * * |
1316 | ********************************************************************* |
1317 | |
1318 | 390 CONTINUE |
1319 | ISICHA = 0 |
1320 | IF (WHAT(1).EQ.ONE) ISICHA = 1 |
1321 | GOTO 10 |
1322 | |
1323 | ********************************************************************* |
1324 | * * |
1325 | * control card: codewd = NOFRAGME * |
1326 | * * |
1327 | * biased chain hadronization * |
1328 | * * |
1329 | * what (1..6) = -1 no of hadronizsation of S-S chains * |
1330 | * = -2 no of hadronizsation of D-S chains * |
1331 | * = -3 no of hadronizsation of S-D chains * |
1332 | * = -4 no of hadronizsation of S-V chains * |
1333 | * = -5 no of hadronizsation of D-V chains * |
1334 | * = -6 no of hadronizsation of V-S chains * |
1335 | * = -7 no of hadronizsation of V-D chains * |
1336 | * = -8 no of hadronizsation of V-V chains * |
1337 | * = -9 no of hadronizsation of comb. chains * |
1338 | * default: complete hadronization * |
1339 | * sdum no meaning * |
1340 | * * |
1341 | ********************************************************************* |
1342 | |
1343 | 400 CONTINUE |
1344 | DO 401 I=1,6 |
1345 | ICHAIN = INT(WHAT(I)) |
1346 | IF ((ICHAIN.LE.-1).AND.(ICHAIN.GE.-9)) |
1347 | & LHADRO(ABS(ICHAIN)) = .FALSE. |
1348 | 401 CONTINUE |
1349 | GOTO 10 |
1350 | |
1351 | ********************************************************************* |
1352 | * * |
1353 | * control card: codewd = HADRONIZE * |
1354 | * * |
1355 | * hadronization model and parameter switch * |
1356 | * * |
1357 | * what (1) = 1 hadronization via BAMJET * |
1358 | * = 2 hadronization via JETSET * |
1359 | * default: 2 * |
1360 | * what (2) = 1..3 parameter set to be used * |
1361 | * JETSET: 3 sets available * |
1362 | * ( = 3 default JETSET-parameters) * |
1363 | * BAMJET: 1 set available * |
1364 | * default: 1 * |
1365 | * what (3..6), sdum no meaning * |
1366 | * * |
1367 | ********************************************************************* |
1368 | |
1369 | 410 CONTINUE |
1370 | IWHAT1 = INT(WHAT(1)) |
1371 | IWHAT2 = INT(WHAT(2)) |
1372 | IF ((IWHAT1.EQ.1).OR.(IWHAT1.EQ.2)) IFRAG(1) = IWHAT1 |
1373 | IF ((IWHAT1.EQ.2).AND.(IWHAT2.GE.1).AND.(IWHAT2.LE.3)) |
1374 | & IFRAG(2) = IWHAT2 |
1375 | GOTO 10 |
1376 | |
1377 | ********************************************************************* |
1378 | * * |
1379 | * control card: codewd = POPCORN * |
1380 | * * |
1381 | * "Popcorn-effect" in fragmentation and diquark breaking diagrams * |
1382 | * * |
1383 | * what (1) = (PDB) frac. of diquark fragmenting directly into * |
1384 | * baryons (PYTHIA/JETSET fragmentation) * |
1385 | * (JETSET: = 0. Popcorn mechanism switched off) * |
1386 | * default: 0.5 * |
1387 | * what (2) = probability for accepting a diquark breaking * |
1388 | * diagram involving the generation of a u/d quark- * |
1389 | * antiquark pair default: 0.0 * |
1390 | * what (3) = same a what (2), here for s quark-antiquark pair * |
1391 | * default: 0.0 * |
1392 | * what (4..6), sdum no meaning * |
1393 | * * |
1394 | ********************************************************************* |
1395 | |
1396 | 420 CONTINUE |
1397 | IF (WHAT(1).GE.0.0D0) PDB = WHAT(1) |
1398 | IF (WHAT(2).GE.0.0D0) THEN |
1399 | PDBSEA(1) = WHAT(2) |
1400 | PDBSEA(2) = WHAT(2) |
1401 | ENDIF |
1402 | IF (WHAT(3).GE.0.0D0) PDBSEA(3) = WHAT(3) |
1403 | DO 421 I=1,8 |
1404 | DBRKA(1,I) = DBRKR(1,I)*PDBSEA(1)/(1.D0-PDBSEA(1)) |
1405 | DBRKA(2,I) = DBRKR(2,I)*PDBSEA(2)/(1.D0-PDBSEA(2)) |
1406 | DBRKA(3,I) = DBRKR(3,I)*PDBSEA(3)/(1.D0-PDBSEA(3)) |
1407 | 421 CONTINUE |
1408 | GOTO 10 |
1409 | |
1410 | ********************************************************************* |
1411 | * * |
1412 | * control card: codewd = PARDECAY * |
1413 | * * |
1414 | * what (1) = 1. Sigma0/Asigma0 are decaying within JETSET * |
1415 | * = 2. pion^0 decay after intranucl. cascade * |
1416 | * default: no decay * |
1417 | * what (2..6), sdum no meaning * |
1418 | * * |
1419 | ********************************************************************* |
1420 | |
1421 | 430 CONTINUE |
1422 | IF (WHAT(1).EQ.ONE) ISIG0 = 1 |
1423 | IF (WHAT(1).EQ.2.0D0) IPI0 = 1 |
1424 | GOTO 10 |
1425 | |
1426 | ********************************************************************* |
1427 | * * |
1428 | * control card: codewd = BEAM * |
1429 | * * |
1430 | * definition of beam parameters * |
1431 | * * |
1432 | * what (1/2) > 0 : energy of beam 1/2 (GeV) * |
1433 | * < 0 : abs(what(1/2)) energy per charge of * |
1434 | * beam 1/2 (GeV) * |
1435 | * (beam 1 is directed into positive z-direction) * |
1436 | * what (3) beam crossing angle, defined as 2x angle between * |
1437 | * one beam and the z-axis (micro rad) * |
1438 | * what (4) angle with x-axis defining the collision plane * |
1439 | * what (5..6), sdum no meaning * |
1440 | * * |
1441 | * Note: this card requires previously defined projectile and * |
1442 | * target identities (PROJPAR, TARPAR) * |
1443 | * * |
1444 | ********************************************************************* |
1445 | |
1446 | 440 CONTINUE |
1447 | CALL DT_BEAMPR(WHAT,PPN,1) |
1448 | EPN = ZERO |
1449 | CMENER = ZERO |
1450 | LEINP = .TRUE. |
1451 | GOTO 10 |
1452 | |
1453 | ********************************************************************* |
1454 | * * |
1455 | * control card: codewd = LUND-MSTU * |
1456 | * * |
1457 | * set parameter MSTU in JETSET-common /LUDAT1/ * |
1458 | * * |
1459 | * what (1) = index according to LUND-common block * |
1460 | * what (2) = new value of MSTU( int(what(1)) ) * |
1461 | * what (3), what(4) and what (5), what(6) further * |
1462 | * parameter in the same way as what (1) and * |
1463 | * what (2) * |
1464 | * default: default-Lund or corresponding to * |
1465 | * the set given in HADRONIZE * |
1466 | * * |
1467 | ********************************************************************* |
1468 | |
1469 | 450 CONTINUE |
1470 | IF (WHAT(1).GT.ZERO) THEN |
1471 | NMSTU = NMSTU+1 |
1472 | IMSTU(NMSTU) = INT(WHAT(1)) |
1473 | MSTUX(NMSTU) = INT(WHAT(2)) |
1474 | ENDIF |
1475 | IF (WHAT(3).GT.ZERO) THEN |
1476 | NMSTU = NMSTU+1 |
1477 | IMSTU(NMSTU) = INT(WHAT(3)) |
1478 | MSTUX(NMSTU) = INT(WHAT(4)) |
1479 | ENDIF |
1480 | IF (WHAT(5).GT.ZERO) THEN |
1481 | NMSTU = NMSTU+1 |
1482 | IMSTU(NMSTU) = INT(WHAT(5)) |
1483 | MSTUX(NMSTU) = INT(WHAT(6)) |
1484 | ENDIF |
1485 | GOTO 10 |
1486 | |
1487 | ********************************************************************* |
1488 | * * |
1489 | * control card: codewd = LUND-MSTJ * |
1490 | * * |
1491 | * set parameter MSTJ in JETSET-common /LUDAT1/ * |
1492 | * * |
1493 | * what (1) = index according to LUND-common block * |
1494 | * what (2) = new value of MSTJ( int(what(1)) ) * |
1495 | * what (3), what(4) and what (5), what(6) further * |
1496 | * parameter in the same way as what (1) and * |
1497 | * what (2) * |
1498 | * default: default-Lund or corresponding to * |
1499 | * the set given in HADRONIZE * |
1500 | * * |
1501 | ********************************************************************* |
1502 | |
1503 | 451 CONTINUE |
1504 | IF (WHAT(1).GT.ZERO) THEN |
1505 | NMSTJ = NMSTJ+1 |
1506 | IMSTJ(NMSTJ) = INT(WHAT(1)) |
1507 | MSTJX(NMSTJ) = INT(WHAT(2)) |
1508 | ENDIF |
1509 | IF (WHAT(3).GT.ZERO) THEN |
1510 | NMSTJ = NMSTJ+1 |
1511 | IMSTJ(NMSTJ) = INT(WHAT(3)) |
1512 | MSTJX(NMSTJ) = INT(WHAT(4)) |
1513 | ENDIF |
1514 | IF (WHAT(5).GT.ZERO) THEN |
1515 | NMSTJ = NMSTJ+1 |
1516 | IMSTJ(NMSTJ) = INT(WHAT(5)) |
1517 | MSTJX(NMSTJ) = INT(WHAT(6)) |
1518 | ENDIF |
1519 | GOTO 10 |
1520 | |
1521 | ********************************************************************* |
1522 | * * |
1523 | * control card: codewd = LUND-MDCY * |
1524 | * * |
1525 | * set parameter MDCY(I,1) for particle decays in JETSET-common * |
1526 | * /LUDAT3/ * |
1527 | * * |
1528 | * what (1-6) = PDG particle index of particle which should * |
1529 | * not decay * |
1530 | * default: default-Lund or forced in * |
1531 | * DT_INITJS * |
1532 | * * |
1533 | ********************************************************************* |
1534 | |
1535 | 452 CONTINUE |
1536 | DO 4521 I=1,6 |
1537 | IF (WHAT(I).NE.ZERO) THEN |
1538 | |
1539 | KC = PYCOMP(INT(WHAT(I))) |
1540 | |
1541 | MDCY(KC,1) = 0 |
1542 | ENDIF |
1543 | 4521 CONTINUE |
1544 | GOTO 10 |
1545 | |
1546 | ********************************************************************* |
1547 | * * |
1548 | * control card: codewd = LUND-PARJ * |
1549 | * * |
1550 | * set parameter PARJ in JETSET-common /LUDAT1/ * |
1551 | * * |
1552 | * what (1) = index according to LUND-common block * |
1553 | * what (2) = new value of PARJ( int(what(1)) ) * |
1554 | * what (3), what(4) and what (5), what(6) further * |
1555 | * parameter in the same way as what (1) and * |
1556 | * what (2) * |
1557 | * default: default-Lund or corresponding to * |
1558 | * the set given in HADRONIZE * |
1559 | * * |
1560 | ********************************************************************* |
1561 | |
1562 | 460 CONTINUE |
1563 | IF (WHAT(1).NE.ZERO) THEN |
1564 | NPARJ = NPARJ+1 |
1565 | IPARJ(NPARJ) = INT(WHAT(1)) |
1566 | PARJX(NPARJ) = WHAT(2) |
1567 | ENDIF |
1568 | IF (WHAT(3).NE.ZERO) THEN |
1569 | NPARJ = NPARJ+1 |
1570 | IPARJ(NPARJ) = INT(WHAT(3)) |
1571 | PARJX(NPARJ) = WHAT(4) |
1572 | ENDIF |
1573 | IF (WHAT(5).NE.ZERO) THEN |
1574 | NPARJ = NPARJ+1 |
1575 | IPARJ(NPARJ) = INT(WHAT(5)) |
1576 | PARJX(NPARJ) = WHAT(6) |
1577 | ENDIF |
1578 | GOTO 10 |
1579 | |
1580 | ********************************************************************* |
1581 | * * |
1582 | * control card: codewd = LUND-PARU * |
1583 | * * |
1584 | * set parameter PARJ in JETSET-common /LUDAT1/ * |
1585 | * * |
1586 | * what (1) = index according to LUND-common block * |
1587 | * what (2) = new value of PARU( int(what(1)) ) * |
1588 | * what (3), what(4) and what (5), what(6) further * |
1589 | * parameter in the same way as what (1) and * |
1590 | * what (2) * |
1591 | * default: default-Lund or corresponding to * |
1592 | * the set given in HADRONIZE * |
1593 | * * |
1594 | ********************************************************************* |
1595 | |
1596 | 470 CONTINUE |
1597 | IF (WHAT(1).GT.ZERO) THEN |
1598 | NPARU = NPARU+1 |
1599 | IPARU(NPARU) = INT(WHAT(1)) |
1600 | PARUX(NPARU) = WHAT(2) |
1601 | ENDIF |
1602 | IF (WHAT(3).GT.ZERO) THEN |
1603 | NPARU = NPARU+1 |
1604 | IPARU(NPARU) = INT(WHAT(3)) |
1605 | PARUX(NPARU) = WHAT(4) |
1606 | ENDIF |
1607 | IF (WHAT(5).GT.ZERO) THEN |
1608 | NPARU = NPARU+1 |
1609 | IPARU(NPARU) = INT(WHAT(5)) |
1610 | PARUX(NPARU) = WHAT(6) |
1611 | ENDIF |
1612 | GOTO 10 |
1613 | |
1614 | ********************************************************************* |
1615 | * * |
1616 | * control card: codewd = OUTLEVEL * |
1617 | * * |
1618 | * output control switches * |
1619 | * * |
1620 | * what (1) = internal rejection informations default: 0 * |
1621 | * what (2) = energy-momentum conservation check output * |
1622 | * default: 0 * |
1623 | * what (3) = internal warning messages default: 0 * |
1624 | * what (4..6), sdum not yet used * |
1625 | * * |
1626 | ********************************************************************* |
1627 | |
1628 | 480 CONTINUE |
1629 | DO 481 K=1,6 |
1630 | IOULEV(K) = INT(WHAT(K)) |
1631 | 481 CONTINUE |
1632 | GOTO 10 |
1633 | |
1634 | ********************************************************************* |
1635 | * * |
1636 | * control card: codewd = FRAME * |
1637 | * * |
1638 | * frame in which final state is given in DTEVT1 * |
1639 | * * |
1640 | * what (1) = 1 target rest frame (laboratory) * |
1641 | * = 2 nucleon-nucleon cms * |
1642 | * default: 1 * |
1643 | * * |
1644 | ********************************************************************* |
1645 | |
1646 | 490 CONTINUE |
1647 | KFRAME = INT(WHAT(1)) |
1648 | IF ((KFRAME.GE.1).AND.(KFRAME.LE.2)) IFRAME = KFRAME |
1649 | GOTO 10 |
1650 | |
1651 | ********************************************************************* |
1652 | * * |
1653 | * control card: codewd = L-TAG * |
1654 | * * |
1655 | * lepton tagger: * |
1656 | * definition of kinematical cuts for radiated photon and * |
1657 | * outgoing lepton detection in lepton-nucleus interactions * |
1658 | * * |
1659 | * what (1) = y_min * |
1660 | * what (2) = y_max * |
1661 | * what (3) = Q^2_min * |
1662 | * what (4) = Q^2_max * |
1663 | * what (5) = theta_min (Lab) * |
1664 | * what (6) = theta_max (Lab) * |
1665 | * default: no cuts * |
1666 | * sdum no meaning * |
1667 | * * |
1668 | ********************************************************************* |
1669 | |
1670 | 500 CONTINUE |
1671 | YMIN = WHAT(1) |
1672 | YMAX = WHAT(2) |
1673 | Q2MIN = WHAT(3) |
1674 | Q2MAX = WHAT(4) |
1675 | THMIN = WHAT(5) |
1676 | THMAX = WHAT(6) |
1677 | GOTO 10 |
1678 | |
1679 | ********************************************************************* |
1680 | * * |
1681 | * control card: codewd = L-ETAG * |
1682 | * * |
1683 | * lepton tagger: * |
1684 | * what (1) = min. outgoing lepton energy (in Lab) * |
1685 | * what (2) = min. photon energy (in Lab) * |
1686 | * what (3) = max. photon energy (in Lab) * |
1687 | * default: no cuts * |
1688 | * what (2..6), sdum no meaning * |
1689 | * * |
1690 | ********************************************************************* |
1691 | |
1692 | 510 CONTINUE |
1693 | ELMIN = MAX(WHAT(1),ZERO) |
1694 | EGMIN = MAX(WHAT(2),ZERO) |
1695 | EGMAX = MAX(WHAT(3),ZERO) |
1696 | GOTO 10 |
1697 | |
1698 | ********************************************************************* |
1699 | * * |
1700 | * control card: codewd = ECMS-CUT * |
1701 | * * |
1702 | * what (1) = min. c.m. energy to be sampled * |
1703 | * what (2) = max. c.m. energy to be sampled * |
1704 | * what (3) = min x_Bj to be sampled * |
1705 | * default: no cuts * |
1706 | * what (3..6), sdum no meaning * |
1707 | * * |
1708 | ********************************************************************* |
1709 | |
1710 | 520 CONTINUE |
1711 | ECMIN = WHAT(1) |
1712 | ECMAX = WHAT(2) |
1713 | IF (ECMIN.GT.ECMAX) ECMIN = ECMAX |
1714 | XBJMIN = MAX(WHAT(3),ZERO) |
1715 | GOTO 10 |
1716 | |
1717 | ********************************************************************* |
1718 | * * |
1719 | * control card: codewd = VDM-PAR1 * |
1720 | * * |
1721 | * parameters in gamma-nucleus cross section calculation * |
1722 | * * |
1723 | * what (1) = Lambda^2 default: 2. * |
1724 | * what (2) lower limit in M^2 integration * |
1725 | * = 1 (3m_pi)^2 * |
1726 | * = 2 (m_rho0)^2 * |
1727 | * = 3 (m_phi)^2 default: 1 * |
1728 | * what (3) upper limit in M^2 integration * |
1729 | * = 1 s/2 * |
1730 | * = 2 s/4 * |
1731 | * = 3 s default: 3 * |
1732 | * what (4) CKMT F_2 structure function * |
1733 | * = 2212 proton * |
1734 | * = 100 deuteron default: 2212 * |
1735 | * what (5) calculation of gamma-nucleon xsections * |
1736 | * = 1 according to CKMT-parametrization of F_2 * |
1737 | * = 2 integrating SIGVP over M^2 * |
1738 | * = 3 using SIGGA * |
1739 | * = 4 PHOJET cross sections default: 4 * |
1740 | * * |
1741 | * what (6), sdum no meaning * |
1742 | * * |
1743 | ********************************************************************* |
1744 | |
1745 | 530 CONTINUE |
1746 | IF (WHAT(1).GE.ZERO) RL2 = WHAT(1) |
1747 | IF ((WHAT(2).GE.1).AND.(WHAT(2).LE.3)) INTRGE(1) = INT(WHAT(2)) |
1748 | IF ((WHAT(3).GE.1).AND.(WHAT(3).LE.3)) INTRGE(2) = INT(WHAT(3)) |
1749 | IF ((WHAT(4).EQ.2212).OR.(WHAT(4).EQ.100)) IDPDF = INT(WHAT(4)) |
1750 | IF ((WHAT(5).GE.1).AND.(WHAT(5).LE.4)) MODEGA = INT(WHAT(5)) |
1751 | GOTO 10 |
1752 | |
1753 | ********************************************************************* |
1754 | * * |
1755 | * control card: codewd = HISTOGRAM * |
1756 | * * |
1757 | * activate different classes of histograms * |
1758 | * * |
1759 | * default: no histograms * |
1760 | * * |
1761 | ********************************************************************* |
1762 | |
1763 | 540 CONTINUE |
1764 | DO 541 J=1,6 |
1765 | IF ((WHAT(J).GE.100).AND.(WHAT(J).LE.150)) THEN |
1766 | IHISPP(INT(WHAT(J))-100) = 1 |
1767 | ELSEIF ((ABS(WHAT(J)).GE.200).AND.(ABS(WHAT(J)).LE.250)) THEN |
1768 | IHISXS(INT(ABS(WHAT(J)))-200) = 1 |
1769 | IF (WHAT(J).LT.ZERO) IXSTBL = 1 |
1770 | ENDIF |
1771 | 541 CONTINUE |
1772 | GOTO 10 |
1773 | |
1774 | ********************************************************************* |
1775 | * * |
1776 | * control card: codewd = XS-TABLE * |
1777 | * * |
1778 | * output of cross section table for requested interaction * |
1779 | * - particle production deactivated ! - * |
1780 | * * |
1781 | * what (1) lower energy limit for tabulation * |
1782 | * > 0 Lab. frame * |
1783 | * < 0 nucleon-nucleon cms * |
1784 | * what (2) upper energy limit for tabulation * |
1785 | * > 0 Lab. frame * |
1786 | * < 0 nucleon-nucleon cms * |
1787 | * what (3) > 0 # of equidistant lin. bins in E * |
1788 | * < 0 # of equidistant log. bins in E * |
1789 | * what (4) lower limit of particle virtuality (photons) * |
1790 | * what (5) upper limit of particle virtuality (photons) * |
1791 | * what (6) > 0 # of equidistant lin. bins in Q^2 * |
1792 | * < 0 # of equidistant log. bins in Q^2 * |
1793 | * * |
1794 | ********************************************************************* |
1795 | |
1796 | 550 CONTINUE |
1797 | IF (WHAT(1).EQ.99999.0D0) THEN |
1798 | IRATIO = INT(WHAT(2)) |
1799 | GOTO 10 |
1800 | ENDIF |
1801 | CMENER = ABS(WHAT(2)) |
1802 | IF (.NOT.LXSTAB) THEN |
1803 | |
1804 | CALL BERTTP |
1805 | CALL INCINI |
1806 | |
1807 | ENDIF |
1808 | IF ((.NOT.LXSTAB).OR.(CMENER.NE.CMEOLD)) THEN |
1809 | CMEOLD = CMENER |
1810 | IF (WHAT(2).GT.ZERO) |
1811 | & CMENER = SQRT(2.0D0*AAM(1)**2+2.0D0*WHAT(2)*AAM(1)) |
1812 | EPN = ZERO |
1813 | PPN = ZERO |
1814 | C WRITE(LOUT,*) 'CMENER = ',CMENER |
1815 | CALL DT_LTINI(IJPROJ,IJTARG,EPN,PPN,CMENER,1) |
1816 | CALL DT_PHOINI |
1817 | ENDIF |
1818 | CALL DT_XSTABL(WHAT,IXSQEL,IRATIO) |
1819 | IXSQEL = 0 |
1820 | LXSTAB = .TRUE. |
1821 | GOTO 10 |
1822 | |
1823 | ********************************************************************* |
1824 | * * |
1825 | * control card: codewd = GLAUB-PAR * |
1826 | * * |
1827 | * parameters in Glauber-formalism * |
1828 | * * |
1829 | * what (1) # of nucleon configurations sampled in integration * |
1830 | * over nuclear desity default: 1000 * |
1831 | * what (2) # of bins for integration over impact-parameter and * |
1832 | * for profile-function calculation default: 49 * |
1833 | * what (3) = 1 calculation of tot., el. and qel. cross sections * |
1834 | * default: 0 * |
1835 | * what (4) = 1 read pre-calculated impact-parameter distrib. * |
1836 | * from "sdum".glb * |
1837 | * =-1 dump pre-calculated impact-parameter distrib. * |
1838 | * into "sdum".glb * |
1839 | * = 100 read pre-calculated impact-parameter distrib. * |
1840 | * for variable projectile/target/energy runs * |
1841 | * from "sdum".glb * |
1842 | * default: 0 * |
1843 | * what (5..6) no meaning * |
1844 | * sdum if |what (4)| = 1 name of in/output-file (sdum.glb) * |
1845 | * * |
1846 | ********************************************************************* |
1847 | |
1848 | 560 CONTINUE |
1849 | IF (WHAT(1).GT.ZERO) JSTATB = INT(WHAT(1)) |
1850 | IF (WHAT(2).GT.ZERO) JBINSB = INT(WHAT(2)) |
1851 | IF (WHAT(3).EQ.ONE) LPROD = .FALSE. |
1852 | IF ((ABS(WHAT(4)).EQ.ONE).OR.(WHAT(4).EQ.100)) THEN |
1853 | IOGLB = INT(WHAT(4)) |
1854 | CGLB = SDUM |
1855 | ENDIF |
1856 | GOTO 10 |
1857 | |
1858 | ********************************************************************* |
1859 | * * |
1860 | * control card: codewd = GLAUB-INI * |
1861 | * * |
1862 | * pre-initialization of profile function * |
1863 | * * |
1864 | * what (1) lower energy limit for initialization * |
1865 | * > 0 Lab. frame * |
1866 | * < 0 nucleon-nucleon cms * |
1867 | * what (2) upper energy limit for initialization * |
1868 | * > 0 Lab. frame * |
1869 | * < 0 nucleon-nucleon cms * |
1870 | * what (3) > 0 # of equidistant lin. bins in E * |
1871 | * < 0 # of equidistant log. bins in E * |
1872 | * what (4) maximum projectile mass number for which the * |
1873 | * Glauber data are initialized for each * |
1874 | * projectile mass number * |
1875 | * (if <= mass given with the PROJPAR-card) * |
1876 | * default: 18 * |
1877 | * what (5) steps in mass number starting from what (4) * |
1878 | * up to mass number defined with PROJPAR-card * |
1879 | * for which Glauber data are initialized * |
1880 | * default: 5 * |
1881 | * what (6) no meaning * |
1882 | * sdum no meaning * |
1883 | * * |
1884 | ********************************************************************* |
1885 | |
1886 | 565 CONTINUE |
1887 | IOGLB = -100 |
1888 | CALL DT_GLBINI(WHAT) |
1889 | GOTO 10 |
1890 | |
1891 | ********************************************************************* |
1892 | * * |
1893 | * control card: codewd = VDM-PAR2 * |
1894 | * * |
1895 | * parameters in gamma-nucleus cross section calculation * |
1896 | * * |
1897 | * what (1) = 0 no suppression of shadowing by direct photon * |
1898 | * processes * |
1899 | * = 1 suppression .. default: 1 * |
1900 | * what (2) = 0 no suppression of shadowing by anomalous * |
1901 | * component if photon-F_2 * |
1902 | * = 1 suppression .. default: 1 * |
1903 | * what (3) = 0 no suppression of shadowing by coherence * |
1904 | * length of the photon * |
1905 | * = 1 suppression .. default: 1 * |
1906 | * what (4) = 1 longitudinal polarized photons are taken into * |
1907 | * account * |
1908 | * eps*R*Q^2/M^2 = what(4)*Q^2/M^2 default: 0 * |
1909 | * what (5..6), sdum no meaning * |
1910 | * * |
1911 | ********************************************************************* |
1912 | |
1913 | 570 CONTINUE |
1914 | IF ((WHAT(1).EQ.ZERO).OR.(WHAT(1).EQ.ONE)) ISHAD(1) = INT(WHAT(1)) |
1915 | IF ((WHAT(2).EQ.ZERO).OR.(WHAT(2).EQ.ONE)) ISHAD(2) = INT(WHAT(2)) |
1916 | IF ((WHAT(3).EQ.ZERO).OR.(WHAT(3).EQ.ONE)) ISHAD(3) = INT(WHAT(3)) |
1917 | EPSPOL = WHAT(4) |
1918 | GOTO 10 |
1919 | |
1920 | ********************************************************************* |
1921 | * * |
1922 | * control card: XS-QELPRO * |
1923 | * * |
1924 | * what (1..6), sdum no meaning * |
1925 | * * |
1926 | ********************************************************************* |
1927 | |
1928 | 580 CONTINUE |
1929 | IXSQEL = ABS(WHAT(1)) |
1930 | GOTO 10 |
1931 | |
1932 | ********************************************************************* |
1933 | * * |
1934 | * control card: RNDMINIT * |
1935 | * * |
1936 | * initialization of random number generator * |
1937 | * * |
1938 | * what (1..4) values for initialization (= 1..168) * |
1939 | * what (5..6), sdum no meaning * |
1940 | * * |
1941 | ********************************************************************* |
1942 | |
1943 | 590 CONTINUE |
1944 | IF ((WHAT(1).LT.1.0D0).OR.(WHAT(1).GT.168.0D0)) THEN |
1945 | NA1 = 22 |
1946 | ELSE |
1947 | NA1 = WHAT(1) |
1948 | ENDIF |
1949 | IF ((WHAT(2).LT.1.0D0).OR.(WHAT(2).GT.168.0D0)) THEN |
1950 | NA2 = 54 |
1951 | ELSE |
1952 | NA2 = WHAT(2) |
1953 | ENDIF |
1954 | IF ((WHAT(3).LT.1.0D0).OR.(WHAT(3).GT.168.0D0)) THEN |
1955 | NA3 = 76 |
1956 | ELSE |
1957 | NA3 = WHAT(3) |
1958 | ENDIF |
1959 | IF ((WHAT(4).LT.1.0D0).OR.(WHAT(4).GT.168.0D0)) THEN |
1960 | NA4 = 92 |
1961 | ELSE |
1962 | NA4 = WHAT(4) |
1963 | ENDIF |
1964 | CALL DT_RNDMST(NA1,NA2,NA3,NA4) |
1965 | GOTO 10 |
1966 | |
1967 | ********************************************************************* |
1968 | * * |
1969 | * control card: codewd = LEPTO-CUT * |
1970 | * * |
1971 | * set parameter CUT in LEPTO-common /LEPTOU/ * |
1972 | * * |
1973 | * what (1) = index in CUT-array * |
1974 | * what (2) = new value of CUT( int(what(1)) ) * |
1975 | * what (3), what(4) and what (5), what(6) further * |
1976 | * parameter in the same way as what (1) and * |
1977 | * what (2) * |
1978 | * default: default-LEPTO parameters * |
1979 | * * |
1980 | ********************************************************************* |
1981 | |
1982 | 600 CONTINUE |
1983 | IF (WHAT(1).GT.ZERO) CUT(INT(WHAT(1))) = WHAT(2) |
1984 | IF (WHAT(3).GT.ZERO) CUT(INT(WHAT(3))) = WHAT(4) |
1985 | IF (WHAT(5).GT.ZERO) CUT(INT(WHAT(5))) = WHAT(6) |
1986 | GOTO 10 |
1987 | |
1988 | ********************************************************************* |
1989 | * * |
1990 | * control card: codewd = LEPTO-LST * |
1991 | * * |
1992 | * set parameter LST in LEPTO-common /LEPTOU/ * |
1993 | * * |
1994 | * what (1) = index in LST-array * |
1995 | * what (2) = new value of LST( int(what(1)) ) * |
1996 | * what (3), what(4) and what (5), what(6) further * |
1997 | * parameter in the same way as what (1) and * |
1998 | * what (2) * |
1999 | * default: default-LEPTO parameters * |
2000 | * * |
2001 | ********************************************************************* |
2002 | |
2003 | 610 CONTINUE |
2004 | IF (WHAT(1).GT.ZERO) LST(INT(WHAT(1))) = INT(WHAT(2)) |
2005 | IF (WHAT(3).GT.ZERO) LST(INT(WHAT(3))) = INT(WHAT(4)) |
2006 | IF (WHAT(5).GT.ZERO) LST(INT(WHAT(5))) = INT(WHAT(6)) |
2007 | GOTO 10 |
2008 | |
2009 | ********************************************************************* |
2010 | * * |
2011 | * control card: codewd = LEPTO-PARL * |
2012 | * * |
2013 | * set parameter PARL in LEPTO-common /LEPTOU/ * |
2014 | * * |
2015 | * what (1) = index in PARL-array * |
2016 | * what (2) = new value of PARL( int(what(1)) ) * |
2017 | * what (3), what(4) and what (5), what(6) further * |
2018 | * parameter in the same way as what (1) and * |
2019 | * what (2) * |
2020 | * default: default-LEPTO parameters * |
2021 | * * |
2022 | ********************************************************************* |
2023 | |
2024 | 620 CONTINUE |
2025 | IF (WHAT(1).GT.ZERO) PARL(INT(WHAT(1))) = WHAT(2) |
2026 | IF (WHAT(3).GT.ZERO) PARL(INT(WHAT(3))) = WHAT(4) |
2027 | IF (WHAT(5).GT.ZERO) PARL(INT(WHAT(5))) = WHAT(6) |
2028 | GOTO 10 |
2029 | |
2030 | ********************************************************************* |
2031 | * * |
2032 | * control card: codewd = START * |
2033 | * * |
2034 | * what (1) = number of events default: 100. * |
2035 | * what (2) = 0 Glauber initialization follows * |
2036 | * = 1 Glauber initialization supressed, fitted * |
2037 | * results are used instead * |
2038 | * (this does not apply if emulsion-treatment * |
2039 | * is requested) * |
2040 | * = 2 Glauber initialization is written to * |
2041 | * output-file shmakov.out * |
2042 | * = 3 Glauber initialization is read from input-file * |
2043 | * shmakov.out default: 0 * |
2044 | * what (3..6) no meaning * |
2045 | * what (3..6) no meaning * |
2046 | * * |
2047 | ********************************************************************* |
2048 | |
2049 | 630 CONTINUE |
2050 | |
2051 | * check for cross-section table output only |
2052 | IF (LXSTAB) STOP |
2053 | |
2054 | NCASES = INT(WHAT(1)) |
2055 | IF (NCASES.LE.0) NCASES = 100 |
2056 | IGLAU = INT(WHAT(2)) |
2057 | IF ((IGLAU.NE.1).AND.(IGLAU.NE.2).AND.(IGLAU.NE.3)) |
2058 | & IGLAU = 0 |
2059 | |
2060 | NPMASS = IP |
2061 | NPCHAR = IPZ |
2062 | NTMASS = IT |
2063 | NTCHAR = ITZ |
2064 | IDP = IJPROJ |
2065 | IDT = IJTARG |
2066 | IF (IDP.LE.0) IDP = 1 |
2067 | * muon neutrinos: temporary (missing index) |
2068 | * (new patch in projpar: therefore the following this is probably not |
2069 | * necessary anymore..) |
2070 | C IF (IDP.EQ.26) IDP = 5 |
2071 | C IF (IDP.EQ.27) IDP = 6 |
2072 | |
2073 | * redefine collision energy |
2074 | IF (LEINP) THEN |
2075 | IF (ABS(VAREHI).GT.ZERO) THEN |
2076 | PDUM = ZERO |
2077 | IF (VARELO.LT.EHADLO) VARELO = EHADLO |
2078 | CALL DT_LTINI(IDP,IDT,VARELO,PDUM,VARCLO,1) |
2079 | PDUM = ZERO |
2080 | CALL DT_LTINI(IDP,IDT,VAREHI,PDUM,VARCHI,1) |
2081 | ENDIF |
2082 | CALL DT_LTINI(IDP,IDT,EPN,PPN,CMENER,1) |
2083 | ELSE |
2084 | WRITE(LOUT,1003) |
2085 | 1003 FORMAT(1X,'INIT: collision energy not defined!',/, |
2086 | & 1X,' -program stopped- ') |
2087 | STOP |
2088 | ENDIF |
2089 | |
2090 | * switch off evaporation (even if requested) if central coll. requ. |
2091 | IF ((ICENTR.EQ.-1).OR.(ICENTR.GT.0).OR.(XSFRAC.LT.0.5D0)) THEN |
2092 | IF (LEVPRT) THEN |
2093 | WRITE(LOUT,1004) |
2094 | 1004 FORMAT(1X,/,'Warning! Evaporation request rejected since', |
2095 | & ' central collisions forced.') |
2096 | LEVPRT = .FALSE. |
2097 | LDEEXG = .FALSE. |
2098 | LHEAVY = .FALSE. |
2099 | ENDIF |
2100 | ENDIF |
2101 | |
2102 | * initialization of evaporation-module |
2103 | |
2104 | * initialize evaporation if the code is not used as Fluka event generator |
2105 | IF (ITRSPT.NE.1) THEN |
ba758f5a |
2106 | * CALL BERTTP |
2107 | * CALL INCINI |
d30b8254 |
2108 | ENDIF |
2109 | IF (LEVPRT) LHEAVY = .TRUE. |
2110 | |
2111 | |
2112 | * save the default JETSET-parameter |
2113 | CALL DT_JSPARA(0) |
2114 | |
2115 | * force use of phojet for g-A |
2116 | IF ((IDP.EQ.7).AND.(MCGENE.NE.3)) MCGENE = 2 |
2117 | * initialization of nucleon-nucleon event generator |
2118 | IF (MCGENE.EQ.2) CALL DT_PHOINI |
2119 | * initialization of LEPTO event generator |
2120 | IF (MCGENE.EQ.3) THEN |
2121 | |
2122 | STOP ' This version does not contain LEPTO !' |
2123 | |
2124 | ENDIF |
2125 | |
2126 | * initialization of quasi-elastic neutrino scattering |
2127 | IF (MCGENE.EQ.4) THEN |
2128 | IF (IJPROJ.EQ.5) THEN |
2129 | NEUTYP = 1 |
2130 | ELSEIF (IJPROJ.EQ.6) THEN |
2131 | NEUTYP = 2 |
2132 | ELSEIF (IJPROJ.EQ.135) THEN |
2133 | NEUTYP = 3 |
2134 | ELSEIF (IJPROJ.EQ.136) THEN |
2135 | NEUTYP = 4 |
2136 | ELSEIF (IJPROJ.EQ.133) THEN |
2137 | NEUTYP = 5 |
2138 | ELSEIF (IJPROJ.EQ.134) THEN |
2139 | NEUTYP = 6 |
2140 | ENDIF |
2141 | ENDIF |
2142 | |
2143 | * normalize fractions of emulsion components |
2144 | IF (NCOMPO.GT.0) THEN |
2145 | SUMFRA = ZERO |
2146 | DO 491 I=1,NCOMPO |
2147 | SUMFRA = SUMFRA+EMUFRA(I) |
2148 | 491 CONTINUE |
2149 | IF (SUMFRA.GT.ZERO) THEN |
2150 | DO 492 I=1,NCOMPO |
2151 | EMUFRA(I) = EMUFRA(I)/SUMFRA |
2152 | 492 CONTINUE |
2153 | ENDIF |
2154 | ENDIF |
2155 | |
2156 | * disallow Cronin's multiple scattering for nucleus-nucleus interactions |
2157 | IF ((IP.GT.1).AND.(MKCRON.GT.0)) THEN |
2158 | WRITE(LOUT,1005) |
2159 | 1005 FORMAT(/,1X,'INIT: multiple scattering disallowed',/) |
2160 | MKCRON = 0 |
2161 | ENDIF |
2162 | |
2163 | * initialization of Glauber-formalism (moved to xAEVT, sr 26.3.96) |
2164 | C IF (NCOMPO.LE.0) THEN |
2165 | C CALL DT_SHMAKI(IP,IPZ,IT,ITZ,IDP,PPN,IGLAU) |
2166 | C ELSE |
2167 | C DO 493 I=1,NCOMPO |
2168 | C CALL DT_SHMAKI(IP,IPZ,IEMUMA(I),IEMUCH(I),IDP,PPN,0) |
2169 | C 493 CONTINUE |
2170 | C ENDIF |
2171 | |
2172 | * pre-tabulation of elastic cross-sections |
2173 | CALL DT_SIGTBL(JDUM,JDUM,DUM,DUM,-1) |
2174 | |
2175 | CALL DT_XTIME |
2176 | |
2177 | RETURN |
2178 | |
2179 | ********************************************************************* |
2180 | * * |
2181 | * control card: codewd = STOP * |
2182 | * * |
2183 | * stop of the event generation * |
2184 | * * |
2185 | * what (1..6) no meaning * |
2186 | * * |
2187 | ********************************************************************* |
2188 | |
2189 | 9999 CONTINUE |
2190 | WRITE(LOUT,9000) |
2191 | 9000 FORMAT(1X,'---> unexpected end of input !') |
2192 | |
2193 | 640 CONTINUE |
2194 | STOP |
2195 | |
2196 | END |
2197 | * |
2198 | *===kkinc==============================================================* |
2199 | * |
2200 | CDECK ID>, DT_KKINC |
2201 | SUBROUTINE DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,KKMAT, |
2202 | & IREJ) |
2203 | |
2204 | ************************************************************************ |
2205 | * Treatment of complete nucleus-nucleus or hadron-nucleus scattering * |
2206 | * This subroutine is an update of the previous version written * |
2207 | * by J. Ranft/ H.-J. Moehring. * |
2208 | * This version dated 19.11.95 is written by S. Roesler * |
2209 | ************************************************************************ |
2210 | |
2211 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
2212 | SAVE |
2213 | |
2214 | PARAMETER ( LINP = 5 , |
2215 | & LOUT = 6 , |
2216 | & LDAT = 9 ) |
2217 | |
2218 | PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY5=1.0D-5, |
2219 | & TINY2=1.0D-2,TINY3=1.0D-3) |
2220 | |
2221 | LOGICAL LFZC |
2222 | |
2223 | * event history |
2224 | |
2225 | PARAMETER (NMXHKK=200000) |
2226 | |
2227 | COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK), |
2228 | & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK), |
2229 | & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK) |
2230 | * extended event history |
2231 | COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK), |
2232 | & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), |
2233 | & IHIST(2,NMXHKK) |
2234 | * particle properties (BAMJET index convention) |
2235 | CHARACTER*8 ANAME |
2236 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
2237 | & IICH(210),IIBAR(210),K1(210),K2(210) |
2238 | * properties of interacting particles |
2239 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
2240 | * Lorentz-parameters of the current interaction |
2241 | COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB, |
2242 | & UMO,PPCM,EPROJ,PPROJ |
2243 | * flags for input different options |
2244 | LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO |
2245 | COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6), |
2246 | & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT |
2247 | * flags for particle decays |
2248 | COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20), |
2249 | & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20), |
2250 | & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0 |
2251 | * cuts for variable energy runs |
2252 | COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI |
2253 | * Glauber formalism: flags and parameters for statistics |
2254 | LOGICAL LPROD |
2255 | CHARACTER*8 CGLB |
2256 | COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD |
2257 | |
2258 | DIMENSION WHAT(6) |
2259 | |
2260 | IREJ = 0 |
2261 | ILOOP = 0 |
2262 | 100 CONTINUE |
2263 | IF (ILOOP.EQ.4) THEN |
2264 | WRITE(LOUT,1000) NEVHKK |
2265 | 1000 FORMAT(1X,'KKINC: event ',I8,' rejected!') |
2266 | GOTO 9999 |
2267 | ENDIF |
2268 | ILOOP = ILOOP+1 |
2269 | |
2270 | * variable energy-runs, recalculate parameters for LT's |
2271 | IF ((ABS(VAREHI).GT.ZERO).OR.(IOGLB.EQ.100)) THEN |
2272 | PDUM = ZERO |
2273 | CDUM = ZERO |
2274 | CALL DT_LTINI(IDP,1,EPN,PDUM,CDUM,1) |
2275 | ENDIF |
2276 | IF (EPN.GT.EPROJ) THEN |
2277 | WRITE(LOUT,'(A,E9.3,2A,E9.3,A)') |
2278 | & ' Requested energy (',EPN,'GeV) exceeds', |
2279 | & ' initialization energy (',EPROJ,'GeV) !' |
2280 | STOP |
2281 | ENDIF |
2282 | |
2283 | * re-initialize /DTPRTA/ |
2284 | IP = NPMASS |
2285 | IPZ = NPCHAR |
2286 | IT = NTMASS |
2287 | ITZ = NTCHAR |
2288 | IJPROJ = IDP |
2289 | IBPROJ = IIBAR(IJPROJ) |
2290 | |
2291 | * calculate nuclear potentials (common /DTNPOT/) |
2292 | CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0) |
2293 | |
2294 | * initialize treatment for residual nuclei |
2295 | CALL DT_RESNCL(EPN,NLOOP,1) |
2296 | |
2297 | * sample hadron/nucleus-nucleus interaction |
2298 | CALL DT_KKEVNT(KKMAT,IREJ1) |
2299 | IF (IREJ1.GT.0) THEN |
2300 | IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKINC' |
2301 | GOTO 9999 |
2302 | ENDIF |
2303 | |
2304 | IF ((NPMASS.GT.1).OR.(NTMASS.GT.1)) THEN |
2305 | |
2306 | * intranuclear cascade of final state particles for KTAUGE generations |
2307 | * of secondaries |
2308 | CALL DT_FOZOCA(LFZC,IREJ1) |
2309 | IF (IREJ1.GT.0) THEN |
2310 | IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKINC' |
2311 | GOTO 9999 |
2312 | ENDIF |
2313 | |
2314 | * baryons unable to escape the nuclear potential are treated as |
2315 | * excited nucleons (ISTHKK=15,16) |
2316 | CALL DT_SCN4BA |
2317 | |
2318 | * decay of resonances produced in intranuclear cascade processes |
2319 | **sr 15-11-95 should be obsolete |
2320 | C IF (LFZC) CALL DT_DECAY1 |
2321 | |
2322 | 101 CONTINUE |
2323 | * treatment of residual nuclei |
2324 | CALL DT_RESNCL(EPN,NLOOP,2) |
2325 | |
2326 | * evaporation / fission / fragmentation |
2327 | * (if intranuclear cascade was sampled only) |
2328 | IF (LFZC) THEN |
2329 | CALL DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ1) |
2330 | IF (IREJ1.GT.1) GOTO 101 |
2331 | IF (IREJ1.EQ.1) GOTO 100 |
2332 | ENDIF |
2333 | |
2334 | ENDIF |
2335 | |
2336 | * transform finale state into Lab. |
2337 | IFLAG = 2 |
2338 | CALL DT_BEAMPR(WHAT,DUM,IFLAG) |
2339 | IF ((IFRAME.EQ.1).AND.(IFLAG.EQ.-1)) CALL DT_LT2LAB |
2340 | |
2341 | IF (IPI0.EQ.1) CALL DT_DECPI0 |
2342 | |
2343 | C IF (NEVHKK.EQ.5) CALL DT_EVTOUT(4) |
2344 | |
2345 | RETURN |
2346 | 9999 CONTINUE |
2347 | IREJ = 1 |
2348 | RETURN |
2349 | END |
2350 | * |
2351 | *===defaul=============================================================* |
2352 | * |
2353 | CDECK ID>, DT_DEFAUL |
2354 | SUBROUTINE DT_DEFAUL(EPN,PPN) |
2355 | |
2356 | ************************************************************************ |
2357 | * Variables are set to default values. * |
2358 | * This version dated 8.5.95 is written by S. Roesler. * |
2359 | ************************************************************************ |
2360 | |
2361 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
2362 | SAVE |
2363 | PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10) |
2364 | PARAMETER (TWOPI = 6.283185307179586454D+00) |
2365 | |
2366 | * particle properties (BAMJET index convention) |
2367 | CHARACTER*8 ANAME |
2368 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
2369 | & IICH(210),IIBAR(210),K1(210),K2(210) |
2370 | * nuclear potential |
2371 | LOGICAL LFERMI |
2372 | COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD, |
2373 | & EBINDP(2),EBINDN(2),EPOT(2,210), |
2374 | & ETACOU(2),ICOUL,LFERMI |
2375 | * interface HADRIN-DPM |
2376 | COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA |
2377 | * central particle production, impact parameter biasing |
2378 | COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR |
2379 | * properties of interacting particles |
2380 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
2381 | * properties of photon/lepton projectiles |
2382 | COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC |
2383 | |
2384 | PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) |
2385 | |
2386 | * emulsion treatment |
2387 | COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX), |
2388 | & NCOMPO,IEMUL |
2389 | * parameter for intranuclear cascade |
2390 | LOGICAL LPAULI |
2391 | COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI |
2392 | * various options for treatment of partons (DTUNUC 1.x) |
2393 | * (chain recombination, Cronin,..) |
2394 | LOGICAL LCO2CR,LINTPT |
2395 | COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM, |
2396 | & LCO2CR,LINTPT |
2397 | * threshold values for x-sampling (DTUNUC 1.x) |
2398 | COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA, |
2399 | & SSMIMQ,VVMTHR |
2400 | * flags for input different options |
2401 | LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO |
2402 | COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6), |
2403 | & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT |
2404 | * n-n cross section fluctuations |
2405 | PARAMETER (NBINS = 1000) |
2406 | COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT |
2407 | * flags for particle decays |
2408 | COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20), |
2409 | & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20), |
2410 | & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0 |
2411 | * diquark-breaking mechanism |
2412 | COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3 |
2413 | * nucleon-nucleon event-generator |
2414 | CHARACTER*8 CMODEL |
2415 | LOGICAL LPHOIN |
2416 | COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN |
2417 | * flags for diffractive interactions (DTUNUC 1.x) |
2418 | COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF |
2419 | * VDM parameter for photon-nucleus interactions |
2420 | COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3) |
2421 | * Glauber formalism: flags and parameters for statistics |
2422 | LOGICAL LPROD |
2423 | CHARACTER*8 CGLB |
2424 | COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD |
2425 | * kinematical cuts for lepton-nucleus interactions |
2426 | COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX, |
2427 | & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI |
2428 | * flags for activated histograms |
2429 | COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL |
2430 | * cuts for variable energy runs |
2431 | COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI |
2432 | * parameters for hA-diffraction |
2433 | COMMON /DTDIHA/ DIBETA,DIALPH |
2434 | * LEPTO |
2435 | REAL RPPN |
2436 | COMMON /LEPTOI/ RPPN,LEPIN,INTER |
2437 | * steering flags for qel neutrino scattering modules |
2438 | COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC |
2439 | * event flag |
2440 | COMMON /DTEVNO/ NEVENT,ICASCA |
2441 | |
2442 | DATA POTMES /0.002D0/ |
2443 | |
2444 | * common /DTNPOT/ |
2445 | DO 10 I=1,2 |
2446 | PFERMP(I) = ZERO |
2447 | PFERMN(I) = ZERO |
2448 | EBINDP(I) = ZERO |
2449 | EBINDN(I) = ZERO |
2450 | DO 11 J=1,210 |
2451 | EPOT(I,J) = ZERO |
2452 | 11 CONTINUE |
2453 | * nucleus independent meson potential |
2454 | EPOT(I,13) = POTMES |
2455 | EPOT(I,14) = POTMES |
2456 | EPOT(I,15) = POTMES |
2457 | EPOT(I,16) = POTMES |
2458 | EPOT(I,23) = POTMES |
2459 | EPOT(I,24) = POTMES |
2460 | EPOT(I,25) = POTMES |
2461 | 10 CONTINUE |
2462 | **sr 7.4.98: changed after corrected B-sampling |
2463 | C FERMOD = 0.55D0 |
2464 | FERMOD = 0.68D0 |
2465 | ETACOU(1) = ZERO |
2466 | ETACOU(2) = ZERO |
2467 | ICOUL = 1 |
2468 | LFERMI = .TRUE. |
2469 | |
2470 | * common /HNTHRE/ |
2471 | EHADTH = -99.0D0 |
2472 | EHADLO = 4.06D0 |
2473 | EHADHI = 6.0D0 |
2474 | INTHAD = 1 |
2475 | IDXTA = 2 |
2476 | |
2477 | * common /DTIMPA/ |
2478 | ICENTR = 0 |
2479 | BIMIN = ZERO |
2480 | BIMAX = 1.0D10 |
2481 | XSFRAC = 1.0D0 |
2482 | |
2483 | * common /DTPRTA/ |
2484 | IP = 1 |
2485 | IPZ = 1 |
2486 | IT = 1 |
2487 | ITZ = 1 |
2488 | IJPROJ = 1 |
2489 | IBPROJ = 1 |
2490 | IJTARG = 1 |
2491 | IBTARG = 1 |
2492 | * common /DTGPRO/ |
2493 | VIRT = ZERO |
2494 | DO 14 I=1,4 |
2495 | PGAMM(I) = ZERO |
2496 | PLEPT0(I) = ZERO |
2497 | PLEPT1(I) = ZERO |
2498 | PNUCL(I) = ZERO |
2499 | 14 CONTINUE |
2500 | IDIREC = 0 |
2501 | |
2502 | * common /DTFOTI/ |
2503 | **sr 7.4.98: changed after corrected B-sampling |
2504 | C TAUFOR = 4.4D0 |
2505 | TAUFOR = 3.1D0 |
2506 | KTAUGE = 25 |
2507 | ITAUVE = 1 |
2508 | INCMOD = 1 |
2509 | LPAULI = .TRUE. |
2510 | |
2511 | * common /DTCHAI/ |
2512 | SEASQ = ONE |
2513 | MKCRON = 1 |
2514 | CRONCO = 0.64D0 |
2515 | ISICHA = 0 |
2516 | CUTOF = 100.0D0 |
2517 | LCO2CR = .FALSE. |
2518 | IRECOM = 1 |
2519 | LINTPT = .TRUE. |
2520 | |
2521 | * common /DTXCUT/ |
2522 | * definition of soft quark distributions |
2523 | XSEACU = 0.05D0 |
2524 | UNON = 2.0D0 |
2525 | UNOM = 1.5D0 |
2526 | UNOSEA = 5.0D0 |
2527 | * cutoff parameters for x-sampling |
2528 | CVQ = 1.0D0 |
2529 | CDQ = 2.0D0 |
2530 | C CSEA = 0.3D0 |
2531 | CSEA = 0.1D0 |
2532 | SSMIMA = 1.2D0 |
2533 | SSMIMQ = SSMIMA**2 |
2534 | VVMTHR = 2.0D0 |
2535 | |
2536 | * common /DTXSFL/ |
2537 | IFLUCT = 0 |
2538 | |
2539 | * common /DTFRPA/ |
2540 | PDB = 0.15D0 |
2541 | PDBSEA(1) = 0.0D0 |
2542 | PDBSEA(2) = 0.0D0 |
2543 | PDBSEA(3) = 0.0D0 |
2544 | ISIG0 = 0 |
2545 | IPI0 = 0 |
2546 | NMSTU = 0 |
2547 | NPARU = 0 |
2548 | NMSTJ = 0 |
2549 | NPARJ = 0 |
2550 | |
2551 | * common /DTDIQB/ |
2552 | DO 15 I=1,8 |
2553 | DBRKR(1,I) = 5.0D0 |
2554 | DBRKR(2,I) = 5.0D0 |
2555 | DBRKR(3,I) = 10.0D0 |
2556 | DBRKA(1,I) = ZERO |
2557 | DBRKA(2,I) = ZERO |
2558 | DBRKA(3,I) = ZERO |
2559 | 15 CONTINUE |
2560 | CHAM1 = 0.2D0 |
2561 | CHAM3 = 0.5D0 |
2562 | CHAB1 = 0.7D0 |
2563 | CHAB3 = 1.0D0 |
2564 | |
2565 | * common /DTFLG3/ |
2566 | ISINGD = 0 |
2567 | IDOUBD = 0 |
2568 | IFLAGD = 0 |
2569 | IDIFF = 0 |
2570 | |
2571 | * common /DTMODL/ |
2572 | MCGENE = 2 |
2573 | CMODEL(1) = 'DTUNUC ' |
2574 | CMODEL(2) = 'PHOJET ' |
2575 | CMODEL(3) = 'LEPTO ' |
2576 | CMODEL(4) = 'QNEUTRIN' |
2577 | LPHOIN = .TRUE. |
2578 | ELOJET = 5.0D0 |
2579 | |
2580 | * common /DTLCUT/ |
2581 | ECMIN = 3.5D0 |
2582 | ECMAX = 1.0D10 |
2583 | XBJMIN = ZERO |
2584 | ELMIN = ZERO |
2585 | EGMIN = ZERO |
2586 | EGMAX = 1.0D10 |
2587 | YMIN = TINY10 |
2588 | YMAX = 0.999D0 |
2589 | Q2MIN = TINY10 |
2590 | Q2MAX = 10.0D0 |
2591 | THMIN = ZERO |
2592 | THMAX = TWOPI |
2593 | Q2LI = ZERO |
2594 | Q2HI = 1.0D10 |
2595 | ECMLI = ZERO |
2596 | ECMHI = 1.0D10 |
2597 | |
2598 | * common /DTVDMP/ |
2599 | RL2 = 2.0D0 |
2600 | INTRGE(1) = 1 |
2601 | INTRGE(2) = 3 |
2602 | IDPDF = 2212 |
2603 | MODEGA = 4 |
2604 | ISHAD(1) = 1 |
2605 | ISHAD(2) = 1 |
2606 | ISHAD(3) = 1 |
2607 | EPSPOL = ZERO |
2608 | |
2609 | * common /DTGLGP/ |
2610 | JSTATB = 1000 |
2611 | JBINSB = 49 |
2612 | CGLB = ' ' |
2613 | IF (ITRSPT.EQ.1) THEN |
2614 | IOGLB = 100 |
2615 | ELSE |
2616 | IOGLB = 0 |
2617 | ENDIF |
2618 | LPROD = .TRUE. |
2619 | |
2620 | * common /DTHIS3/ |
2621 | DO 16 I=1,50 |
2622 | IHISPP(I) = 0 |
2623 | IHISXS(I) = 0 |
2624 | 16 CONTINUE |
2625 | IXSTBL = 0 |
2626 | |
2627 | * common /DTVARE/ |
2628 | VARELO = ZERO |
2629 | VAREHI = ZERO |
2630 | VARCLO = ZERO |
2631 | VARCHI = ZERO |
2632 | |
2633 | * common /DTDIHA/ |
2634 | DIBETA = -1.0D0 |
2635 | DIALPH = ZERO |
2636 | |
2637 | * common /LEPTOI/ |
2638 | RPPN = 0.0 |
2639 | LEPIN = 0 |
2640 | INTER = 0 |
2641 | |
2642 | * common /QNEUTO/ |
2643 | NEUTYP = 1 |
2644 | NEUDEC = 0 |
2645 | |
2646 | * common /DTEVNO/ |
2647 | NEVENT = 1 |
2648 | IF (ITRSPT.EQ.1) THEN |
2649 | ICASCA = 1 |
2650 | ELSE |
2651 | ICASCA = 0 |
2652 | ENDIF |
2653 | |
2654 | * default Lab.-energy |
2655 | EPN = 200.0D0 |
2656 | PPN = SQRT((EPN-AAM(IJPROJ))*(EPN+AAM(IJPROJ))) |
2657 | |
2658 | RETURN |
2659 | END |
2660 | * |
2661 | *===aaevt==============================================================* |
2662 | * |
2663 | CDECK ID>, DT_AAEVT |
2664 | SUBROUTINE DT_AAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR, |
2665 | & IDP,IGLAU) |
2666 | |
2667 | ************************************************************************ |
2668 | * This version dated 22.03.96 is written by S. Roesler. * |
2669 | ************************************************************************ |
2670 | |
2671 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
2672 | SAVE |
2673 | |
2674 | PARAMETER ( LINP = 5 , |
2675 | & LOUT = 6 , |
2676 | & LDAT = 9 ) |
2677 | |
2678 | PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) |
2679 | |
2680 | * emulsion treatment |
2681 | COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX), |
2682 | & NCOMPO,IEMUL |
2683 | * event flag |
2684 | COMMON /DTEVNO/ NEVENT,ICASCA |
2685 | |
2686 | CHARACTER*8 DATE,HHMMSS |
2687 | DIMENSION IDMNYR(3) |
2688 | |
2689 | KKMAT = 1 |
2690 | NMSG = MAX(NEVTS/100,1) |
2691 | |
2692 | * initialization of run-statistics and histograms |
2693 | CALL DT_STATIS(1) |
2694 | |
2695 | CALL PHO_PHIST(1000,DUM) |
2696 | |
2697 | * initialization of Glauber-formalism |
2698 | IF (NCOMPO.LE.0) THEN |
2699 | CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU) |
2700 | ELSE |
2701 | DO 1 I=1,NCOMPO |
2702 | CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0) |
2703 | 1 CONTINUE |
2704 | ENDIF |
2705 | CALL DT_SIGEMU |
2706 | |
2707 | CALL IDATE(IDMNYR) |
2708 | WRITE(DATE,'(I2,''/'',I2,''/'',I2)') |
2709 | & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100) |
2710 | CALL ITIME(IDMNYR) |
2711 | WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)') |
2712 | & IDMNYR(1),IDMNYR(2),IDMNYR(3) |
2713 | WRITE(LOUT,1001) DATE,HHMMSS |
2714 | 1001 FORMAT(/,' DT_AAEVT: Initialisation finished. ( Date: ',A8, |
2715 | & ' Time: ',A8,' )') |
2716 | |
2717 | * generate NEVTS events |
2718 | DO 2 IEVT=1,NEVTS |
2719 | |
2720 | * print run-status message |
2721 | IF (MOD(IEVT,NMSG).EQ.0) THEN |
2722 | CALL IDATE(IDMNYR) |
2723 | WRITE(DATE,'(I2,''/'',I2,''/'',I2)') |
2724 | & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100) |
2725 | CALL ITIME(IDMNYR) |
2726 | WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)') |
2727 | & IDMNYR(1),IDMNYR(2),IDMNYR(3) |
2728 | WRITE(LOUT,1000) IEVT-1,NEVTS,DATE,HHMMSS |
2729 | 1000 FORMAT(/,1X,I8,' out of ',I8,' events sampled ( Date: ',A, |
2730 | & ' Time: ',A,' )',/) |
2731 | C WRITE(LOUT,1000) IEVT-1 |
2732 | C1000 FORMAT(1X,I8,' events sampled') |
2733 | ENDIF |
2734 | NEVENT = IEVT |
2735 | * treat nuclear emulsions |
2736 | IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0) |
2737 | * composite targets only |
2738 | KKMAT = -KKMAT |
2739 | * sample this event |
2740 | CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,KKMAT,IREJ) |
2741 | |
2742 | CALL PHO_PHIST(2000,DUM) |
2743 | |
2744 | 2 CONTINUE |
2745 | |
2746 | * print run-statistics and histograms to output-unit 6 |
2747 | |
2748 | CALL PHO_PHIST(3000,DUM) |
2749 | |
2750 | CALL DT_STATIS(2) |
2751 | |
2752 | RETURN |
2753 | END |
2754 | * |
2755 | *===laevt==============================================================* |
2756 | * |
2757 | CDECK ID>, DT_LAEVT |
2758 | SUBROUTINE DT_LAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR, |
2759 | & IDP,IGLAU) |
2760 | |
2761 | ************************************************************************ |
2762 | * Interface to run DPMJET for lepton-nucleus interactions. * |
2763 | * Kinematics is sampled using the equivalent photon approximation * |
2764 | * Based on GPHERA-routine by R. Engel. * |
2765 | * This version dated 23.03.96 is written by S. Roesler. * |
2766 | ************************************************************************ |
2767 | |
2768 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
2769 | SAVE |
2770 | |
2771 | PARAMETER ( LINP = 5 , |
2772 | & LOUT = 6 , |
2773 | & LDAT = 9 ) |
2774 | |
2775 | PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4, |
2776 | & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0) |
2777 | PARAMETER (TWOPI = 6.283185307179586454D+00, |
2778 | & PI = TWOPI/TWO, |
2779 | & ALPHEM = ONE/137.0D0) |
2780 | |
2781 | C CHARACTER*72 HEADER |
2782 | |
2783 | * particle properties (BAMJET index convention) |
2784 | CHARACTER*8 ANAME |
2785 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
2786 | & IICH(210),IIBAR(210),K1(210),K2(210) |
2787 | * event history |
2788 | |
2789 | PARAMETER (NMXHKK=200000) |
2790 | |
2791 | COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK), |
2792 | & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK), |
2793 | & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK) |
2794 | * extended event history |
2795 | COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK), |
2796 | & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), |
2797 | & IHIST(2,NMXHKK) |
2798 | * kinematical cuts for lepton-nucleus interactions |
2799 | COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX, |
2800 | & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI |
2801 | * properties of interacting particles |
2802 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
2803 | * properties of photon/lepton projectiles |
2804 | COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC |
2805 | * kinematics at lepton-gamma vertex |
2806 | COMMON /DTLGVX/ PPL0(4),PPL1(4),PPG(4),PPA(4) |
2807 | * flags for activated histograms |
2808 | COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL |
2809 | |
2810 | PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) |
2811 | |
2812 | * emulsion treatment |
2813 | COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX), |
2814 | & NCOMPO,IEMUL |
2815 | * Glauber formalism: cross sections |
2816 | COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2, |
2817 | & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX), |
2818 | & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX), |
2819 | & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX), |
2820 | & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX), |
2821 | & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX), |
2822 | & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX), |
2823 | & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX), |
2824 | & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX), |
2825 | & BSLOPE,NEBINI,NQBINI |
2826 | * nucleon-nucleon event-generator |
2827 | CHARACTER*8 CMODEL |
2828 | LOGICAL LPHOIN |
2829 | COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN |
2830 | * flags for input different options |
2831 | LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO |
2832 | COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6), |
2833 | & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT |
2834 | * event flag |
2835 | COMMON /DTEVNO/ NEVENT,ICASCA |
2836 | |
2837 | DIMENSION XDUMB(40),BGTA(4) |
2838 | |
2839 | * LEPTO |
2840 | IF (MCGENE.EQ.3) THEN |
2841 | |
2842 | STOP ' This version does not contain LEPTO !' |
2843 | |
2844 | ENDIF |
2845 | |
2846 | KKMAT = 1 |
2847 | NMSG = MAX(NEVTS/10,1) |
2848 | |
2849 | * mass of incident lepton |
2850 | AMLPT = AAM(IDP) |
2851 | AMLPT2 = AMLPT**2 |
2852 | IDPPDG = IDT_IPDGHA(IDP) |
2853 | |
2854 | * consistency of kinematical limits |
2855 | Q2MIN = MAX(Q2MIN,TINY10) |
2856 | Q2MAX = MAX(Q2MAX,TINY10) |
2857 | YMIN = MIN(MAX(YMIN,TINY10),0.999D0) |
2858 | YMAX = MIN(MAX(YMAX,TINY10),0.999D0) |
2859 | |
2860 | * total energy of the lepton-nucleon system |
2861 | PTOTLN = SQRT( (PLEPT0(1)+PNUCL(1))**2+(PLEPT0(2)+PNUCL(2))**2 |
2862 | & +(PLEPT0(3)+PNUCL(3))**2 ) |
2863 | ETOTLN = PLEPT0(4)+PNUCL(4) |
2864 | ECMLN = SQRT((ETOTLN-PTOTLN)*(ETOTLN+PTOTLN)) |
2865 | ECMAX = MIN(ECMAX,ECMLN) |
2866 | WRITE(LOUT,1003) ECMIN,ECMAX,YMIN,YMAX,Q2MIN,Q2MAX,EGMIN, |
2867 | & THMIN,THMAX,ELMIN |
2868 | 1003 FORMAT(1X,'LAEVT:',16X,'kinematical cuts',/,22X, |
2869 | & '------------------',/,9X,'W (min) =', |
2870 | & F7.1,' GeV (max) =',F7.1,' GeV',/,9X,'y (min) =', |
2871 | & F7.3,8X,'(max) =',F7.3,/,9X,'Q^2 (min) =',F7.1, |
2872 | & ' GeV^2 (max) =',F7.1,' GeV^2',/,' (Lab) E_g (min) =' |
2873 | & ,F7.1,' GeV',/,' (Lab) theta (min) =',F7.4,8X,'(max) =', |
2874 | & F7.4,' for E_lpt >',F7.1,' GeV',/) |
2875 | |
2876 | * Lorentz-parameter for transf. into Lab |
2877 | BGTA(1) = PNUCL(1)/AAM(1) |
2878 | BGTA(2) = PNUCL(2)/AAM(1) |
2879 | BGTA(3) = PNUCL(3)/AAM(1) |
2880 | BGTA(4) = PNUCL(4)/AAM(1) |
2881 | * LT of incident lepton into Lab and dump it in DTEVT1 |
2882 | CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3), |
2883 | & PLEPT0(1),PLEPT0(2),PLEPT0(3),PLEPT0(4), |
2884 | & PLTOT,PPL0(1),PPL0(2),PPL0(3),PPL0(4)) |
2885 | CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3), |
2886 | & PNUCL(1),PNUCL(2),PNUCL(3),PNUCL(4), |
2887 | & PLTOT,PPA(1),PPA(2),PPA(3),PPA(4)) |
2888 | * maximum energy of photon nucleon system |
2889 | PTOTGN = SQRT((YMAX*PPL0(1)+PPA(1))**2+(YMAX*PPL0(2)+PPA(2))**2 |
2890 | & +(YMAX*PPL0(3)+PPA(3))**2) |
2891 | ETOTGN = YMAX*PPL0(4)+PPA(4) |
2892 | EGNMAX = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN)) |
2893 | EGNMAX = MIN(EGNMAX,ECMAX) |
2894 | * minimum energy of photon nucleon system |
2895 | PTOTGN = SQRT((YMIN*PPL0(1)+PPA(1))**2+(YMIN*PPL0(2)+PPA(2))**2 |
2896 | & +(YMIN*PPL0(3)+PPA(3))**2) |
2897 | ETOTGN = YMIN*PPL0(4)+PPA(4) |
2898 | EGNMIN = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN)) |
2899 | EGNMIN = MAX(EGNMIN,ECMIN) |
2900 | |
2901 | * limits for Glauber-initialization |
2902 | Q2LI = Q2MIN |
2903 | Q2HI = MAX(Q2LI,MIN(Q2HI,Q2MAX)) |
2904 | ECMLI = MAX(EGNMIN,THREE) |
2905 | ECMHI = EGNMAX |
2906 | WRITE(LOUT,1004) EGNMIN,EGNMAX,ECMLI,ECMHI,Q2LI,Q2HI |
2907 | 1004 FORMAT(1X,'resulting limits:',/,9X,'W (min) =',F7.1, |
2908 | & ' GeV (max) =',F7.1,' GeV',/,/,' limits for ', |
2909 | & 'Glauber-initialization:',/,9X,'W (min) =',F7.1, |
2910 | & ' GeV (max) =',F7.1,' GeV',/,9X,'Q^2 (min) =',F7.1, |
2911 | & ' GeV^2 (max) =',F7.1,' GeV^2',/) |
2912 | * initialization of Glauber-formalism |
2913 | IF (NCOMPO.LE.0) THEN |
2914 | CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU) |
2915 | ELSE |
2916 | DO 9 I=1,NCOMPO |
2917 | CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0) |
2918 | 9 CONTINUE |
2919 | ENDIF |
2920 | CALL DT_SIGEMU |
2921 | |
2922 | * initialization of run-statistics and histograms |
2923 | CALL DT_STATIS(1) |
2924 | |
2925 | CALL PHO_PHIST(1000,DUM) |
2926 | |
2927 | * maximum photon-nucleus cross section |
2928 | I1 = 1 |
2929 | I2 = 1 |
2930 | RAT = ONE |
2931 | IF (EGNMAX.GE.ECMNN(NEBINI)) THEN |
2932 | I1 = NEBINI |
2933 | I2 = NEBINI |
2934 | RAT = ONE |
2935 | ELSEIF (EGNMAX.GT.ECMNN(1)) THEN |
2936 | DO 5 I=2,NEBINI |
2937 | IF (EGNMAX.LT.ECMNN(I)) THEN |
2938 | I1 = I-1 |
2939 | I2 = I |
2940 | RAT = (EGNMAX-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1)) |
2941 | GOTO 6 |
2942 | ENDIF |
2943 | 5 CONTINUE |
2944 | 6 CONTINUE |
2945 | ENDIF |
2946 | SIGMAX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1)) |
2947 | EGNXX = EGNMAX |
2948 | I1 = 1 |
2949 | I2 = 1 |
2950 | RAT = ONE |
2951 | IF (EGNMIN.GE.ECMNN(NEBINI)) THEN |
2952 | I1 = NEBINI |
2953 | I2 = NEBINI |
2954 | RAT = ONE |
2955 | ELSEIF (EGNMIN.GT.ECMNN(1)) THEN |
2956 | DO 7 I=2,NEBINI |
2957 | IF (EGNMIN.LT.ECMNN(I)) THEN |
2958 | I1 = I-1 |
2959 | I2 = I |
2960 | RAT = (EGNMIN-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1)) |
2961 | GOTO 8 |
2962 | ENDIF |
2963 | 7 CONTINUE |
2964 | 8 CONTINUE |
2965 | ENDIF |
2966 | SIGXX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1)) |
2967 | IF (SIGXX.GT.SIGMAX) EGNXX = EGNMIN |
2968 | SIGMAX = MAX(SIGMAX,SIGXX) |
2969 | WRITE(LOUT,'(9X,A,F8.3,A)') 'Sigma_tot (max) =',SIGMAX,' mb' |
2970 | |
2971 | * plot photon flux table |
2972 | AYMIN = LOG(YMIN) |
2973 | AYMAX = LOG(YMAX) |
2974 | AYRGE = AYMAX-AYMIN |
2975 | MAXTAB = 50 |
2976 | ADY = LOG(YMAX/YMIN)/DBLE(MAXTAB-1) |
2977 | C WRITE(LOUT,'(/,1X,A)') 'LAEVT: photon flux ' |
2978 | DO 1 I=1,MAXTAB |
2979 | Y = EXP(AYMIN+ADY*DBLE(I-1)) |
2980 | Q2LOW = MAX(Q2MIN,AMLPT2*Y**2/(ONE-Y)) |
2981 | FF1 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW) |
2982 | & -TWO*AMLPT2*Y*(ONE/Q2LOW-ONE/Q2MAX)) |
2983 | FF2 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW) |
2984 | & -TWO*(ONE-Y)/Y*(ONE-Q2LOW/Q2MAX)) |
2985 | C WRITE(LOUT,'(5X,3E15.4)') Y,FF1,FF2 |
2986 | 1 CONTINUE |
2987 | |
2988 | * maximum residual weight for flux sampling (dy/y) |
2989 | YY = YMIN |
2990 | Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY)) |
2991 | WGHMAX = (ONE+(ONE-YY)**2)*LOG(Q2MAX/Q2LOW) |
2992 | & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY |
2993 | |
2994 | CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY0) |
2995 | CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY1) |
2996 | CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY2) |
2997 | CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ0) |
2998 | CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ1) |
2999 | CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ2) |
3000 | CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE0) |
3001 | CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE1) |
3002 | CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE2) |
3003 | CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU0) |
3004 | CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU1) |
3005 | CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU2) |
3006 | XBLOW = 0.001D0 |
3007 | CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX0) |
3008 | CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX1) |
3009 | CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX2) |
3010 | |
3011 | ITRY = 0 |
3012 | ITRW = 0 |
3013 | NC0 = 0 |
3014 | NC1 = 0 |
3015 | |
3016 | * generate events |
3017 | DO 2 IEVT=1,NEVTS |
3018 | IF (MOD(IEVT,NMSG).EQ.0) THEN |
3019 | C OPEN(LDAT,FILE='/scrtch3/hr/sroesler/statusd5.out', |
3020 | C & STATUS='UNKNOWN') |
3021 | WRITE(LOUT,'(1X,I8,A)') IEVT-1,' events sampled' |
3022 | C CLOSE(LDAT) |
3023 | ENDIF |
3024 | NEVENT = IEVT |
3025 | |
3026 | 100 CONTINUE |
3027 | ITRY = ITRY+1 |
3028 | |
3029 | * sample y |
3030 | 101 CONTINUE |
3031 | ITRW = ITRW+1 |
3032 | YY = EXP(AYRGE*DT_RNDM(RAT)+AYMIN) |
3033 | Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY)) |
3034 | Q2LOG = LOG(Q2MAX/Q2LOW) |
3035 | WGH = (ONE+(ONE-YY)**2)*Q2LOG |
3036 | & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY |
3037 | IF (WGHMAX.LT.WGH) WRITE(LOUT,1000) YY,WGHMAX,WGH |
3038 | 1000 FORMAT(1X,'LAEVT: weight error!',3E12.5) |
3039 | IF (DT_RNDM(YY)*WGHMAX.GT.WGH) GOTO 101 |
3040 | |
3041 | * sample Q2 |
3042 | YEFF = ONE+(ONE-YY)**2 |
3043 | 102 CONTINUE |
3044 | Q2 = Q2LOW*EXP(Q2LOG*DT_RNDM(YY)) |
3045 | WGH = (YEFF-TWO*(ONE-YY)*Q2LOW/Q2)/YEFF |
3046 | IF (WGH.LT.DT_RNDM(Q2)) GOTO 102 |
3047 | |
3048 | c NC0 = NC0+1 |
3049 | c CALL DT_FILHGR(YY,ONE,IHFLY0,NC0) |
3050 | c CALL DT_FILHGR(Q2,ONE,IHFLQ0,NC0) |
3051 | |
3052 | * kinematics at lepton-photon vertex |
3053 | * scattered electron |
3054 | YQ2 = SQRT((ONE-YY)*Q2) |
3055 | Q2E = Q2/(4.0D0*PLEPT0(4)) |
3056 | E1Y = (ONE-YY)*PLEPT0(4) |
3057 | CALL DT_DSFECF(SIF,COF) |
3058 | PLEPT1(1) = YQ2*COF |
3059 | PLEPT1(2) = YQ2*SIF |
3060 | PLEPT1(3) = E1Y-Q2E |
3061 | PLEPT1(4) = E1Y+Q2E |
3062 | C THETA = ACOS( (E1Y-Q2E)/(E1Y+Q2E) ) |
3063 | * radiated photon |
3064 | PGAMM(1) = -PLEPT1(1) |
3065 | PGAMM(2) = -PLEPT1(2) |
3066 | PGAMM(3) = PLEPT0(3)-PLEPT1(3) |
3067 | PGAMM(4) = PLEPT0(4)-PLEPT1(4) |
3068 | * E_cm cut |
3069 | PTOTGN = SQRT( (PGAMM(1)+PNUCL(1))**2+(PGAMM(2)+PNUCL(2))**2 |
3070 | & +(PGAMM(3)+PNUCL(3))**2 ) |
3071 | ETOTGN = PGAMM(4)+PNUCL(4) |
3072 | ECMGN = (ETOTGN-PTOTGN)*(ETOTGN+PTOTGN) |
3073 | IF (ECMGN.LT.0.1D0) GOTO 101 |
3074 | ECMGN = SQRT(ECMGN) |
3075 | IF ((ECMGN.LT.ECMIN).OR.(ECMGN.GT.ECMAX)) GOTO 101 |
3076 | |
3077 | * Lorentz-transformation into nucleon-rest system |
3078 | CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3), |
3079 | & PGAMM(1),PGAMM(2),PGAMM(3),PGAMM(4), |
3080 | & PGTOT,PPG(1),PPG(2),PPG(3),PPG(4)) |
3081 | CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3), |
3082 | & PLEPT1(1),PLEPT1(2),PLEPT1(3),PLEPT1(4), |
3083 | & PLTOT,PPL1(1),PPL1(2),PPL1(3),PPL1(4)) |
3084 | * temporary checks.. |
3085 | Q2TMP = ABS(PPG(4)**2-PGTOT**2) |
3086 | IF (ABS(Q2-Q2TMP).GT.0.01D0) WRITE(LOUT,1001) Q2,Q2TMP |
3087 | 1001 FORMAT(1X,'LAEVT: inconsistent kinematics (Q2,Q2TMP) ', |
3088 | & 2F10.4) |
3089 | ECMTMP = SQRT((PPG(4)+AAM(1)-PGTOT)*(PPG(4)+AAM(1)+PGTOT)) |
3090 | IF (ABS(ECMGN-ECMTMP).GT.TINY10) WRITE(LOUT,1002) ECMGN,ECMTMP |
3091 | 1002 FORMAT(1X,'LAEVT: inconsistent kinematics (ECMGN,ECMTMP) ', |
3092 | & 2F10.2) |
3093 | YYTMP = PPG(4)/PPL0(4) |
3094 | IF (ABS(YY-YYTMP).GT.0.01D0) WRITE(LOUT,1005) YY,YYTMP |
3095 | 1005 FORMAT(1X,'LAEVT: inconsistent kinematics (YY,YYTMP) ', |
3096 | & 2F10.4) |
3097 | |
3098 | * lepton tagger (Lab) |
3099 | THETA = ACOS( PPL1(3)/PLTOT ) |
3100 | IF (PPL1(4).GT.ELMIN) THEN |
3101 | IF ((THETA.LT.THMIN).OR.(THETA.GT.THMAX)) GOTO 101 |
3102 | ENDIF |
3103 | * photon energy-cut (Lab) |
3104 | IF (PPG(4).LT.EGMIN) GOTO 101 |
3105 | IF (PPG(4).GT.EGMAX) GOTO 101 |
3106 | * x_Bj cut |
3107 | XBJ = ABS(Q2/(1.876D0*PPG(4))) |
3108 | IF (XBJ.LT.XBJMIN) GOTO 101 |
3109 | |
3110 | NC0 = NC0+1 |
3111 | CALL DT_FILHGR( Q2,ONE,IHFLQ0,NC0) |
3112 | CALL DT_FILHGR( YY,ONE,IHFLY0,NC0) |
3113 | CALL DT_FILHGR( XBJ,ONE,IHFLX0,NC0) |
3114 | CALL DT_FILHGR(PPG(4),ONE,IHFLU0,NC0) |
3115 | CALL DT_FILHGR( ECMGN,ONE,IHFLE0,NC0) |
3116 | |
3117 | * rotation angles against z-axis |
3118 | COD = PPG(3)/PGTOT |
3119 | C SID = SQRT((ONE-COD)*(ONE+COD)) |
3120 | PPT = SQRT(PPG(1)**2+PPG(2)**2) |
3121 | SID = PPT/PGTOT |
3122 | COF = ONE |
3123 | SIF = ZERO |
3124 | IF (PGTOT*SID.GT.TINY10) THEN |
3125 | COF = PPG(1)/(SID*PGTOT) |
3126 | SIF = PPG(2)/(SID*PGTOT) |
3127 | ANORF = SQRT(COF*COF+SIF*SIF) |
3128 | COF = COF/ANORF |
3129 | SIF = SIF/ANORF |
3130 | ENDIF |
3131 | |
3132 | IF (IXSTBL.EQ.0) THEN |
3133 | * change to photon projectile |
3134 | IJPROJ = 7 |
3135 | * set virtuality |
3136 | VIRT = Q2 |
3137 | * re-initialize LTs with new kinematics |
3138 | * !!PGAMM ist set in cms (ECMGN) along z |
3139 | EPN = ZERO |
3140 | PPN = ZERO |
3141 | CALL DT_LTINI(IJPROJ,IJTARG,EPN,PPN,ECMGN,0) |
3142 | * Introduced by Chiara -> force CMS-system |
3143 | * IFRAME = 2 |
3144 | * to force Lab-system |
3145 | IFRAME = 1 |
3146 | * get emulsion component if requested |
3147 | IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0) |
3148 | * convolute with cross section |
3149 | CALL DT_SIGGAT(Q2LOW,EGNXX,STOTX,KKMAT) |
3150 | CALL DT_SIGGAT(Q2,ECMGN,STOT,KKMAT) |
3151 | IF (STOTX.LT.STOT) WRITE(LOUT,'(1X,A,/,6E12.3)') |
3152 | & 'LAEVT: warning STOTX<STOT ! ',Q2LOW,EGNMAX,STOTX, |
3153 | & Q2,ECMGN,STOT |
3154 | IF (DT_RNDM(Q2)*STOTX.GT.STOT) GOTO 100 |
3155 | NC1 = NC1+1 |
3156 | CALL DT_FILHGR( Q2,ONE,IHFLQ1,NC1) |
3157 | CALL DT_FILHGR( YY,ONE,IHFLY1,NC1) |
3158 | CALL DT_FILHGR( XBJ,ONE,IHFLX1,NC1) |
3159 | CALL DT_FILHGR(PPG(4),ONE,IHFLU1,NC1) |
3160 | CALL DT_FILHGR( ECMGN,ONE,IHFLE1,NC1) |
3161 | * composite targets only |
3162 | KKMAT = -KKMAT |
3163 | * sample this event |
3164 | CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IJPROJ,EPN,KKMAT, |
3165 | & IREJ) |
3166 | * rotate momenta of final state particles back in photon-nucleon syst. |
3167 | DO 4 I=NPOINT(4),NHKK |
3168 | IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR. |
3169 | & (ISTHKK(I).EQ.1001)) THEN |
3170 | PX = PHKK(1,I) |
3171 | PY = PHKK(2,I) |
3172 | PZ = PHKK(3,I) |
3173 | CALL DT_MYTRAN(1,PX,PY,PZ,COD,SID,COF,SIF, |
3174 | & PHKK(1,I),PHKK(2,I),PHKK(3,I)) |
3175 | ENDIF |
3176 | 4 CONTINUE |
3177 | ENDIF |
3178 | |
3179 | CALL DT_FILHGR( Q2,ONE,IHFLQ2,NC1) |
3180 | CALL DT_FILHGR( YY,ONE,IHFLY2,NC1) |
3181 | CALL DT_FILHGR( XBJ,ONE,IHFLX2,NC1) |
3182 | CALL DT_FILHGR(PPG(4),ONE,IHFLU2,NC1) |
3183 | CALL DT_FILHGR( ECMGN,ONE,IHFLE2,NC1) |
3184 | |
3185 | * dump this event to histograms |
3186 | |
3187 | CALL PHO_PHIST(2000,DUM) |
3188 | |
3189 | 2 CONTINUE |
3190 | |
3191 | WGY = ALPHEM/TWOPI*WGHMAX*DBLE(ITRY)/DBLE(ITRW) |
3192 | WGY = WGY*LOG(YMAX/YMIN) |
3193 | WEIGHT = WGY*SIGMAX*DBLE(NEVTS)/DBLE(ITRY) |
3194 | |
3195 | C HEADER = ' LAEVT: Q^2 distribution 0' |
3196 | C CALL DT_OUTHGR(IHFLQ0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3197 | C HEADER = ' LAEVT: Q^2 distribution 1' |
3198 | C CALL DT_OUTHGR(IHFLQ1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3199 | C HEADER = ' LAEVT: Q^2 distribution 2' |
3200 | C CALL DT_OUTHGR(IHFLQ2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3201 | C HEADER = ' LAEVT: y distribution 0' |
3202 | C CALL DT_OUTHGR(IHFLY0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3203 | C HEADER = ' LAEVT: y distribution 1' |
3204 | C CALL DT_OUTHGR(IHFLY1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3205 | C HEADER = ' LAEVT: y distribution 2' |
3206 | C CALL DT_OUTHGR(IHFLY2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3207 | C HEADER = ' LAEVT: x distribution 0' |
3208 | C CALL DT_OUTHGR(IHFLX0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3209 | C HEADER = ' LAEVT: x distribution 1' |
3210 | C CALL DT_OUTHGR(IHFLX1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3211 | C HEADER = ' LAEVT: x distribution 2' |
3212 | C CALL DT_OUTHGR(IHFLX2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3213 | C HEADER = ' LAEVT: E_g distribution 0' |
3214 | C CALL DT_OUTHGR(IHFLU0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3215 | C HEADER = ' LAEVT: E_g distribution 1' |
3216 | C CALL DT_OUTHGR(IHFLU1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3217 | C HEADER = ' LAEVT: E_g distribution 2' |
3218 | C CALL DT_OUTHGR(IHFLU2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3219 | C HEADER = ' LAEVT: E_c distribution 0' |
3220 | C CALL DT_OUTHGR(IHFLE0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3221 | C HEADER = ' LAEVT: E_c distribution 1' |
3222 | C CALL DT_OUTHGR(IHFLE1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3223 | C HEADER = ' LAEVT: E_c distribution 2' |
3224 | C CALL DT_OUTHGR(IHFLE2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1) |
3225 | |
3226 | * print run-statistics and histograms to output-unit 6 |
3227 | |
3228 | CALL PHO_PHIST(3000,DUM) |
3229 | |
3230 | IF (IXSTBL.EQ.0) CALL DT_STATIS(2) |
3231 | |
3232 | RETURN |
3233 | END |
3234 | * |
3235 | *===dtuini=============================================================* |
3236 | * |
3237 | CDECK ID>, DT_DTUINI |
3238 | SUBROUTINE DT_DTUINI(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR, |
3239 | & IDP,IEMU) |
3240 | |
3241 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
3242 | SAVE |
3243 | |
3244 | PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) |
3245 | |
3246 | * emulsion treatment |
3247 | COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX), |
3248 | & NCOMPO,IEMUL |
3249 | * Glauber formalism: flags and parameters for statistics |
3250 | LOGICAL LPROD |
3251 | CHARACTER*8 CGLB |
3252 | COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD |
3253 | |
3254 | CALL DT_INIT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,IGLAU) |
3255 | CALL DT_STATIS(1) |
3256 | |
3257 | CALL PHO_PHIST(1000,DUM) |
3258 | |
3259 | IF (NCOMPO.LE.0) THEN |
3260 | CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU) |
3261 | ELSE |
3262 | DO 1 I=1,NCOMPO |
3263 | CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0) |
3264 | 1 CONTINUE |
3265 | ENDIF |
3266 | IF (IOGLB.NE.100) CALL DT_SIGEMU |
3267 | IEMU = IEMUL |
3268 | |
3269 | RETURN |
3270 | END |
3271 | * |
3272 | *===dtuout=============================================================* |
3273 | * |
3274 | CDECK ID>, DT_DTUOUT |
3275 | SUBROUTINE DT_DTUOUT |
3276 | |
3277 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
3278 | SAVE |
3279 | |
3280 | CALL PHO_PHIST(3000,DUM) |
3281 | |
3282 | CALL DT_STATIS(2) |
3283 | |
3284 | RETURN |
3285 | END |
3286 | * |
3287 | *===beam===============================================================* |
3288 | * |
3289 | CDECK ID>, DT_BEAMPR |
3290 | SUBROUTINE DT_BEAMPR(WHAT,PLAB,MODE) |
3291 | |
3292 | ************************************************************************ |
3293 | * Initialization of event generation * |
3294 | * This version dated 7.4.98 is written by S. Roesler. * |
3295 | ************************************************************************ |
3296 | |
3297 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
3298 | SAVE |
3299 | |
3300 | PARAMETER ( LINP = 5 , |
3301 | & LOUT = 6 , |
3302 | & LDAT = 9 ) |
3303 | |
3304 | PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10) |
3305 | PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0) |
3306 | |
3307 | LOGICAL LBEAM |
3308 | |
3309 | * event history |
3310 | |
3311 | PARAMETER (NMXHKK=200000) |
3312 | |
3313 | COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK), |
3314 | & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK), |
3315 | & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK) |
3316 | * extended event history |
3317 | COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK), |
3318 | & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), |
3319 | & IHIST(2,NMXHKK) |
3320 | * properties of interacting particles |
3321 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
3322 | * particle properties (BAMJET index convention) |
3323 | CHARACTER*8 ANAME |
3324 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
3325 | & IICH(210),IIBAR(210),K1(210),K2(210) |
3326 | * beam momenta |
3327 | COMMON /DTBEAM/ P1(4),P2(4) |
3328 | |
3329 | C DIMENSION WHAT(6),P1(4),P2(4),P1CMS(4),P2CMS(4) |
3330 | DIMENSION WHAT(6),P1CMS(4),P2CMS(4) |
3331 | |
3332 | DATA LBEAM /.FALSE./ |
3333 | |
3334 | GOTO (1,2) MODE |
3335 | |
3336 | 1 CONTINUE |
3337 | |
3338 | E1 = WHAT(1) |
3339 | IF (E1.LT.ZERO) E1 = DBLE(IPZ)/DBLE(IP)*ABS(WHAT(1)) |
3340 | E2 = WHAT(2) |
3341 | IF (E2.LT.ZERO) E2 = DBLE(ITZ)/DBLE(IT)*ABS(WHAT(2)) |
3342 | PP1 = SQRT( (E1+AAM(IJPROJ))*(E1-AAM(IJPROJ)) ) |
3343 | PP2 = SQRT( (E2+AAM(IJTARG))*(E2-AAM(IJTARG)) ) |
3344 | TH = 1.D-6*WHAT(3)/2.D0 |
3345 | PH = WHAT(4)*BOG |
3346 | P1(1) = PP1*SIN(TH)*COS(PH) |
3347 | P1(2) = PP1*SIN(TH)*SIN(PH) |
3348 | P1(3) = PP1*COS(TH) |
3349 | P1(4) = E1 |
3350 | P2(1) = PP2*SIN(TH)*COS(PH) |
3351 | P2(2) = PP2*SIN(TH)*SIN(PH) |
3352 | P2(3) = -PP2*COS(TH) |
3353 | P2(4) = E2 |
3354 | ECM = SQRT( (P1(4)+P2(4))**2-(P1(1)+P2(1))**2-(P1(2)+P2(2))**2 |
3355 | & -(P1(3)+P2(3))**2 ) |
3356 | ELAB = (ECM**2-AAM(IJPROJ)**2-AAM(IJTARG)**2)/(2.0D0*AAM(IJTARG)) |
3357 | PLAB = SQRT( (ELAB+AAM(IJPROJ))*(ELAB-AAM(IJPROJ)) ) |
3358 | BGX = (P1(1)+P2(1))/ECM |
3359 | BGY = (P1(2)+P2(2))/ECM |
3360 | BGZ = (P1(3)+P2(3))/ECM |
3361 | BGE = (P1(4)+P2(4))/ECM |
3362 | CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P1(1),P1(2),P1(3),P1(4), |
3363 | & P1TOT,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4)) |
3364 | CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P2(1),P2(2),P2(3),P2(4), |
3365 | & P2TOT,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4)) |
3366 | COD = P1CMS(3)/P1TOT |
3367 | C SID = SQRT((ONE-COD)*(ONE+COD)) |
3368 | PPT = SQRT(P1CMS(1)**2+P1CMS(2)**2) |
3369 | SID = PPT/P1TOT |
3370 | COF = ONE |
3371 | SIF = ZERO |
3372 | IF (P1TOT*SID.GT.TINY10) THEN |
3373 | COF = P1CMS(1)/(SID*P1TOT) |
3374 | SIF = P1CMS(2)/(SID*P1TOT) |
3375 | ANORF = SQRT(COF*COF+SIF*SIF) |
3376 | COF = COF/ANORF |
3377 | SIF = SIF/ANORF |
3378 | ENDIF |
3379 | **check |
3380 | C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4) |
3381 | C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4) |
3382 | C WRITE(LOUT,'(5E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4),P1TOT |
3383 | C WRITE(LOUT,'(5E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4),P2TOT |
3384 | C PAX = ZERO |
3385 | C PAY = ZERO |
3386 | C PAZ = P1TOT |
3387 | C PAE = SQRT(AAM(IJPROJ)**2+PAZ**2) |
3388 | C PBX = ZERO |
3389 | C PBY = ZERO |
3390 | C PBZ = -P2TOT |
3391 | C PBE = SQRT(AAM(IJTARG)**2+PBZ**2) |
3392 | C WRITE(LOUT,'(4E15.4)') PAX,PAY,PAZ,PAE |
3393 | C WRITE(LOUT,'(4E15.4)') PBX,PBY,PBZ,PBE |
3394 | C CALL DT_MYTRAN(1,PAX,PAY,PAZ,COD,SID,COF,SIF, |
3395 | C & P1CMS(1),P1CMS(2),P1CMS(3)) |
3396 | C CALL DT_MYTRAN(1,PBX,PBY,PBZ,COD,SID,COF,SIF, |
3397 | C & P2CMS(1),P2CMS(2),P2CMS(3)) |
3398 | C WRITE(LOUT,'(4E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4) |
3399 | C WRITE(LOUT,'(4E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4) |
3400 | C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4), |
3401 | C & P1TOT,P1(1),P1(2),P1(3),P1(4)) |
3402 | C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4), |
3403 | C & P2TOT,P2(1),P2(2),P2(3),P2(4)) |
3404 | C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4) |
3405 | C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4) |
3406 | C STOP |
3407 | ** |
3408 | |
3409 | LBEAM = .TRUE. |
3410 | |
3411 | RETURN |
3412 | |
3413 | 2 CONTINUE |
3414 | |
3415 | IF (LBEAM) THEN |
3416 | IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN |
3417 | DO 20 I=NPOINT(4),NHKK |
3418 | IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR. |
3419 | & (ISTHKK(I).EQ.1001)) THEN |
3420 | CALL DT_MYTRAN(1,PHKK(1,I),PHKK(2,I),PHKK(3,I), |
3421 | & COD,SID,COF,SIF,PXCMS,PYCMS,PZCMS) |
3422 | PECMS = PHKK(4,I) |
3423 | CALL DT_DALTRA(BGE,BGX,BGY,BGZ,PXCMS,PYCMS,PZCMS,PECMS, |
3424 | & PTOT,PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I)) |
3425 | ENDIF |
3426 | 20 CONTINUE |
3427 | ELSE |
3428 | MODE = -1 |
3429 | ENDIF |
3430 | |
3431 | RETURN |
3432 | END |
3433 | * |
3434 | *===eventb=============================================================* |
3435 | * |
3436 | CDECK ID>, DT_EVENTB |
3437 | SUBROUTINE DT_EVENTB(NCSY,IREJ) |
3438 | |
3439 | ************************************************************************ |
3440 | * Treatment of nucleon-nucleon interactions with full two-component * |
3441 | * Dual Parton Model. * |
3442 | * NCSY number of nucleon-nucleon interactions * |
3443 | * IREJ rejection flag * |
3444 | * This version dated 14.01.2000 is written by S. Roesler * |
3445 | ************************************************************************ |
3446 | |
3447 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) |
3448 | SAVE |
3449 | |
3450 | PARAMETER ( LINP = 5 , |
3451 | & LOUT = 6 , |
3452 | & LDAT = 9 ) |
3453 | |
3454 | PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0) |
3455 | |
3456 | * event history |
3457 | |
3458 | PARAMETER (NMXHKK=200000) |
3459 | |
3460 | COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK), |
3461 | & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK), |
3462 | & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK) |
3463 | * extended event history |
3464 | COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK), |
3465 | & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), |
3466 | & IHIST(2,NMXHKK) |
3467 | *! uncomment this line for internal phojet-fragmentation |
3468 | C #include "dtu_dtevtp.inc" |
3469 | * particle properties (BAMJET index convention) |
3470 | CHARACTER*8 ANAME |
3471 | COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210), |
3472 | & IICH(210),IIBAR(210),K1(210),K2(210) |
3473 | * flags for input different options |
3474 | LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO |
3475 | COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6), |
3476 | & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT |
3477 | * rejection counter |
3478 | COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES, |
3479 | & IRCHKI(2),IRFRAG,IRCRON(3),IREVT, |
3480 | & IREXCI(3),IRDIFF(2),IRINC |
3481 | * properties of interacting particles |
3482 | COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG |
3483 | * properties of photon/lepton projectiles |
3484 | COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC |
3485 | * various options for treatment of partons (DTUNUC 1.x) |
3486 | * (chain recombination, Cronin,..) |
3487 | LOGICAL LCO2CR,LINTPT |
3488 | COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM, |
3489 | & LCO2CR,LINTPT |
3490 | * statistics |
3491 | COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA, |
3492 | & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5), |
3493 | & ICEVTG(8,0:30) |
3494 | * DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem |
3495 | COMMON /DTLTSU/ BGX,BGY,BGZ,GAM |
3496 | * Glauber formalism: collision properties |
3497 | COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC, |
3498 | & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC |
3499 | * flags for diffractive interactions (DTUNUC 1.x) |
3500 | COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF |
3501 | * statistics: double-Pomeron exchange |
3502 | COMMON /DTFLG2/ INTFLG,IPOPO |
3503 | * flags for particle decays |
3504 | COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20), |
3505 | & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20), |
3506 | & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0 |
3507 | * nucleon-nucleon event-generator |
3508 | CHARACTER*8 CMODEL |
3509 | LOGICAL LPHOIN |
3510 | COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN |
3511 | C nucleon-nucleus / nucleus-nucleus interface to DPMJET |
3512 | INTEGER IDEQP,IDEQB,IHFLD,IHFLS |
3513 | DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB |
3514 | COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB, |
3515 | & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2) |
3516 | C model switches and parameters |
3517 | CHARACTER*8 MDLNA |
3518 | INTEGER ISWMDL,IPAMDL |
3519 | DOUBLE PRECISION PARMDL |
3520 | COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400) |
3521 | C initial state parton radiation (internal part) |
3522 | INTEGER MXISR3,MXISR4 |
3523 | PARAMETER ( MXISR3 = 50, MXISR4 = 100 ) |
3524 | INTEGER IFL1,IFL2,IBRA,IFANO,ISH,NACC |
3525 | DOUBLE PRECISION Q2SH,PT2SH,XPSH,ZPSH,THSH,SHAT |
3526 | COMMON /POINT6/ Q2SH(2,MXISR3),PT2SH(2,MXISR3),XPSH(2,MXISR3), |
3527 | & ZPSH(2,MXISR3),THSH(2,MXISR3),SHAT(MXISR3), |
3528 | & IFL1(2,MXISR3),IFL2(2,MXISR3), |
3529 | & IBRA(2,MXISR4),IFANO(2),ISH(2),NACC |
3530 | C event debugging information |
3531 | INTEGER NMAXD |
3532 | PARAMETER (NMAXD=100) |
3533 | INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO, |
3534 | & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD |
3535 | COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG, |
3536 | & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD |
3537 | C general process information |
3538 | INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON |
3539 | COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4) |
3540 | |
3541 | DIMENSION PP(4),PT(4),PTOT(4),PP1(4),PP2(4),PT1(4),PT2(4), |
3542 | & PPNN(4),PTNN(4),PTOTNN(4),PPSUB(4),PTSUB(4), |
3543 | & PPTCMS(4),PTTCMS(4),PPTMP(4),PTTMP(4), |
3544 | & KPRON(15),ISINGL(2000) |
3545 | |
3546 | * initial values for max. number of phojet scatterings and dtunuc chains |
3547 | * to be fragmented with one pyexec call |
3548 | DATA MXPHFR,MXDTFR /10,100/ |
3549 | |
3550 | IREJ = 0 |
3551 | * pointer to first parton of the first chain in dtevt common |
3552 | NPOINT(3) = NHKK+1 |
3553 | * special flag for double-Pomeron statistics |
3554 | IPOPO = 1 |
3555 | * counter for low-mass (DTUNUC) interactions |
3556 | NDTUSC = 0 |
3557 | * counter for interactions treated by PHOJET |
3558 | NPHOSC = 0 |
3559 | |
3560 | * scan interactions for single nucleon-nucleon interactions |
3561 | * (this has to be checked here because Cronin modifies parton momenta) |
3562 | NC = NPOINT(2) |
3563 | IF (NCSY.GT.2000) STOP ' DT_EVENTB: NCSY > 2000 ! ' |
3564 | DO 8 I=1,NCSY |
3565 | ISINGL(I) = 0 |
3566 | MOP = JMOHKK(1,NC) |
3567 | MOT = JMOHKK(1,NC+1) |
3568 | DIFF1 = ABS(PHKK(4,MOP)-PHKK(4, NC)-PHKK(4,NC+2)) |
3569 | DIFF2 = ABS(PHKK(4,MOT)-PHKK(4,NC+1)-PHKK(4,NC+3)) |
3570 | IF ((DIFF1.LT.TINY10).AND.(DIFF2.LT.TINY10)) ISINGL(I) = 1 |
3571 | NC = NC+4 |
3572 | 8 CONTINUE |
3573 | |
3574 | * multiple scattering of chain ends |
3575 | IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1) |
3576 | IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2) |
3577 | |
3578 | * switch to PHOJET-settings for JETSET parameter |
3579 | CALL DT_INITJS(1) |
3580 | |
3581 | * loop over nucleon-nucleon interaction |
3582 | NC = NPOINT(2) |
3583 | DO 2 I=1,NCSY |
3584 | * |
3585 | * pick up one nucleon-nucleon interaction from DTEVT1 |
3586 | * ppnn / ptnn - momenta of the interacting nucleons (cms) |
3587 | * ptotnn - total momentum of the interacting nucleons (cms) |
3588 | * pp1,2 / pt1,2 - momenta of the four partons |
3589 | * pp / pt - total momenta of the proj / targ partons |
3590 | * ptot - total momentum of the four partons |
3591 | MOP = JMOHKK(1,NC) |
3592 | MOT = JMOHKK(1,NC+1) |
3593 | DO 3 K=1,4 |
3594 | PPNN(K) = PHKK(K,MOP) |
3595 | PTNN(K) = PHKK(K,MOT) |
3596 | PTOTNN(K) = PPNN(K)+PTNN(K) |
3597 | PP1(K) = PHKK(K,NC) |
3598 | PT1(K) = PHKK(K,NC+1) |
3599 | PP2(K) = PHKK(K,NC+2) |
3600 | PT2(K) = PHKK(K,NC+3) |
3601 | PP(K) = PP1(K)+PP2(K) |
3602 | PT(K) = PT1(K)+PT2(K) |
3603 | PTOT(K) = PP(K)+PT(K) |
3604 | 3 CONTINUE |
3605 | * |
3606 | *----------------------------------------------------------------------- |
3607 | * this is a complete nucleon-nucleon interaction |
3608 | * |
3609 | IF (ISINGL(I).EQ.1) THEN |
3610 | * |
3611 | * initialize PHOJET-variables for remnant/valence-partons |
3612 | IHFLD(1,1) = 0 |
3613 | IHFLD(1,2) = 0 |
3614 | IHFLD(2,1) = 0 |
3615 | IHFLD(2,2) = 0 |
3616 | IHFLS(1) = 1 |
3617 | IHFLS(2) = 1 |
3618 | * save current settings of PHOJET process and min. bias flags |
3619 | DO 9 K=1,11 |
3620 | KPRON(K) = IPRON(K,1) |
3621 | 9 CONTINUE |
3622 | ISWSAV = ISWMDL(2) |
3623 | * |
3624 | * check if forced sampling of diffractive interaction requested |
3625 | IF (ISINGD.LT.-1) THEN |
3626 | DO 90 K=1,11 |
3627 | IPRON(K,1) = 0 |
3628 | 90 CONTINUE |
3629 | IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-3)) IPRON(5,1) = 1 |
3630 | IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-4)) IPRON(6,1) = 1 |
3631 | IF (ISINGD.EQ.-5) IPRON(4,1) = 1 |
3632 | ENDIF |
3633 | * |
3634 | * for photons: a direct/anomalous interaction is not sampled |
3635 | * in PHOJET but already in Glauber-formalism. Here we check if such |
3636 | * an interaction is requested |
3637 | IF (IJPROJ.EQ.7) THEN |
3638 | * first switch off direct interactions |
3639 | IPRON(8,1) = 0 |
3640 | * this is a direct interactions |
3641 | IF (IDIREC.EQ.1) THEN |
3642 | DO 12 K=1,11 |
3643 | IPRON(K,1) = 0 |
3644 | 12 CONTINUE |
3645 | IPRON(8,1) = 1 |
3646 | * this is an anomalous interactions |
3647 | * (iswmdl(2) = 0 only hard int. generated ( = 1 min. bias) ) |
3648 | ELSEIF (IDIREC.EQ.2) THEN |
3649 | ISWMDL(2) = 0 |
3650 | ENDIF |
3651 | ELSE |
3652 | IF (IDIREC.NE.0) STOP ' DT_EVENTB: IDIREC > 0 ! ' |
3653 | ENDIF |
3654 | * |
3655 | * make sure that total momenta of partons, pp and pt, are on mass |
3656 | * shell (Cronin may have srewed this up..) |
3657 | CALL DT_MASHEL(PP,PT,PHKK(5,MOP),PHKK(5,MOT),PPNN,PTNN,IR1) |
3658 | IF (IR1.NE.0) THEN |
3659 | IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A)') |
3660 | & 'EVENTB: mass shell correction rejected' |
3661 | GOTO 9999 |
3662 | ENDIF |
3663 | * |
3664 | * initialize the incoming particles in PHOJET |
3665 | IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN |
3666 | |
3667 | CALL PHO_SETPAR(1,22,0,VIRT) |
3668 | |
3669 | ELSE |
3670 | |
3671 | CALL PHO_SETPAR(1,IDHKK(MOP),0,ZERO) |
3672 | |
3673 | ENDIF |
3674 | |
3675 | CALL PHO_SETPAR(2,IDHKK(MOT),0,ZERO) |
3676 | |
3677 | * |
3678 | * initialize rejection loop counter for anomalous processes |
3679 | IRJANO = 0 |
3680 | 800 CONTINUE |
3681 | IRJANO = IRJANO+1 |
3682 | * |
3683 | * temporary fix for ifano problem |
3684 | IFANO(1) = 0 |
3685 | IFANO(2) = 0 |
3686 | * |
3687 | * generate complete hadron/nucleon/photon-nucleon event with PHOJET |
3688 | |
3689 | CALL PHO_EVENT(2,PPNN,PTNN,DUM,IREJ1) |
3690 | |
3691 | * |
3692 | * for photons: special consistency check for anomalous interactions |
3693 | IF (IJPROJ.EQ.7) THEN |
3694 | IF (IRJANO.LT.30) THEN |
3695 | IF (IFANO(1).NE.0) THEN |
3696 | * here, an anomalous interaction was generated. Check if it |
3697 | * was also requested. Otherwise reject this event. |
3698 | IF (IDIREC.EQ.0) GOTO 800 |
3699 | ELSE |
3700 | * here, an anomalous interaction was not generated. Check if it |
3701 | * was requested in which case we need to reject this event. |
3702 | IF (IDIREC.EQ.2) GOTO 800 |
3703 | ENDIF |
3704 | ELSE |
3705 | WRITE(LOUT,*) ' DT_EVENTB: Warning! IRJANO > 30 ', |
3706 | & IRJANO,IDIREC,NEVHKK |
3707 | ENDIF |
3708 | ENDIF |
3709 | * |
3710 | * copy back original settings of PHOJET process and min. bias flags |
3711 | DO 10 K=1,11 |
3712 | IPRON(K,1) = KPRON(K) |
3713 | 10 CONTINUE |
3714 | ISWMDL(2) = ISWSAV |
3715 | * |
3716 | * check if PHOJET has rejected this event |
3717 | IF (IREJ1.NE.0) THEN |
3718 | C IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)') |
3719 | WRITE(LOUT,'(1X,A,I4)') |
3720 | & 'EVENTB: chain system rejected',IDIREC |
3721 | |
3722 | CALL PHO_PREVNT(0) |
3723 | |
3724 | GOTO 9999 |
3725 | ENDIF |
3726 | * |
3727 | * copy partons and strings from PHOJET common back into DTEVT for |
3728 | * external fragmentation |
3729 | MO1 = NC |
3730 | MO2 = NC+3 |
3731 | *! uncomment this line for internal phojet-fragmentation |
3732 | C CALL DT_GETFSP(MO1,MO2,PPNN,PTNN,-1) |
3733 | NPHOSC = NPHOSC+1 |
3734 | CALL DT_GETPJE(MO1,MO2,PPNN,PTNN,-1,NPHOSC,IREJ1) |
3735 | IF (IREJ1.NE.0) THEN |
3736 | IF (IOULEV(1).GT.0) |
3737 | & WRITE(LOUT,'(1X,A,I4)') 'EVENTB: chain system rejected 1' |
3738 | GOTO 9999 |
3739 | ENDIF |
3740 | * |
3741 | * update statistics counter |
3742 | ICEVTG(IDCH(NC),29) = ICEVTG(IDCH(NC),29)+1 |
3743 | * |
3744 | *------------------------------------------- |