]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HIJING/hijing1_36/hijing.F
coverity
[u/mrichter/AliRoot.git] / HIJING / hijing1_36 / hijing.F
index a8e22a71500944e4b41837cf816f471bab5a11fa..7da5a65aa3859210a4aa4c2ec5331374477c30cc 100644 (file)
@@ -187,6 +187,15 @@ C
        IF(IHNT2(1).LE.1) GO TO 14
        DO 10 KP=1,IHNT2(1)
 5      R=HIRND(1)
+c
+        if(IHNT2(1).EQ.2) then
+           rnd1=max(RLU_HIJING(NSEED),1.0e-20)
+           rnd2=max(RLU_HIJING(NSEED),1.0e-20)
+           rnd3=max(RLU_HIJING(NSEED),1.0e-20)
+           R=-0.5*(log(rnd1)*4.38/2.0+log(rnd2)*0.85/2.0
+     &          +4.38*0.85*log(rnd3)/(4.38+0.85))
+        endif
+c
        X=RLU_HIJING(0)
        CX=2.0*X-1.0
        SX=SQRT(1.0-CX*CX)
@@ -207,6 +216,13 @@ C                  ********two neighbors cannot be closer than
 C                              HIPR1(29)
 8      CONTINUE
 10     CONTINUE
+c*******************************
+        if(IHNT2(1).EQ.2) then
+           YP(1,2)=-YP(1,1)
+           YP(2,2)=-YP(2,1)
+           YP(3,2)=-YP(3,1)
+        endif
+c********************************
        DO 12 I=1,IHNT2(1)-1
        DO 12 J=I+1,IHNT2(1)
        IF(YP(3,I).GT.YP(3,J)) GO TO 12
@@ -228,6 +244,15 @@ C******************************
        IF(IHNT2(3).LE.1) GO TO 24
        DO 20 KT=1,IHNT2(3)
 15     R=HIRND(2)
+c
+         if(IHNT2(3).EQ.2) then
+            rnd1=max(RLU_HIJING(NSEED),1.0e-20)
+            rnd2=max(RLU_HIJING(NSEED),1.0e-20)
+            rnd3=max(RLU_HIJING(NSEED),1.0e-20)
+            R=-0.5*(log(rnd1)*4.38/2.0+log(rnd2)*0.85/2.0
+     &           +4.38*0.85*log(rnd3)/(4.38+0.85))
+         endif
+c
        X=RLU_HIJING(0)
        CX=2.0*X-1.0
        SX=SQRT(1.0-CX*CX)
@@ -248,6 +273,13 @@ C                  ********two neighbors cannot be closer than
 C                              HIPR1(29)
 18     CONTINUE
 20     CONTINUE
+c**********************************
+         if(IHNT2(3).EQ.2) then
+            YT(1,2)=-YT(1,1)
+            YT(2,2)=-YT(2,1)
+            YT(3,2)=-YT(3,1)
+         endif
+c*********************************
        DO 22 I=1,IHNT2(3)-1
        DO 22 J=I+1,IHNT2(3)
        IF(YT(3,I).LT.YT(3,J)) GO TO 22
@@ -289,6 +321,10 @@ C                  ********Initialize for a new event
         NINP=0
        NSG=0
        NCOLT=0
+        NPSPECP=0
+        NNSPECP=0
+        NPSPECT=0
+        NNSPECT=0 
 
 C****  BB IS THE ABSOLUTE VALUE OF IMPACT PARAMETER,BB**2 IS 
 C       RANDOMLY GENERATED AND ITS ORIENTATION IS RANDOMLY SET 
@@ -510,11 +546,20 @@ c
 c**************************
 c
        DO 201 JP=1,IHNT2(1)
+c           write(6,*) JP, NFP(JP,3), NFP(JP,4), NFP(JP,5)
            IF(NFP(JP,5).GT.2) THEN
               NINP=NINP+1
            ELSE IF(NFP(JP,5).EQ.2.OR.NFP(JP,5).EQ.1) THEN
               NELP=NELP+1
            ENDIF
+
+           IF(NFP(JP,5).LE.2) THEN
+              IF (NFP(JP,3) .EQ. 2212) THEN
+                 NPSPECP = NPSPECP + 1
+              ELSE IF (NFP(JP,3) .EQ. 2112) THEN
+                 NNSPECP = NNSPECP + 1
+              ENDIF
+           ENDIF
  201    continue
        DO 202 JT=1,IHNT2(3)
            IF(NFT(JT,5).GT.2) THEN
@@ -522,6 +567,14 @@ c
            ELSE IF(NFT(JT,5).EQ.2.OR.NFT(JT,5).EQ.1) THEN
               NELT=NELT+1
            ENDIF
+
+           IF(NFT(JT,5).LE.2) THEN
+              IF (NFT(JT,3) .EQ. 2212) THEN
+                 NPSPECT = NPSPECT + 1
+              ELSE IF (NFT(JT,3) .EQ. 2112) THEN
+                 NNSPECT = NNSPECT + 1
+              ENDIF
+           ENDIF
  202    continue
 c     
 c*******************************
@@ -548,6 +601,7 @@ C********N_STR+1 is the number of strings in fragmentation
 C********the number of strings before a line is stored in K(I,4)
 C********IDSTR is id number of the string system (91,92 or 93)
 C
+c
         IF(IHPR2(20).NE.0) THEN
           DO 360 ISG=1,NSG
                CALL HIJFRG(ISG,3,IERROR)
@@ -589,11 +643,15 @@ C
                   KATT(NATT,1)=K(I,2)
                   KATT(NATT,2)=20
                   KATT(NATT,4)=K(I,1)
-                  IF(K(I,3).EQ.0 .OR. K(K(I,3),2).EQ.IDSTR) THEN
-                     KATT(NATT,3)=0
-                  ELSE
-                     KATT(NATT,3)=NATT-I+K(I,3)+N_STR-K(K(I,3),4)
-                  ENDIF
+                   IF(K(I,3).EQ.0 ) THEN
+                      KATT(NATT,3)=0
+                   ELSE
+                      IF(K(K(I,3),2).EQ.IDSTR) THEN
+                         KATT(NATT,3)=0
+                      ELSE
+                         KATT(NATT,3)=NATT-I+K(I,3)+N_STR-K(K(I,3),4)
+                      ENDIF
+                   ENDIF
 C       ****** identify the mother particle
                   PATT(NATT,1)=P(I,1)
                   PATT(NATT,2)=P(I,2)
@@ -603,7 +661,7 @@ C       ****** identify the mother particle
                    VATT(NATT,2)=V(I,2)
                    VATT(NATT,3)=V(I,3)
                    VATT(NATT,4)=V(I,4)
-                   
+
                   EATT=EATT+P(I,4)
 360       CONTINUE
 C              ********Fragment the q-qbar jets systems *****
@@ -643,6 +701,7 @@ C
                ENDIF
 C              ******** boost back to lab frame(if it was in)
 C
+
                N_STR=0
                DO 390 I=N_ST,N
                   IF(K(I,2).EQ.IDSTR) THEN
@@ -654,26 +713,21 @@ C
                   KATT(NATT,1)=K(I,2)
                   KATT(NATT,2)=NFTP
                   KATT(NATT,4)=K(I,1)
-                  IF(K(I,3).EQ.0 ) THEN
+                   IF(K(I,3).EQ.0 .OR. K(K(I,3),2).EQ.IDSTR) THEN
                      KATT(NATT,3)=0
-                   ELSE
-                      IF(K(K(I,3),2).EQ.IDSTR) THEN
-                         KATT(NATT,3)=0
-                      ELSE
-                         KATT(NATT,3)=NATT-I+K(I,3)+N_STR-K(K(I,3),4)
-                      ENDIF
+                  ELSE
+                     KATT(NATT,3)=NATT-I+K(I,3)+N_STR-K(K(I,3),4)
                   ENDIF
 C       ****** identify the mother particle
                   PATT(NATT,1)=P(I,1)
                   PATT(NATT,2)=P(I,2)
                   PATT(NATT,3)=P(I,3)
                   PATT(NATT,4)=P(I,4)
-                   VATT(NATT,1)=V(I,1)
-                   VATT(NATT,2)=V(I,2)
-                   VATT(NATT,3)=V(I,3)
-                   VATT(NATT,4)=V(I,4)
-
                   EATT=EATT+P(I,4)
+                   VATT(NATT,1)=V(I,1)  
+                   VATT(NATT,2)=V(I,2)  
+                   VATT(NATT,3)=V(I,3)  
+                   VATT(NATT,4)=V(I,4)
 390            CONTINUE 
 400       CONTINUE
 C              ********Fragment the q-qq related string systems
@@ -688,11 +742,10 @@ C         ********Fragment the q-qq related string systems
                PATT(NATT,2)=PDR(I,2)
                PATT(NATT,3)=PDR(I,3)
                PATT(NATT,4)=PDR(I,4)
-                VATT(NATT,1)=V(I,1)
-                VATT(NATT,2)=V(I,2)
-                VATT(NATT,3)=V(I,3)
+                VATT(NATT,1)=V(I,1)  
+                VATT(NATT,2)=V(I,2)  
+                VATT(NATT,3)=V(I,3)  
                 VATT(NATT,4)=V(I,4)
-
                EATT=EATT+PDR(I,4)
 450    CONTINUE
 C                      ********store the direct-produced particles