]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/pyovly_hijing.F
New default values for baselines (F.Prino)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / pyovly_hijing.F
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