]>
Commit | Line | Data |
---|---|---|
e74335a4 | 1 | * $Id$ |
2 | ||
3 | C********************************************************************* | |
4 | ||
5 | SUBROUTINE PYOVLY_HIJING(MOVLY) | |
6 | ||
7 | C...Initializes multiplicity distribution and selects mutliplicity | |
8 | C...of overlayed events, i.e. several events occuring at the same | |
9 | C...beam crossing. | |
10 | #include "ludat1_hijing.inc" | |
11 | #include "pypars_hijing.inc" | |
12 | #include "pyint1_hijing.inc" | |
13 | DIMENSION WTI(0:100) | |
14 | SAVE IMAX,WTI,WTS | |
15 | ||
16 | C...Sum of allowed cross-sections for overlayed events. | |
17 | IF(MOVLY.EQ.1) THEN | |
18 | VINT(131)=VINT(106) | |
19 | IF(MSTP(132).GE.2) VINT(131)=VINT(131)+VINT(104) | |
20 | IF(MSTP(132).GE.3) VINT(131)=VINT(131)+VINT(103) | |
21 | IF(MSTP(132).GE.4) VINT(131)=VINT(131)+VINT(102) | |
22 | ||
23 | C...Initialize multiplicity distribution for unbiased events. | |
24 | IF(MSTP(133).EQ.1) THEN | |
25 | XNAVE=VINT(131)*PARP(131) | |
26 | IF(XNAVE.GT.40.) WRITE(MSTU(11),1000) XNAVE | |
27 | WTI(0)=EXP(-MIN(50.,XNAVE)) | |
28 | WTS=0. | |
29 | WTN=0. | |
30 | DO 100 I=1,100 | |
31 | WTI(I)=WTI(I-1)*XNAVE/I | |
32 | IF(I-2.5.GT.XNAVE.AND.WTI(I).LT.1E-6) GOTO 110 | |
33 | WTS=WTS+WTI(I) | |
34 | WTN=WTN+WTI(I)*I | |
35 | 100 IMAX=I | |
36 | 110 VINT(132)=XNAVE | |
37 | VINT(133)=WTN/WTS | |
38 | VINT(134)=WTS | |
39 | ||
40 | C...Initialize mutiplicity distribution for biased events. | |
41 | ELSEIF(MSTP(133).EQ.2) THEN | |
42 | XNAVE=VINT(131)*PARP(131) | |
43 | IF(XNAVE.GT.40.) WRITE(MSTU(11),1000) XNAVE | |
44 | WTI(1)=EXP(-MIN(50.,XNAVE))*XNAVE | |
45 | WTS=WTI(1) | |
46 | WTN=WTI(1) | |
47 | DO 120 I=2,100 | |
48 | WTI(I)=WTI(I-1)*XNAVE/(I-1) | |
49 | IF(I-2.5.GT.XNAVE.AND.WTI(I).LT.1E-6) GOTO 130 | |
50 | WTS=WTS+WTI(I) | |
51 | WTN=WTN+WTI(I)*I | |
52 | 120 IMAX=I | |
53 | 130 VINT(132)=XNAVE | |
54 | VINT(133)=WTN/WTS | |
55 | VINT(134)=WTS | |
56 | ENDIF | |
57 | ||
58 | C...Pick multiplicity of overlayed events. | |
59 | ELSE | |
60 | IF(MSTP(133).EQ.0) THEN | |
61 | MINT(81)=MAX(1,MSTP(134)) | |
62 | ELSE | |
63 | WTR=WTS*RLU_HIJING(0) | |
64 | DO 140 I=1,IMAX | |
65 | MINT(81)=I | |
66 | WTR=WTR-WTI(I) | |
67 | IF(WTR.LE.0.) GOTO 150 | |
68 | 140 CONTINUE | |
69 | 150 CONTINUE | |
70 | ENDIF | |
71 | ENDIF | |
72 | ||
73 | C...Format statement for error message. | |
74 | 1000 FORMAT(1X,'Warning: requested average number of events per bunch', | |
75 | &'crossing too large, ',1P,E12.4) | |
76 | ||
77 | RETURN | |
78 | END |