| 1 | SUBROUTINE LEDENY( LEDEFL ) | 
|---|
| 2 |  | 
|---|
| 3 | C----------------------------------------------------------------------- | 
|---|
| 4 | C  LE(A)D(ER'S) EN(ERG)Y | 
|---|
| 5 | C | 
|---|
| 6 | C  SELECTS THE FEYNMAN X OF THE ANTILEADING PARTICLES FROM A THEORETICAL | 
|---|
| 7 | C  DISTRIBUTION AND CALCULATES THE RAPIDITY FROM IT | 
|---|
| 8 | C  CALCULATE THE RAPIDITY OF THE LEADER FROM THE REMAINDER OF ENERGY | 
|---|
| 9 | C  THIS SUBROUTINE IS CALLED FROM HDPM | 
|---|
| 10 | C  ARGUMENT: | 
|---|
| 11 | C   LEDEFL = 0  CORRECT ENDING OF LEDENY | 
|---|
| 12 | C          = 1  NOT CORRECT ENDING OF LEDENY | 
|---|
| 13 | C----------------------------------------------------------------------- | 
|---|
| 14 |  | 
|---|
| 15 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) | 
|---|
| 16 | *KEEP,INTER. | 
|---|
| 17 | COMMON /INTER/   AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB, | 
|---|
| 18 | *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3, | 
|---|
| 19 | *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG, | 
|---|
| 20 | *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN, | 
|---|
| 21 | *                 IDIF,ITAR | 
|---|
| 22 | DOUBLE PRECISION AVCH,AVCH3,DC0,DLOG,DMLOG,ECMDIF,ECMDPM,ELAB, | 
|---|
| 23 | *                 FNEUT,FNEUT2,GNU,PLAB,POSC2,POSC3,POSN2,POSN3, | 
|---|
| 24 | *                 RC3TO2,S,SEUGF,SEUGP,SLOG,SLOGSQ,SMLOG, | 
|---|
| 25 | *                 WIDC2,WIDC3,WIDN2,WIDN3,YCM,YY0,ZN | 
|---|
| 26 | INTEGER          IDIF,ITAR | 
|---|
| 27 | *KEEP,LEPAR. | 
|---|
| 28 | COMMON /LEPAR/   LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS | 
|---|
| 29 | INTEGER          LEPAR1,LEPAR2,LASTPI,NRESPC,NRESPN,NCPLUS | 
|---|
| 30 | *KEEP,NEWPAR. | 
|---|
| 31 | COMMON /NEWPAR/  EA,PT2,PX,PY,TMAS,YR,ITYP, | 
|---|
| 32 | *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2, | 
|---|
| 33 | *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT | 
|---|
| 34 | DOUBLE PRECISION EA(3000),PT2(3000),PX(3000),PY(3000),TMAS(3000), | 
|---|
| 35 | *                 YR(3000) | 
|---|
| 36 | INTEGER          ITYP(3000), | 
|---|
| 37 | *                 IA1,IA2,IB1,IB2,IC1,IC2,ID1,ID2,IE1,IE2,IF1,IF2, | 
|---|
| 38 | *                 IG1,IG2,IH1,IH2,II1,II2,IJ1,NTOT | 
|---|
| 39 | *KEEP,PAM. | 
|---|
| 40 | COMMON /PAM/     PAMA,SIGNUM | 
|---|
| 41 | DOUBLE PRECISION PAMA(6000),SIGNUM(6000) | 
|---|
| 42 | *KEEP,PARPAR. | 
|---|
| 43 | COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C, | 
|---|
| 44 | *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL | 
|---|
| 45 | DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14), | 
|---|
| 46 | *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH | 
|---|
| 47 | INTEGER          ITYPE,LEVL | 
|---|
| 48 | *KEEP,PARPAE. | 
|---|
| 49 | DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM | 
|---|
| 50 | EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE), | 
|---|
| 51 | *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ), | 
|---|
| 52 | *                 (CURPAR(6), T   ),  (CURPAR(7), X    ), | 
|---|
| 53 | *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ), | 
|---|
| 54 | *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ), | 
|---|
| 55 | *                 (CURPAR(12),ECM ) | 
|---|
| 56 | *KEEP,RANDPA. | 
|---|
| 57 | COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR | 
|---|
| 58 | DOUBLE PRECISION FAC,U1,U2 | 
|---|
| 59 | REAL             RD(3000) | 
|---|
| 60 | INTEGER          ISEED(103,10),NSEQ | 
|---|
| 61 | LOGICAL          KNOR | 
|---|
| 62 | *KEEP,RUNPAR. | 
|---|
| 63 | COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB, | 
|---|
| 64 | *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN, | 
|---|
| 65 | *                 MONIOU,MDEBUG,NUCNUC, | 
|---|
| 66 | *                 CETAPE, | 
|---|
| 67 | *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL, | 
|---|
| 68 | *                 N1STTR,MDBASE, | 
|---|
| 69 | *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR, | 
|---|
| 70 | *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE | 
|---|
| 71 | *                ,GHEISH,GHESIG | 
|---|
| 72 | COMMON /RUNPAC/  DSN,HOST,USER | 
|---|
| 73 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB | 
|---|
| 74 | REAL             STEPFC | 
|---|
| 75 | INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC, | 
|---|
| 76 | *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL, | 
|---|
| 77 | *                 N1STTR,MDBASE | 
|---|
| 78 | INTEGER          CETAPE | 
|---|
| 79 | CHARACTER*79     DSN | 
|---|
| 80 | CHARACTER*20     HOST,USER | 
|---|
| 81 |  | 
|---|
| 82 | LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR, | 
|---|
| 83 | *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE | 
|---|
| 84 | *                ,GHEISH,GHESIG | 
|---|
| 85 | *KEEP,VKIN. | 
|---|
| 86 | COMMON /VKIN/    BETACM | 
|---|
| 87 | DOUBLE PRECISION BETACM | 
|---|
| 88 | *KEND. | 
|---|
| 89 |  | 
|---|
| 90 | DATA SL / 3.D0 / | 
|---|
| 91 | C----------------------------------------------------------------------- | 
|---|
| 92 |  | 
|---|
| 93 | IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: ITYPE,ITAR=',ITYPE,ITAR | 
|---|
| 94 |  | 
|---|
| 95 | C  BETACM IS AVAILABLE IN COMMON /VKIN/ BUT NOT FOR PHOTOPRODUCTION | 
|---|
| 96 | IF ( ITYPE .EQ. 7 ) BETACM = SQRT( 1.D0 - 1.D0 / GCM**2 ) | 
|---|
| 97 |  | 
|---|
| 98 | C  MOMENTUM OF INCOMING TARGET IN CM SYSTEM | 
|---|
| 99 | PNT = PAMA(ITAR) * GCM * BETACM | 
|---|
| 100 | IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: PNT=',SNGL(PNT) | 
|---|
| 101 |  | 
|---|
| 102 | C  GET FEYNMAN X FOR ANTILEADER DEPENDING ON ENERGY | 
|---|
| 103 | C  DISCRIPTION OF THE FEYNMAN X DISTRIBUTION DEPENDING ON ENERGY | 
|---|
| 104 | C    DN/DXF = SL*XF                               0 < XF < X1 | 
|---|
| 105 | C    DN/DXF = SL*X1                              X1 < XF < X2 | 
|---|
| 106 | C    DN/DXF = SL*X1 * EXP(-AL*(XF-X2))           X2 < XF <  1 | 
|---|
| 107 |  | 
|---|
| 108 | IF     ( ECMDPM .LT. 13.76D0 ) THEN | 
|---|
| 109 | X1 = 0.20D0 | 
|---|
| 110 | X2 = 0.65D0 | 
|---|
| 111 | AL = 1.265D0 | 
|---|
| 112 | ELSEIF ( ECMDPM .LT. 5580.D0 ) THEN | 
|---|
| 113 | X1 = 0.716D0   + 0.00543D0 * SMLOG | 
|---|
| 114 | X2 = 0.8175D0  - 0.032D0   * SMLOG | 
|---|
| 115 | AL = 1.14D0    + 0.022D0   * SMLOG | 
|---|
| 116 | ELSE | 
|---|
| 117 | X1 = 0.265D0 | 
|---|
| 118 | X2 = 0.265D0 | 
|---|
| 119 | AL = 1.14D0 + 0.022D0*SMLOG | 
|---|
| 120 | ENDIF | 
|---|
| 121 |  | 
|---|
| 122 | C  CALCULATE THE INTEGRALS OVER THE THREE PARTS OF THE FUNCTION | 
|---|
| 123 | AA = 0.5D0 * SL * X1**2 | 
|---|
| 124 | BB = SL * X1 * (X2 - X1) | 
|---|
| 125 | CC = SL * X1 / AL * ( 1.D0 - EXP( AL*(X2-1.D0) ) ) | 
|---|
| 126 | C  NORMALIZE TO 1 | 
|---|
| 127 | TT = 1.D0 / (AA + BB + CC) | 
|---|
| 128 | CC = CC * TT | 
|---|
| 129 | AA = AA * TT | 
|---|
| 130 | BB = BB * TT | 
|---|
| 131 | AB = AA + BB | 
|---|
| 132 |  | 
|---|
| 133 | CALL RMMAR( RD,1,1 ) | 
|---|
| 134 | C  GET XF FOR ANTILEADER | 
|---|
| 135 | IF     ( RD(1) .LE. AA ) THEN | 
|---|
| 136 | XF = SQRT( RD(1)*2.D0 / (SL*TT) ) | 
|---|
| 137 | ELSEIF ( RD(1) .LE. AB ) THEN | 
|---|
| 138 | XF = (RD(1)-AA) / (SL*X1*TT) + X1 | 
|---|
| 139 | ELSE | 
|---|
| 140 | XF = X2 - LOG( 1.D0 - (RD(1)-AB)*AL/(SL*X1*TT) ) / AL | 
|---|
| 141 | ENDIF | 
|---|
| 142 | IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: XF(TARGET)=',SNGL(XF) | 
|---|
| 143 |  | 
|---|
| 144 | C  CONVERT FEYNMAN X INTO RAPIDITY FOR ANTILEADER | 
|---|
| 145 | PLAL  = PNT * XF * PAMA(LEPAR2) / PAMA(ITAR) | 
|---|
| 146 | EA(2) = SQRT(PLAL**2 + TMAS(2)**2) | 
|---|
| 147 | *     YR(2) = -0.5D0 * LOG( (EA(2)+PLAL)/(EA(2)-PLAL) ) | 
|---|
| 148 | YR(2) = - LOG( (EA(2)+PLAL)/TMAS(2) ) | 
|---|
| 149 |  | 
|---|
| 150 | C  CALCULATE THE REMAINDER OF ENERGY AND LONG. MOMENTUM OF LEADER | 
|---|
| 151 | C  THIS HOLDS ALSO FOR MULTIPLE COLLISIONS (GNU > 1) | 
|---|
| 152 | ESUM  = 0.D0 | 
|---|
| 153 | DO 10  I = 2,NTOT | 
|---|
| 154 | EA(I) = TMAS(I) * COSH( YR(I) + YCM ) | 
|---|
| 155 | ESUM  = ESUM + EA(I) | 
|---|
| 156 | 10  CONTINUE | 
|---|
| 157 | EA(1) = ELAB + PAMA(ITAR) - ESUM | 
|---|
| 158 | IF ( EA(1) .LE. TMAS(1) ) THEN | 
|---|
| 159 | LEDEFL = 1 | 
|---|
| 160 | RETURN | 
|---|
| 161 | ENDIF | 
|---|
| 162 | PLLBSQ = EA(1)**2 - TMAS(1)**2 | 
|---|
| 163 | PLLB   = SQRT( PLLBSQ ) | 
|---|
| 164 | *     YR(1)  = 0.5D0 * LOG( (EA(1) + PLLB) / (EA(1) - PLLB) ) - YCM | 
|---|
| 165 | YR(1)  = LOG( (EA(1) + PLLB) / TMAS(1) ) - YCM | 
|---|
| 166 | IF ( DEBUG ) WRITE(MDEBUG,*) 'LEDENY: EA(1),YR(2),YR(1)=', | 
|---|
| 167 | *                     SNGL(EA(1)),SNGL(YR(2)),SNGL(YR(1)) | 
|---|
| 168 | LEDEFL = 0 | 
|---|
| 169 | RETURN | 
|---|
| 170 | END | 
|---|