]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HIJING/hipyset1_35/luhepc_hijing.F
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / luhepc_hijing.F
1 * $Id$
2     
3 C*********************************************************************  
4     
5       SUBROUTINE LUHEPC_HIJING(MCONV)  
6     
7 C...Purpose: to convert JETSET event record contents to or from 
8 C...the standard event record commonblock.  
9 #include "hepevt_hijing.inc"
10 #include "lujets_hijing.inc"
11 #include "ludat1_hijing.inc"
12 #include "ludat2_hijing.inc"
13     
14 C...Conversion from JETSET to standard, the easy part.  
15       IF(MCONV.EQ.1) THEN   
16         NEVHEP=0    
17         IF(N.GT.NMXHEP) CALL LUERRM_HIJING(8,  
18      &  '(LUHEPC_HIJING:) no more space in /HEPEVT_HIJING/')  
19         NHEP=MIN(N,NMXHEP)  
20         DO 140 I=1,NHEP 
21         ISTHEP(I)=0 
22         IF(K(I,1).GE.1.AND.K(I,1).LE.10) ISTHEP(I)=1    
23         IF(K(I,1).GE.11.AND.K(I,1).LE.20) ISTHEP(I)=2   
24         IF(K(I,1).GE.21.AND.K(I,1).LE.30) ISTHEP(I)=3   
25         IF(K(I,1).GE.31.AND.K(I,1).LE.100) ISTHEP(I)=K(I,1) 
26         IDHEP(I)=K(I,2) 
27         JMOHEP(1,I)=K(I,3)  
28         JMOHEP(2,I)=0   
29         IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) THEN  
30           JDAHEP(1,I)=K(I,4)    
31           JDAHEP(2,I)=K(I,5)    
32         ELSE    
33           JDAHEP(1,I)=0 
34           JDAHEP(2,I)=0 
35         ENDIF   
36         DO 100 J=1,5    
37   100   PHEP(J,I)=P(I,J)    
38         DO 110 J=1,4    
39   110   VHEP(J,I)=V(I,J)    
40     
41 C...Fill in missing mother information. 
42         IF(K(I,2).GE.91.AND.K(I,2).LE.93) THEN  
43           I1=K(I,3)-1   
44   120     I1=I1+1   
45           IF(I1.GE.I) CALL LUERRM_HIJING(8,    
46      &    '(LUHEPC_HIJING:) translation of inconsistent event history')    
47           IF(I1.LT.I.AND.K(I1,1).NE.1.AND.K(I1,1).NE.11) GOTO 120   
48           KC=LUCOMP_HIJING(K(I1,2))    
49           IF(I1.LT.I.AND.KC.EQ.0) GOTO 120  
50           IF(I1.LT.I.AND.KCHG(KC,2).EQ.0) GOTO 120  
51           JMOHEP(2,I)=I1    
52         ELSEIF(K(I,2).EQ.94) THEN   
53           NJET=2    
54           IF(NHEP.GE.I+3.AND.K(I+3,3).LE.I) NJET=3  
55           IF(NHEP.GE.I+4.AND.K(I+4,3).LE.I) NJET=4  
56           JMOHEP(2,I)=MOD(K(I+NJET,4)/MSTU(5),MSTU(5))  
57           IF(JMOHEP(2,I).EQ.JMOHEP(1,I)) JMOHEP(2,I)=   
58      &    MOD(K(I+1,4)/MSTU(5),MSTU(5)) 
59         ENDIF   
60     
61 C...Fill in missing daughter information.   
62         IF(K(I,2).EQ.94.AND.MSTU(16).NE.2) THEN 
63           DO 130 I1=JDAHEP(1,I),JDAHEP(2,I) 
64           I2=MOD(K(I1,4)/MSTU(5),MSTU(5))   
65   130     JDAHEP(1,I2)=I    
66         ENDIF   
67         IF(K(I,2).GE.91.AND.K(I,2).LE.94) GOTO 140  
68         I1=JMOHEP(1,I)  
69         IF(I1.LE.0.OR.I1.GT.NHEP) GOTO 140  
70         IF(K(I1,1).NE.13.AND.K(I1,1).NE.14) GOTO 140    
71         IF(JDAHEP(1,I1).EQ.0) THEN  
72           JDAHEP(1,I1)=I    
73         ELSE    
74           JDAHEP(2,I1)=I    
75         ENDIF   
76   140   CONTINUE    
77         DO 150 I=1,NHEP 
78         IF(K(I,1).NE.13.AND.K(I,1).NE.14) GOTO 150  
79         IF(JDAHEP(2,I).EQ.0) JDAHEP(2,I)=JDAHEP(1,I)    
80   150   CONTINUE    
81     
82 C...Conversion from standard to JETSET, the easy part.  
83       ELSE  
84         IF(NHEP.GT.MSTU(4)) CALL LUERRM_HIJING(8,  
85      &  '(LUHEPC_HIJING:) no more space in /LUJETS_HIJING/')  
86         N=MIN(NHEP,MSTU(4)) 
87         NKQ=0   
88         KQSUM=0 
89         DO 180 I=1,N    
90         K(I,1)=0    
91         IF(ISTHEP(I).EQ.1) K(I,1)=1 
92         IF(ISTHEP(I).EQ.2) K(I,1)=11    
93         IF(ISTHEP(I).EQ.3) K(I,1)=21    
94         K(I,2)=IDHEP(I) 
95         K(I,3)=JMOHEP(1,I)  
96         K(I,4)=JDAHEP(1,I)  
97         K(I,5)=JDAHEP(2,I)  
98         DO 160 J=1,5    
99   160   P(I,J)=PHEP(J,I)    
100         DO 170 J=1,4    
101   170   V(I,J)=VHEP(J,I)    
102         V(I,5)=0.   
103         IF(ISTHEP(I).EQ.2.AND.PHEP(4,I).GT.PHEP(5,I)) THEN  
104           I1=JDAHEP(1,I)    
105           IF(I1.GT.0.AND.I1.LE.NHEP) V(I,5)=(VHEP(4,I1)-VHEP(4,I))* 
106      &    PHEP(5,I)/PHEP(4,I)   
107         ENDIF   
108     
109 C...Fill in missing information on colour connection in jet systems.    
110         IF(ISTHEP(I).EQ.1) THEN 
111           KC=LUCOMP_HIJING(K(I,2)) 
112           KQ=0  
113           IF(KC.NE.0) KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) 
114           IF(KQ.NE.0) NKQ=NKQ+1 
115           IF(KQ.NE.2) KQSUM=KQSUM+KQ    
116           IF(KQ.NE.0.AND.KQSUM.NE.0) THEN   
117             K(I,1)=2    
118           ELSEIF(KQ.EQ.2.AND.I.LT.N) THEN   
119             IF(K(I+1,2).EQ.21) K(I,1)=2 
120           ENDIF 
121         ENDIF   
122   180   CONTINUE    
123         IF(NKQ.EQ.1.OR.KQSUM.NE.0) CALL LUERRM_HIJING(8,   
124      &       '(LUHEPC_HIJING:) input parton configuration '/
125      $       /'not colour singlet')  
126       ENDIF 
127     
128       END