| 1 |  | 
|---|
| 2 | PROGRAM MAIN | 
|---|
| 3 |  | 
|---|
| 4 | C----------------------------------------------------------------------- | 
|---|
| 5 | C  MAIN PROGRAM | 
|---|
| 6 | C | 
|---|
| 7 | C  SIMULATION OF EXTENSIVE AIR SHOWERS | 
|---|
| 8 | C  PREPARES INITIALIZATIONS | 
|---|
| 9 | C  GENERATES SHOWERS IN THE SHOWER LOOP | 
|---|
| 10 | C  TREATES PARTICLES IN THE PARTICLE LOOP | 
|---|
| 11 | C  PERFORMS PRINTING OF TABLES AT END OF SHOWER AND AT END OF RUN | 
|---|
| 12 | C----------------------------------------------------------------------- | 
|---|
| 13 |  | 
|---|
| 14 | IMPLICIT DOUBLE PRECISION (A-H,O-Z) | 
|---|
| 15 |  | 
|---|
| 16 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 17 | parameter (xct=1) | 
|---|
| 18 | parameter (yct=2) | 
|---|
| 19 | parameter (zct=3) | 
|---|
| 20 | parameter (ctthet=4) | 
|---|
| 21 | parameter (ctphi=5) | 
|---|
| 22 | parameter (ctdiam=6) | 
|---|
| 23 | parameter (ctfoc=7) | 
|---|
| 24 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 25 |  | 
|---|
| 26 | *KEEP,BAL. | 
|---|
| 27 | COMMON /BAL/     EBAL | 
|---|
| 28 | DOUBLE PRECISION EBAL(10) | 
|---|
| 29 | *KEEP,BUFFS. | 
|---|
| 30 | COMMON /BUFFS/   RUNH,RUNE,EVTH,EVTE,DATAB,LH | 
|---|
| 31 | INTEGER          MAXBUF,MAXLEN | 
|---|
| 32 | PARAMETER        (MAXBUF=39*7) | 
|---|
| 33 | PARAMETER        (MAXLEN=12) | 
|---|
| 34 | REAL             RUNH(MAXBUF),EVTH(MAXBUF),EVTE(MAXBUF), | 
|---|
| 35 | *                 RUNE(MAXBUF),DATAB(MAXBUF) | 
|---|
| 36 | INTEGER          LH | 
|---|
| 37 | CHARACTER*4      CRUNH,CRUNE,CEVTH,CEVTE | 
|---|
| 38 | EQUIVALENCE      (RUNH(1),CRUNH), (RUNE(1),CRUNE) | 
|---|
| 39 | EQUIVALENCE      (EVTH(1),CEVTH), (EVTE(1),CEVTE) | 
|---|
| 40 | *KEEP,CHISTA. | 
|---|
| 41 | COMMON /CHISTA/  IHYCHI,IKACHI,IMUCHI,INNCHI,INUCHI,IPICHI | 
|---|
| 42 | INTEGER          IHYCHI(124),IKACHI(124),IMUCHI(124), | 
|---|
| 43 | *                 INNCHI(124),INUCHI(124),IPICHI(124) | 
|---|
| 44 | *KEEP,CONST. | 
|---|
| 45 | COMMON /CONST/   PI,PI2,OB3,TB3,ENEPER | 
|---|
| 46 | DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER | 
|---|
| 47 | *KEEP,CURVE. | 
|---|
| 48 | COMMON /CURVE/   CHAPAR,DEP,ERR,NSTP | 
|---|
| 49 | DOUBLE PRECISION CHAPAR(1100),DEP(1100),ERR(1100) | 
|---|
| 50 | INTEGER          NSTP | 
|---|
| 51 | *KEEP,ELADPM. | 
|---|
| 52 | COMMON /ELADPM/  ELMEAN,ELMEAA,IELDPM,IELDPA | 
|---|
| 53 | DOUBLE PRECISION ELMEAN(37),ELMEAA(37) | 
|---|
| 54 | INTEGER          IELDPM(37,13),IELDPA(37,13) | 
|---|
| 55 | *KEEP,ELASTY. | 
|---|
| 56 | COMMON /ELASTY/  ELAST,IELIS,IELHM,IELNU,IELPI | 
|---|
| 57 | DOUBLE PRECISION ELAST | 
|---|
| 58 | INTEGER          IELIS(20),IELHM(20),IELNU(20),IELPI(20) | 
|---|
| 59 | *KEEP,GENER. | 
|---|
| 60 | COMMON /GENER/   GEN,ALEVEL | 
|---|
| 61 | DOUBLE PRECISION GEN,ALEVEL | 
|---|
| 62 | *KEEP,IRET. | 
|---|
| 63 | COMMON /IRET/    IRET1,IRET2 | 
|---|
| 64 | INTEGER          IRET1,IRET2 | 
|---|
| 65 | *KEEP,ISTA. | 
|---|
| 66 | COMMON /ISTA/    IFINET,IFINNU,IFINKA,IFINPI,IFINHY | 
|---|
| 67 | INTEGER          IFINET,IFINNU,IFINKA,IFINPI,IFINHY | 
|---|
| 68 | *KEEP,LONGI. | 
|---|
| 69 | COMMON /LONGI/   APLONG,HLONG,PLONG,SPLONG,THSTEP,THSTPI, | 
|---|
| 70 | *                 NSTEP,LLONGI,FLGFIT | 
|---|
| 71 | DOUBLE PRECISION APLONG(0:1040,9),HLONG(0:1024),PLONG(0:1040,9), | 
|---|
| 72 | *                 SPLONG(0:1040,9),THSTEP,THSTPI | 
|---|
| 73 | INTEGER          NSTEP | 
|---|
| 74 | LOGICAL          LLONGI,FLGFIT | 
|---|
| 75 | *KEEP,MPARTI. | 
|---|
| 76 | COMMON /MPARTI/  MPARTO | 
|---|
| 77 | DOUBLE PRECISION MPARTO(10,25),MPHOTO(10),MPOSIT(10),MELECT(10), | 
|---|
| 78 | *                 MNU(10),MMUP(10),MMUM(10),MPI0(10),MPIP(10), | 
|---|
| 79 | *                 MPIM(10),MK0L(10),MKPL(10),MKMI(10),MNEUTR(10), | 
|---|
| 80 | *                 MPROTO(10),MPROTB(10),MK0S(10),MHYP(10), | 
|---|
| 81 | *                 MNEUTB(10),MDEUT(10),MTRIT(10),MALPHA(10), | 
|---|
| 82 | *                 MOTHER(10) | 
|---|
| 83 | EQUIVALENCE (MPARTO(1, 1),MPHOTO(1)), (MPARTO(1, 2),MPOSIT(1)), | 
|---|
| 84 | *            (MPARTO(1, 3),MELECT(1)), (MPARTO(1, 4),MNU(1))   , | 
|---|
| 85 | *            (MPARTO(1, 5),MMUP(1))  , (MPARTO(1, 6),MMUM(1))  , | 
|---|
| 86 | *            (MPARTO(1, 7),MPI0(1))  , (MPARTO(1, 8),MPIP(1))  , | 
|---|
| 87 | *            (MPARTO(1, 9),MPIM(1))  , (MPARTO(1,10),MK0L(1))  , | 
|---|
| 88 | *            (MPARTO(1,11),MKPL(1))  , (MPARTO(1,12),MKMI(1))  , | 
|---|
| 89 | *            (MPARTO(1,13),MNEUTR(1)), (MPARTO(1,14),MPROTO(1)), | 
|---|
| 90 | *            (MPARTO(1,15),MPROTB(1)), (MPARTO(1,16),MK0S(1))  , | 
|---|
| 91 | *            (MPARTO(1,18),MHYP(1))  , (MPARTO(1,19),MDEUT(1)) , | 
|---|
| 92 | *            (MPARTO(1,20),MTRIT(1)) , (MPARTO(1,21),MALPHA(1)), | 
|---|
| 93 | *            (MPARTO(1,22),MOTHER(1)), (MPARTO(1,25),MNEUTB(1)) | 
|---|
| 94 | *KEEP,MULT. | 
|---|
| 95 | COMMON /MULT/    EKINL,MSMM,MULTMA,MULTOT | 
|---|
| 96 | DOUBLE PRECISION EKINL | 
|---|
| 97 | INTEGER          MSMM,MULTMA(37,13),MULTOT(37,13) | 
|---|
| 98 | *KEEP,MUPART. | 
|---|
| 99 | COMMON /MUPART/  AMUPAR,BCUT,CMUON,FMUBRM,FMUORG | 
|---|
| 100 | DOUBLE PRECISION AMUPAR(14),BCUT,CMUON(11) | 
|---|
| 101 | LOGICAL          FMUBRM,FMUORG | 
|---|
| 102 | *KEEP,NCOUNT. | 
|---|
| 103 | COMMON /NCOUNT/  NCOUN | 
|---|
| 104 | INTEGER          NCOUN(8) | 
|---|
| 105 | *KEEP,NKGI. | 
|---|
| 106 | COMMON /NKGI/    SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST, | 
|---|
| 107 | *                 DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX, | 
|---|
| 108 | *                 OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT | 
|---|
| 109 | DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10), | 
|---|
| 110 | *                 ZSL(10),DIST(10), | 
|---|
| 111 | *                 DISX(-10:10),DISY(-10:10), | 
|---|
| 112 | *                 DISXY(-10:10,2),DISYX(-10:10,2), | 
|---|
| 113 | *                 DLAX (-10:10,2),DLAY (-10:10,2), | 
|---|
| 114 | *                 DLAXY(-10:10,2),DLAYX(-10:10,2), | 
|---|
| 115 | *                 OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10) | 
|---|
| 116 | INTEGER          IALT(2) | 
|---|
| 117 | *KEEP,NKGS. | 
|---|
| 118 | COMMON /NKGS/    CZX,CZY,CZXY,CZYX,SAH,SL,ZNE | 
|---|
| 119 | DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2), | 
|---|
| 120 | *                 CZYX(-10:10,2),SAH(10),SL(10),ZNE(10) | 
|---|
| 121 | *KEEP,NPARTI. | 
|---|
| 122 | COMMON /NPARTI/  NPARTO,MUOND | 
|---|
| 123 | DOUBLE PRECISION NPARTO(10,25),NPHOTO(10),NPOSIT(10),NELECT(10), | 
|---|
| 124 | *                 NNU(10),NMUP(10),NMUM(10),NPI0(10),NPIP(10), | 
|---|
| 125 | *                 NPIM(10),NK0L(10),NKPL(10),NKMI(10),NNEUTR(10), | 
|---|
| 126 | *                 NPROTO(10),NPROTB(10),NK0S(10),NHYP(10), | 
|---|
| 127 | *                 NNEUTB(10),NDEUT(10),NTRIT(10),NALPHA(10), | 
|---|
| 128 | *                 NOTHER(10),MUOND | 
|---|
| 129 | EQUIVALENCE (NPARTO(1, 1),NPHOTO(1)), (NPARTO(1, 2),NPOSIT(1)), | 
|---|
| 130 | *            (NPARTO(1, 3),NELECT(1)), (NPARTO(1, 4),NNU(1))   , | 
|---|
| 131 | *            (NPARTO(1, 5),NMUP(1))  , (NPARTO(1, 6),NMUM(1))  , | 
|---|
| 132 | *            (NPARTO(1, 7),NPI0(1))  , (NPARTO(1, 8),NPIP(1))  , | 
|---|
| 133 | *            (NPARTO(1, 9),NPIM(1))  , (NPARTO(1,10),NK0L(1))  , | 
|---|
| 134 | *            (NPARTO(1,11),NKPL(1))  , (NPARTO(1,12),NKMI(1))  , | 
|---|
| 135 | *            (NPARTO(1,13),NNEUTR(1)), (NPARTO(1,14),NPROTO(1)), | 
|---|
| 136 | *            (NPARTO(1,15),NPROTB(1)), (NPARTO(1,16),NK0S(1))  , | 
|---|
| 137 | *            (NPARTO(1,18),NHYP(1))  , (NPARTO(1,19),NDEUT(1)) , | 
|---|
| 138 | *            (NPARTO(1,20),NTRIT(1)) , (NPARTO(1,21),NALPHA(1)), | 
|---|
| 139 | *            (NPARTO(1,22),NOTHER(1)), (NPARTO(1,25),NNEUTB(1)) | 
|---|
| 140 | *KEEP,OBSPAR. | 
|---|
| 141 | COMMON /OBSPAR/  OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP, | 
|---|
| 142 | *                 THETPR,PHIPR,NOBSLV | 
|---|
| 143 | DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10), | 
|---|
| 144 | *                 THETAP,THETPR(2),PHIP,PHIPR(2) | 
|---|
| 145 | INTEGER          NOBSLV | 
|---|
| 146 | *KEEP,PAM. | 
|---|
| 147 | COMMON /PAM/     PAMA,SIGNUM | 
|---|
| 148 | DOUBLE PRECISION PAMA(6000),SIGNUM(6000) | 
|---|
| 149 | *KEEP,PARPAR. | 
|---|
| 150 | COMMON /PARPAR/  CURPAR,SECPAR,PRMPAR,OUTPAR,C, | 
|---|
| 151 | *                 E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL | 
|---|
| 152 | DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14), | 
|---|
| 153 | *                 C(50),E00,E00PN,PTOT0,PTOT0N,THICKH | 
|---|
| 154 | INTEGER          ITYPE,LEVL | 
|---|
| 155 | *KEEP,PARPAE. | 
|---|
| 156 | DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM | 
|---|
| 157 | EQUIVALENCE      (CURPAR(2),GAMMA),  (CURPAR(3),COSTHE), | 
|---|
| 158 | *                 (CURPAR(4), PHI ),  (CURPAR(5), H    ), | 
|---|
| 159 | *                 (CURPAR(6), T   ),  (CURPAR(7), X    ), | 
|---|
| 160 | *                 (CURPAR(8), Y   ),  (CURPAR(9), CHI  ), | 
|---|
| 161 | *                 (CURPAR(10),BETA),  (CURPAR(11),GCM  ), | 
|---|
| 162 | *                 (CURPAR(12),ECM ) | 
|---|
| 163 | *KEEP,PBALA. | 
|---|
| 164 | COMMON /PBALA/   PBAL | 
|---|
| 165 | DOUBLE PRECISION PBAL(10) | 
|---|
| 166 | *KEEP,PRIMSP. | 
|---|
| 167 | COMMON /PRIMSP/  PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX,ISPEC | 
|---|
| 168 | DOUBLE PRECISION PSLOPE,LLIMIT,ULIMIT,LL,UL,SLEX | 
|---|
| 169 | INTEGER          ISPEC | 
|---|
| 170 | *KEEP,RANDPA. | 
|---|
| 171 | COMMON /RANDPA/  FAC,U1,U2,RD,NSEQ,ISEED,KNOR | 
|---|
| 172 | DOUBLE PRECISION FAC,U1,U2 | 
|---|
| 173 | REAL             RD(3000) | 
|---|
| 174 | INTEGER          ISEED(103,10),NSEQ | 
|---|
| 175 | LOGICAL          KNOR | 
|---|
| 176 | *KEEP,RECORD. | 
|---|
| 177 | COMMON /RECORD/  IRECOR | 
|---|
| 178 | INTEGER          IRECOR | 
|---|
| 179 | *KEEP,REJECT. | 
|---|
| 180 | COMMON /REJECT/  AVNREJ, | 
|---|
| 181 | *                 ALTMIN,ANEXP,THICKA,THICKD,CUTLN,EONCUT, | 
|---|
| 182 | *                 FNPRIM | 
|---|
| 183 | DOUBLE PRECISION AVNREJ(10) | 
|---|
| 184 | REAL             ALTMIN(10),ANEXP(10),THICKA(10),THICKD(10), | 
|---|
| 185 | *                 CUTLN,EONCUT | 
|---|
| 186 | LOGICAL          FNPRIM | 
|---|
| 187 | *KEEP,RESON. | 
|---|
| 188 | COMMON /RESON/   RDRES,RESRAN,IRESPAR | 
|---|
| 189 | REAL             RDRES(2),RESRAN(1000) | 
|---|
| 190 | INTEGER          IRESPAR | 
|---|
| 191 |  | 
|---|
| 192 | *KEEP,RUNPAR. | 
|---|
| 193 | COMMON /RUNPAR/  FIXHEI,THICK0,HILOECM,HILOELB, | 
|---|
| 194 | *                 STEPFC,NRRUN,NSHOW,PATAPE,MONIIN, | 
|---|
| 195 | *                 MONIOU,MDEBUG,NUCNUC, | 
|---|
| 196 | *                 CETAPE, | 
|---|
| 197 | *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL, | 
|---|
| 198 | *                 N1STTR,MDBASE, | 
|---|
| 199 | *                 DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR, | 
|---|
| 200 | *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE | 
|---|
| 201 | *                ,GHEISH,GHESIG | 
|---|
| 202 | COMMON /RUNPAC/  DSN,HOST,USER | 
|---|
| 203 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB | 
|---|
| 204 | REAL             STEPFC | 
|---|
| 205 | INTEGER          NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC, | 
|---|
| 206 | *                 SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL, | 
|---|
| 207 | *                 N1STTR,MDBASE | 
|---|
| 208 | INTEGER          CETAPE | 
|---|
| 209 | CHARACTER*79     DSN | 
|---|
| 210 | CHARACTER*20     HOST,USER | 
|---|
| 211 |  | 
|---|
| 212 | LOGICAL          DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR, | 
|---|
| 213 | *                 FIX1I,FMUADD,FNKG,FPRINT,FDBASE | 
|---|
| 214 | *                ,GHEISH,GHESIG | 
|---|
| 215 | *KEEP,STACKF. | 
|---|
| 216 | COMMON /STACKF/  STACK,STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM | 
|---|
| 217 | INTEGER          MAXSTK | 
|---|
| 218 | PARAMETER        (MAXSTK = 12*340*2) | 
|---|
| 219 | DOUBLE PRECISION STACK(MAXSTK) | 
|---|
| 220 | INTEGER          STACKP,EXST,NSHIFT,NOUREC,ICOUNT,NTO,NFROM | 
|---|
| 221 | *KEEP,STATI. | 
|---|
| 222 | COMMON /STATI/   SABIN,SBBIN,INBIN,IPBIN,IKBIN,IHBIN | 
|---|
| 223 | DOUBLE PRECISION SABIN(37),SBBIN(37) | 
|---|
| 224 | INTEGER          INBIN(37),IPBIN(37),IKBIN(37),IHBIN(37) | 
|---|
| 225 | *KEEP,THNVAR. | 
|---|
| 226 | COMMON /THNVAR/  STACKINT,INT_ICOUNT,THINNING | 
|---|
| 227 | INTEGER          MAXICOUNT | 
|---|
| 228 | PARAMETER        (MAXICOUNT=20000) | 
|---|
| 229 | DOUBLE PRECISION STACKINT(MAXICOUNT,13) | 
|---|
| 230 | INTEGER          INT_ICOUNT | 
|---|
| 231 | LOGICAL          THINNING | 
|---|
| 232 | *KEEP,VERS. | 
|---|
| 233 | COMMON /VERS/    VERNUM,MVDATE,VERDAT | 
|---|
| 234 | DOUBLE PRECISION VERNUM | 
|---|
| 235 | INTEGER          MVDATE | 
|---|
| 236 | CHARACTER*18     VERDAT | 
|---|
| 237 | *KEEP,CEREN1. | 
|---|
| 238 | COMMON /CEREN1/  CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD, | 
|---|
| 239 | *                 CERSIZ,LCERFI | 
|---|
| 240 | DOUBLE PRECISION CERELE,CERHAD,ETADSN,WAVLGL,WAVLGU,CYIELD | 
|---|
| 241 | REAL             CERSIZ | 
|---|
| 242 | LOGICAL          LCERFI | 
|---|
| 243 | *KEEP,CEREN2. | 
|---|
| 244 | COMMON /CEREN2/  PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS, | 
|---|
| 245 | *                 DCERX,DCERY,ACERX,ACERY, | 
|---|
| 246 | *                 XCMAX,YCMAX,EPSX,EPSY, | 
|---|
| 247 | *                 DCERXI,DCERYI,FCERX,FCERY, | 
|---|
| 248 | *                 XSCATT,YSCATT,CERXOS,CERYOS, | 
|---|
| 249 | *                 NCERX,NCERY,ICERML | 
|---|
| 250 | REAL             PHOTCM,XCER,YCER,UEMIS,VEMIS,CARTIM,ZEMIS, | 
|---|
| 251 | *                 DCERX,DCERY,ACERX,ACERY, | 
|---|
| 252 | *                 XCMAX,YCMAX,EPSX,EPSY, | 
|---|
| 253 | *                 DCERXI,DCERYI,FCERX,FCERY, | 
|---|
| 254 | *                 XSCATT,YSCATT,CERXOS(20),CERYOS(20) | 
|---|
| 255 | INTEGER          NCERX,NCERY,ICERML | 
|---|
| 256 | *KEEP,CEREN3. | 
|---|
| 257 | COMMON /CEREN3/  CERCNT,DATAB2,LHCER | 
|---|
| 258 | INTEGER          MAXBF2 | 
|---|
| 259 | PARAMETER        (MAXBF2 = 39 * 7) | 
|---|
| 260 | DOUBLE PRECISION CERCNT | 
|---|
| 261 | REAL             DATAB2(MAXBF2) | 
|---|
| 262 | INTEGER          LHCER | 
|---|
| 263 | *KEEP,CEREN4. | 
|---|
| 264 | COMMON /CEREN4/  NRECER | 
|---|
| 265 | INTEGER          NRECER | 
|---|
| 266 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 267 | *keep,certel. | 
|---|
| 268 | common /certel/  cormxd,cord,coralp,ctpars,omega, | 
|---|
| 269 | +                 photn,photnp,phpt,pht,vphot, | 
|---|
| 270 | +                 vchi,veta,vzeta,vchim,vetam,vzetam, | 
|---|
| 271 | +                 lambda,mu,nu,nctels,ncph | 
|---|
| 272 | double precision cormxd,cord,coralp,ctpars(20,7),omega(20,3,3), | 
|---|
| 273 | +                 photn(3),photnp(3),phpt(3),pht,vphot(3), | 
|---|
| 274 | +                 vchi(3),veta(3),vzeta(3),vchim,vetam,vzetam, | 
|---|
| 275 | +                 lambda,mu,nu | 
|---|
| 276 | integer          nctels,ncph(5) | 
|---|
| 277 | double precision xg,yg,zg,xgp,ygp,zgp,up,vp,wp,xpcut,ypcut,zpcut | 
|---|
| 278 | equivalence (photn(1) ,xg)   ,(photn(2) ,yg)   ,(photn(3) ,zg)  , | 
|---|
| 279 | +            (photnp(1),xgp)  ,(photnp(2),ygp)  ,(photnp(3),zgp), | 
|---|
| 280 | +            (phpt(1)  ,xpcut),(phpt(2)  ,ypcut),(phpt(3)  ,zpcut), | 
|---|
| 281 | +            (vphot(1) ,up)   ,(vphot(2) ,vp)   ,(vphot(3) ,wp) | 
|---|
| 282 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 283 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 284 | C     Modificacion hecha por Aitor (5-feb-98) | 
|---|
| 285 | common /aitor/   aitoth | 
|---|
| 286 | double precision aitoth | 
|---|
| 287 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 288 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 289 | c     Angles for the "spinning" of a particle around the | 
|---|
| 290 | c     main axis of the CT | 
|---|
| 291 | common /spinang/ spinxi | 
|---|
| 292 | double precision spinxi | 
|---|
| 293 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 294 |  | 
|---|
| 295 |  | 
|---|
| 296 | *KEND. | 
|---|
| 297 |  | 
|---|
| 298 | INTEGER JNBIN(37),JPBIN(37),JKBIN(37),JHBIN(37) | 
|---|
| 299 | DOUBLE PRECISION CHI2,FPARAM(6) | 
|---|
| 300 | DOUBLE PRECISION MPART2(10,25),MPHOT2(10),MPOSI2(10),MELEC2(10), | 
|---|
| 301 | *                 MNU2(10),MMUP2(10),MMUM2(10),MPI02(10),MPIP2(10), | 
|---|
| 302 | *                 MPIM2(10),MK0L2(10),MKPL2(10),MKMI2(10), | 
|---|
| 303 | *                 MNETR2(10),MPROT2(10),MPRTB2(10),MK0S2(10), | 
|---|
| 304 | *                 MHYP2(10),MNETB2(10),MDEUT2(10),MTRIT2(10), | 
|---|
| 305 | *                 MALPH2(10),MOTH2(10) | 
|---|
| 306 | EQUIVALENCE (MPART2(1, 1),MPHOT2(1)), (MPART2(1, 2),MPOSI2(1)), | 
|---|
| 307 | *            (MPART2(1, 3),MELEC2(1)), (MPART2(1, 4),MNU2(1))  , | 
|---|
| 308 | *            (MPART2(1, 5),MMUP2(1)) , (MPART2(1, 6),MMUM2(1)) , | 
|---|
| 309 | *            (MPART2(1, 7),MPI02(1)) , (MPART2(1, 8),MPIP2(1)) , | 
|---|
| 310 | *            (MPART2(1, 9),MPIM2(1)) , (MPART2(1,10),MK0L2(1)) , | 
|---|
| 311 | *            (MPART2(1,11),MKPL2(1)) , (MPART2(1,12),MKMI2(1)) , | 
|---|
| 312 | *            (MPART2(1,13),MNETR2(1)), (MPART2(1,14),MPROT2(1)), | 
|---|
| 313 | *            (MPART2(1,15),MPRTB2(1)), (MPART2(1,16),MK0S2(1)) , | 
|---|
| 314 | *            (MPART2(1,18),MHYP2(1)) , (MPART2(1,19),MDEUT2(1)), | 
|---|
| 315 | *            (MPART2(1,20),MTRIT2(1)), (MPART2(1,21),MALPH2(1)), | 
|---|
| 316 | *            (MPART2(1,22),MOTH2 (1)), (MPART2(1,25),MNETB2(1)) | 
|---|
| 317 | C  VARIABLES BEING USED FOR RUNTIME | 
|---|
| 318 | REAL     TDIFF | 
|---|
| 319 | INTEGER  ILEFTA,ILEFTB,TIME | 
|---|
| 320 | EXTERNAL TIME | 
|---|
| 321 |  | 
|---|
| 322 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 323 | double precision ctdiams(20) | 
|---|
| 324 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 325 | double precision theprim, phiprim | 
|---|
| 326 | double precision spinthe, spinphi | 
|---|
| 327 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 328 |  | 
|---|
| 329 |  | 
|---|
| 330 | C----------------------------------------------------------------------- | 
|---|
| 331 |  | 
|---|
| 332 |  | 
|---|
| 333 | CERELE = 0.D0 | 
|---|
| 334 | CERHAD = 0.D0 | 
|---|
| 335 | NRECER = 0 | 
|---|
| 336 | C  INITIALIZE AND READ RUN STEERING CARDS | 
|---|
| 337 | CALL START | 
|---|
| 338 |  | 
|---|
| 339 | IF ( CERSIZ .LE. 0. ) THEN | 
|---|
| 340 | ICRSIZ = 0 | 
|---|
| 341 | ELSE | 
|---|
| 342 | ICRSIZ = 1 | 
|---|
| 343 | ENDIF | 
|---|
| 344 |  | 
|---|
| 345 | C  RESET COUNTER FOR WORDS WRITTEN TO TAPE | 
|---|
| 346 | IRECOR = 0 | 
|---|
| 347 |  | 
|---|
| 348 | C  RESET COUNTER FOR AVERAGE HIGHT OF 1ST INTERACTION | 
|---|
| 349 | CHISUM = 0.D0 | 
|---|
| 350 | CHISM2 = 0.D0 | 
|---|
| 351 |  | 
|---|
| 352 | C  SET ARRAYS FOR SCALES OF KINETIC ENERGY-INTERACTION TABLE | 
|---|
| 353 | SABIN(1) = 0.D0 | 
|---|
| 354 | SBBIN(1) = 0.1D0 | 
|---|
| 355 | DO 13  J = 2,37 | 
|---|
| 356 | SABIN(J) = 10.D0**((J-4.D0)/3.D0) | 
|---|
| 357 | SBBIN(J) = 10.D0**((J-3.D0)/3.D0) | 
|---|
| 358 | 13  CONTINUE | 
|---|
| 359 |  | 
|---|
| 360 | C  CHECK AND SET PRIMARY PARAMETERS | 
|---|
| 361 | CALL INPRM | 
|---|
| 362 |  | 
|---|
| 363 | do 161 i=1,nctels | 
|---|
| 364 | ctdiams(i) = ctpars(i,ctdiam) | 
|---|
| 365 | 161  continue | 
|---|
| 366 |  | 
|---|
| 367 | C  INITIALIZE NKG ROUTINES | 
|---|
| 368 | CALL ININKG | 
|---|
| 369 |  | 
|---|
| 370 | C  RESET COUNTERS FOR NUCLEON, PION AND KAON TABLE FOR ALL SHOWERS | 
|---|
| 371 | C  RESET ENERGY-MULTIPLICITY & ENERGY-ELASTICITY MATRIX FOR ALL SHOWERS | 
|---|
| 372 | DO 17  J = 1,37 | 
|---|
| 373 | JNBIN(J)  = 0 | 
|---|
| 374 | JPBIN(J)  = 0 | 
|---|
| 375 | JKBIN(J)  = 0 | 
|---|
| 376 | JHBIN(J)  = 0 | 
|---|
| 377 | ELMEAA(J) = 0.D0 | 
|---|
| 378 | DO 17  L = 1,13 | 
|---|
| 379 | MULTOT(J,L) = 0 | 
|---|
| 380 | IELDPA(J,L) = 0 | 
|---|
| 381 | 17  CONTINUE | 
|---|
| 382 |  | 
|---|
| 383 | C  RESET OTHER ARRAYS FOR ALL SHOWERS | 
|---|
| 384 | DO 99  J = 1,20 | 
|---|
| 385 | IELNU(J) = 0 | 
|---|
| 386 | IELPI(J) = 0 | 
|---|
| 387 | IELIS(J) = 0 | 
|---|
| 388 | IELHM(J) = 0 | 
|---|
| 389 | 99  CONTINUE | 
|---|
| 390 |  | 
|---|
| 391 | C  RESET ARRAYS FOR INTERACTION LENGTH STATISTICS | 
|---|
| 392 | DO 90  J = 1,124 | 
|---|
| 393 | IHYCHI(J) = 0 | 
|---|
| 394 | IKACHI(J) = 0 | 
|---|
| 395 | IMUCHI(J) = 0 | 
|---|
| 396 | INUCHI(J) = 0 | 
|---|
| 397 | IPICHI(J) = 0 | 
|---|
| 398 | INNCHI(J) = 0 | 
|---|
| 399 | 90  CONTINUE | 
|---|
| 400 |  | 
|---|
| 401 | C  RESET ARRAY FOR MEAN VALUES AND STANDARD DEVIATION | 
|---|
| 402 | DO 477  K = 1,25 | 
|---|
| 403 | DO 477  J = 1,10 | 
|---|
| 404 | MPARTO(J,K) = 0.D0 | 
|---|
| 405 | MPART2(J,K) = 0.D0 | 
|---|
| 406 | 477  CONTINUE | 
|---|
| 407 |  | 
|---|
| 408 | C  RESET ARRAYS FOR LONGITUDINAL DISTRIBUTION | 
|---|
| 409 | IF ( LLONGI ) THEN | 
|---|
| 410 | DO 478  K = 1,9 | 
|---|
| 411 | DO 4781  J = 0,NSTEP | 
|---|
| 412 | APLONG(J,K) = 0.D0 | 
|---|
| 413 | SPLONG(J,K) = 0.D0 | 
|---|
| 414 | 4781     CONTINUE | 
|---|
| 415 | 478    CONTINUE | 
|---|
| 416 | ENDIF | 
|---|
| 417 |  | 
|---|
| 418 | C  STEERING OF PRINTOUT OF RANDOM GENERATOR SEEDS | 
|---|
| 419 | IPROUT = MIN(100,NSHOW/20) | 
|---|
| 420 | IPROUT = MAX(1,IPROUT) | 
|---|
| 421 |  | 
|---|
| 422 | C  TIME AT BEGINNING | 
|---|
| 423 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 424 | c      ILEFTA = TIME() | 
|---|
| 425 | ILEFTA = 0 | 
|---|
| 426 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 427 | C | 
|---|
| 428 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 429 | C | 
|---|
| 430 | C     Modified by C. Bigongiari 2001 Jan 16 | 
|---|
| 431 | C | 
|---|
| 432 | C | 
|---|
| 433 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 434 | print *,'JCIO::========================================' | 
|---|
| 435 | print *,'JCIO:: Initializing JCIO system for advanced' | 
|---|
| 436 | print *,'JCIO:: saving of data.' | 
|---|
| 437 | print *,'JCIO::========================================' | 
|---|
| 438 | C | 
|---|
| 439 | Cc- initialize jcio system | 
|---|
| 440 | C | 
|---|
| 441 | call jcinitio(dsn,nrrun) | 
|---|
| 442 | Cc- create file run###### | 
|---|
| 443 | C      call jcstartrun(runh) | 
|---|
| 444 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 445 | C | 
|---|
| 446 | C- Modified JCSTARTRUN creates cer###### and dat###### files ! | 
|---|
| 447 | C | 
|---|
| 448 | C     ###### is the RUN number ! | 
|---|
| 449 | C | 
|---|
| 450 |  | 
|---|
| 451 | call jcstartrun(RUNH) | 
|---|
| 452 |  | 
|---|
| 453 | C | 
|---|
| 454 | C- write Run Header on cer and dat files | 
|---|
| 455 | C | 
|---|
| 456 | CALL TOBUF(RUNH,0) | 
|---|
| 457 | IF ( LCERFI ) CALL TOBUFC(RUNH,0) | 
|---|
| 458 |  | 
|---|
| 459 | C | 
|---|
| 460 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 461 | C | 
|---|
| 462 | C----------------------------------------------------------------------- | 
|---|
| 463 | C  LOOP OVER SHOWERS | 
|---|
| 464 |  | 
|---|
| 465 | DO 2  ISHW = 1,NSHOW | 
|---|
| 466 |  | 
|---|
| 467 |  | 
|---|
| 468 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 469 | c   Next block of code has been modified, and comes from INPRM | 
|---|
| 470 | c---------------------------------------------------------------------- | 
|---|
| 471 | C  SCATTERING OF CENTER OF CHERENKOV ARRAY RELATIVE TO SHOWER AXIS | 
|---|
| 472 | c>> Actually, XSCATT and YSCATT should be RminSCATT and RmaxSCATT | 
|---|
| 473 | ICERML = MIN(MAX(ICERML,1),20) | 
|---|
| 474 | XSCATT = ABS(XSCATT) | 
|---|
| 475 | YSCATT = ABS(YSCATT) | 
|---|
| 476 | WRITE(MONIOU,5225)ICERML,XSCATT,YSCATT | 
|---|
| 477 | 5225   FORMAT(' ** USING EACH SHOWER SEVERAL TIMES:'/ | 
|---|
| 478 | +     ' USE EACH EVENT ',I2,' TIMES'/ | 
|---|
| 479 | +     ' THE EVENTS ARE SCATTERED RANDOMLY IN A SECTOR OF RADII:'/ | 
|---|
| 480 | +     '   Rmin = ',F10.0,'   Rmax = ',F10.0) | 
|---|
| 481 | DO 4438 I=1,ICERML | 
|---|
| 482 | 5226     CALL RMMAR( RD,2,3 ) | 
|---|
| 483 | CERXOS(I) = 2.0*YSCATT*(RD(1)-0.5) | 
|---|
| 484 | CERYOS(I) = 2.0*YSCATT*(RD(2)-0.5) | 
|---|
| 485 | R=SQRT(CERXOS(I)**2+CERYOS(I)**2) | 
|---|
| 486 | IF ((R.LT.XSCATT).OR.(R.GT.YSCATT)) GOTO 5226 | 
|---|
| 487 | WRITE(MONIOU,4437) I,CERXOS(I),CERYOS(I) | 
|---|
| 488 | 4437     FORMAT('    CORE OF EVENT ',I2,'  AT  ',2F12.2) | 
|---|
| 489 | 4438   CONTINUE | 
|---|
| 490 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 491 |  | 
|---|
| 492 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 493 | c   Next block of code comes from INPRM | 
|---|
| 494 | c---------------------------------------------------------------------- | 
|---|
| 495 | EVTH(98) = FLOAT(ICERML) | 
|---|
| 496 | DO  480 I=1,20 | 
|---|
| 497 | EVTH( 98+I) = CERXOS(I) | 
|---|
| 498 | EVTH(118+I) = CERYOS(I) | 
|---|
| 499 | 480    CONTINUE | 
|---|
| 500 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 501 |  | 
|---|
| 502 | SHOWNO = SHOWNO + 1 | 
|---|
| 503 | I      = ISHW | 
|---|
| 504 | IF ( ISHW .LE. MAXPRT ) THEN | 
|---|
| 505 | FPRINT = .TRUE. | 
|---|
| 506 | ELSE | 
|---|
| 507 | FPRINT = .FALSE. | 
|---|
| 508 | ENDIF | 
|---|
| 509 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 510 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 511 | Cc   Create cer######,dat######,sta###### files | 
|---|
| 512 | Cc------------------------------------------------------------ | 
|---|
| 513 | C        call jcnewshower | 
|---|
| 514 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 515 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 516 |  | 
|---|
| 517 | C  RESET COUNTERS | 
|---|
| 518 | DO 447  K = 1,25 | 
|---|
| 519 | DO 447  J = 1,10 | 
|---|
| 520 | NPARTO(J,K) = 0.D0 | 
|---|
| 521 | 447    CONTINUE | 
|---|
| 522 | MUOND = 0.D0 | 
|---|
| 523 |  | 
|---|
| 524 | C  RESET ARRAY FOR LONGITUDINAL DISTRIBUTION PER SHOWER | 
|---|
| 525 | IF ( LLONGI ) THEN | 
|---|
| 526 | DO 479  K = 1,9 | 
|---|
| 527 | DO 4791  J = 0,NSTEP | 
|---|
| 528 | PLONG(J,K) = 0.D0 | 
|---|
| 529 | 4791       CONTINUE | 
|---|
| 530 | 479      CONTINUE | 
|---|
| 531 | ENDIF | 
|---|
| 532 |  | 
|---|
| 533 | NRECS = 0 | 
|---|
| 534 | NBLKS = 0 | 
|---|
| 535 | DO 922  KKK = 1,10 | 
|---|
| 536 | AVNREJ(KKK) = 0.D0 | 
|---|
| 537 | 922    CONTINUE | 
|---|
| 538 | IRESPAR = 0 | 
|---|
| 539 |  | 
|---|
| 540 |  | 
|---|
| 541 | C  FIRST INTERACTION DATA | 
|---|
| 542 | FIRSTI = .TRUE. | 
|---|
| 543 | IFINET = 0 | 
|---|
| 544 | IFINNU = 0 | 
|---|
| 545 | IFINKA = 0 | 
|---|
| 546 | IFINPI = 0 | 
|---|
| 547 | IFINHY = 0 | 
|---|
| 548 | ELAST  = 0.D0 | 
|---|
| 549 |  | 
|---|
| 550 | C  RESET COUNTERS FOR NUCLEON, PION AND KAON TABLE FOR SHOWER | 
|---|
| 551 | C  RESET ENERGY-MULTIPLICITY & ENERGY-ELASTICITY MATRIX FOR SHOWER | 
|---|
| 552 | DO 11  J = 1,37 | 
|---|
| 553 | INBIN(J) = 0 | 
|---|
| 554 | IPBIN(J) = 0 | 
|---|
| 555 | IKBIN(J) = 0 | 
|---|
| 556 | IHBIN(J) = 0 | 
|---|
| 557 | ELMEAN(J) = 0.D0 | 
|---|
| 558 | DO 11  L = 1,13 | 
|---|
| 559 | MULTMA(J,L) = 0 | 
|---|
| 560 | IELDPM(J,L) = 0 | 
|---|
| 561 | 11    CONTINUE | 
|---|
| 562 |  | 
|---|
| 563 | DO 12  J = 1,10 | 
|---|
| 564 | PBAL(J) = 0.D0 | 
|---|
| 565 | EBAL(J) = 0.D0 | 
|---|
| 566 | 12    CONTINUE | 
|---|
| 567 |  | 
|---|
| 568 | C  INITIALIZE PARTICLE STACK | 
|---|
| 569 | CALL ISTACK | 
|---|
| 570 | C  RESET STACKINT | 
|---|
| 571 | DO J=1,MAXICOUNT | 
|---|
| 572 | DO K=1,MAXLEN | 
|---|
| 573 | STACKINT(J,K) = 0.D0 | 
|---|
| 574 | ENDDO | 
|---|
| 575 | ENDDO | 
|---|
| 576 |  | 
|---|
| 577 | C  INITIALIZE EVENT HEADER AND END FOR EACH EVENT | 
|---|
| 578 | DO 2123  L = 2,43 | 
|---|
| 579 | EVTH(L) = 0. | 
|---|
| 580 | 2123   CONTINUE | 
|---|
| 581 | DO 123  L = 2,MAXBUF | 
|---|
| 582 | EVTE(L) = 0. | 
|---|
| 583 | 123    CONTINUE | 
|---|
| 584 |  | 
|---|
| 585 | C  SHOWER BEGIN PRINTOUT | 
|---|
| 586 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,105) SHOWNO | 
|---|
| 587 | 105    FORMAT ('1',10('='),' SHOWER NO ',I10,' ',47('=')/) | 
|---|
| 588 |  | 
|---|
| 589 | C  RANDOM GENERATOR STATUS AT BEGINNING OF SHOWER CALCULATION | 
|---|
| 590 | EVTH(13) = NSEQ | 
|---|
| 591 | DO 45  L = 1,NSEQ | 
|---|
| 592 | CALL RMMAQ( ISEED(1,L), L, 'R' ) | 
|---|
| 593 | C  SEED | 
|---|
| 594 | EVTH(11+L*3) = ISEED(1,L) | 
|---|
| 595 | C  NUMBER OF CALLS | 
|---|
| 596 | EVTH(12+L*3) = MOD ( ISEED(2,L), 1000000 ) | 
|---|
| 597 | C  NUMBER OF MILLIONS | 
|---|
| 598 | EVTH(13+L*3) = ISEED(3,L)*1000 + INT( ISEED(2,L)/1000000 ) | 
|---|
| 599 | 45    CONTINUE | 
|---|
| 600 | IF ( FPRINT  .OR.  DEBUG  .OR.  MOD(ISHW-1,IPROUT).EQ.0 ) THEN | 
|---|
| 601 | CALL PRTIME(TTIME) | 
|---|
| 602 | WRITE(MONIOU,158) SHOWNO,(L,(ISEED(J,L),J=1,3),L=1,NSEQ) | 
|---|
| 603 | 158      FORMAT(' AND RANDOM NUMBER GENERATOR AT BEGIN OF EVENT :',I8, | 
|---|
| 604 | *            /,(' SEQUENCE = ',I2,'  SEED = ',I9 ,'  CALLS = ',I9, | 
|---|
| 605 | *               '  BILLIONS = ',I9)) | 
|---|
| 606 | ENDIF | 
|---|
| 607 | C  RESET KNOR | 
|---|
| 608 | KNOR = .TRUE. | 
|---|
| 609 |  | 
|---|
| 610 | C  GET FULL RANDOM GENERATOR STATUS (103 WORDS PER SEQUENCE) | 
|---|
| 611 | CC      DO 495  L = 1,NSEQ | 
|---|
| 612 | CC        CALL RMMAQ( ISEED(1,L), L, 'RV' ) | 
|---|
| 613 | CC        WRITE(MONIOU,658) L,(ISEED(J,L),J=1,103) | 
|---|
| 614 | CC658     FORMAT ( ' FULL RANDOM NUMBER GENERATOR STATUS ', | 
|---|
| 615 | CC   *             'FOR SEQUENCE ',I2,/(' ',10I11)) | 
|---|
| 616 | CC495   CONTINUE | 
|---|
| 617 |  | 
|---|
| 618 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 619 | c>> *** ATENTION *** ATENTION *** ATENTION *** ATENTION *** ATENTION >> | 
|---|
| 620 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 621 | c>>                                                                  >> | 
|---|
| 622 | c>> In the next block (between this ATENTION comments) CORSIKA makes >> | 
|---|
| 623 | c>> three things, in this order:                                     >> | 
|---|
| 624 | c>>                                                                  >> | 
|---|
| 625 | c>>   i. Set ANGLES OF INCIDENCE (different distributions of theta   >> | 
|---|
| 626 | c>>      for gammas -flat- and hadrons -standard.                    >> | 
|---|
| 627 | c>>  ii. Set HEIGHT for start at THICK0 (normally = 0 => 112.8 Km)   >> | 
|---|
| 628 | c>> iii. Set ENERGY of the primary.                                  >> | 
|---|
| 629 | c>>                                                                  >> | 
|---|
| 630 | c>> (The original order was ii., iii. and i.)                        >> | 
|---|
| 631 | c>>                                                                  >> | 
|---|
| 632 | c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 633 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 634 |  | 
|---|
| 635 |  | 
|---|
| 636 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 637 | C  GET PRIMARY ANGLES OF INCIDENCE | 
|---|
| 638 | IF ( FIXINC ) THEN | 
|---|
| 639 |  | 
|---|
| 640 | THETAP = THETPR(1) | 
|---|
| 641 | PHIP   = PHIPR(1) | 
|---|
| 642 | PRMPAR(3) = COS(THETAP) | 
|---|
| 643 |  | 
|---|
| 644 | ELSE | 
|---|
| 645 |  | 
|---|
| 646 | if ( prmpar(1).eq.1 ) then | 
|---|
| 647 |  | 
|---|
| 648 | C>> GAMMAS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 649 | C NOTE!! We will use a FLAT distribution for THETA: | 
|---|
| 650 | C Then, next block (original block) must be commented. | 
|---|
| 651 | c The modificated code follows this block | 
|---|
| 652 | c | 
|---|
| 653 | CALL RMMAR( RD,3,1 ) | 
|---|
| 654 | CT1 = THETPR(1) | 
|---|
| 655 | CT2 = THETPR(2) | 
|---|
| 656 | THETAP = RD(2)*(CT2 - CT1) + CT1 | 
|---|
| 657 | CTT  = COS(THETAP) | 
|---|
| 658 | PRMPAR(3) = CTT | 
|---|
| 659 |  | 
|---|
| 660 | else | 
|---|
| 661 |  | 
|---|
| 662 | C>> HADRONS AND ELECTRONS (AND ANY OTHER BUT GAMMAS) >>>>>>>>>>>>>>>> | 
|---|
| 663 | c  Choose angles at random with equal flux for all directions | 
|---|
| 664 | c  with horizontal detector array (see: O.C. Allkofer & P.K.F. Grieder, | 
|---|
| 665 | c  Cosmic Rays on Earth, in: Physics Data 25/1, H.Behrens & G.Ebel Ed., | 
|---|
| 666 | c  (Fachinformationszentrum Karlsruhe, Germany, 1983) chpt. 1.1.2) | 
|---|
| 667 | c | 
|---|
| 668 | CALL RMMAR( RD,3,1 ) | 
|---|
| 669 | CT1 = SIN(THETPR(1))**2 | 
|---|
| 670 | CT2 = SIN(THETPR(2))**2 | 
|---|
| 671 | CTT  = SQRT( 1.D0 - RD(2)*(CT2 - CT1) - CT1 ) | 
|---|
| 672 | PRMPAR(3) = CTT | 
|---|
| 673 | THETAP = ACOS(CTT) | 
|---|
| 674 |  | 
|---|
| 675 | endif | 
|---|
| 676 |  | 
|---|
| 677 | PHIP = RD(1) * ( PHIPR(2) - PHIPR(1) ) + PHIPR(1) | 
|---|
| 678 |  | 
|---|
| 679 | ENDIF | 
|---|
| 680 | PRMPAR(4) = PHIP | 
|---|
| 681 |  | 
|---|
| 682 |  | 
|---|
| 683 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 684 | C  DEFINE HEIGHT FOR START AT THICK0 (IN G/CM**2) (112.8 KM FOR THICK0=0) | 
|---|
| 685 | PRMPAR(5) = HEIGH(THICK0) | 
|---|
| 686 |  | 
|---|
| 687 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 688 | C  GET PRIMARY ENERGY INTO PRMPAR(2) | 
|---|
| 689 | IF ( ISPEC .EQ. 0 ) THEN | 
|---|
| 690 | PRMPAR(2) = LLIMIT | 
|---|
| 691 | ELSE | 
|---|
| 692 | CALL RMMAR( RD,1,1 ) | 
|---|
| 693 | IF ( PSLOPE .NE. -1.D0 ) THEN | 
|---|
| 694 | PRMPAR(2) = ( RD(1)*UL + ( 1.D0-RD(1) )*LL )**SLEX | 
|---|
| 695 | ELSE | 
|---|
| 696 | PRMPAR(2) = LLIMIT * LL**RD(1) | 
|---|
| 697 | ENDIF | 
|---|
| 698 | ENDIF | 
|---|
| 699 |  | 
|---|
| 700 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 701 | c>> *** ATENTION *** ATENTION *** ATENTION *** ATENTION *** ATENTION >> | 
|---|
| 702 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 703 |  | 
|---|
| 704 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 705 | c>> Modification: this is no longer needed >>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 706 | c>> (Superseeded by Sphere algorithm, see cerenkov.f) >>>>>>>>>>>>>>>>> | 
|---|
| 707 | c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 708 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 709 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 710 | cc Btw, we now modify the "shadow area" of the telescopes, | 
|---|
| 711 | cc to cover the angle theta. | 
|---|
| 712 | c        do 160 i=1,nctels | 
|---|
| 713 | c          ctpars(i,ctdiam) = ctdiams(i)/cos(thetap) | 
|---|
| 714 | c          write (MONIOU,*) | 
|---|
| 715 | c     *        'New region for CT',i,' = ',ctpars(i,ctdiam) | 
|---|
| 716 | c 160    continue | 
|---|
| 717 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 718 |  | 
|---|
| 719 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 720 | c Here we calculate the angles spinphi and spinthe, which are the | 
|---|
| 721 | c phi and theta angles of the particle, with respect to the direction | 
|---|
| 722 | c where the CT is pointing to. spinthe is the angular displacement | 
|---|
| 723 | c of the new direction respect to the original (CT); spinphi=0 means | 
|---|
| 724 | c that the new direction is towards the zenith, spinphi=+-180 means | 
|---|
| 725 | c towards the horizont. | 
|---|
| 726 | c See the document "simulation.tex" | 
|---|
| 727 |  | 
|---|
| 728 | c First, save the "CT" orientation | 
|---|
| 729 | c (moved from a couple of lines below, marked with [*]) | 
|---|
| 730 | EVTH(11) = THETAP | 
|---|
| 731 | EVTH(12) = PHIP | 
|---|
| 732 |  | 
|---|
| 733 | CALL RMMAR( RD,3,1 ) | 
|---|
| 734 |  | 
|---|
| 735 | c Then, calculate the new direction relative to the CT direction | 
|---|
| 736 | spinphi = RD(1)*PI | 
|---|
| 737 | spinthe = RD(2)*spinxi*pi/180 | 
|---|
| 738 |  | 
|---|
| 739 | c And then, RE-calculate the GLOBAL direction in CORSIKA | 
|---|
| 740 | c We use formulae for spherical triangles | 
|---|
| 741 |  | 
|---|
| 742 | if ( THETAP .EQ. 0.0 ) then | 
|---|
| 743 | theprim = spinthe | 
|---|
| 744 | phiprim = spinphi | 
|---|
| 745 | elseif ( spinthe .eq. 0.0 ) then | 
|---|
| 746 | theprim = THETAP | 
|---|
| 747 | phiprim = 0.0 | 
|---|
| 748 | else | 
|---|
| 749 | theprim = acos( cos(THETAP)*cos(spinthe)+ | 
|---|
| 750 | $                  sin(THETAP)*sin(spinthe)*cos(spinphi) ) | 
|---|
| 751 | phiprim = asin( sin(spinthe)*sin(spinphi)/sin(theprim) ) | 
|---|
| 752 | endif | 
|---|
| 753 | THETAP = theprim | 
|---|
| 754 | EVTH(140) = spinthe | 
|---|
| 755 | if (RD(3).gt.0.5) then | 
|---|
| 756 | PHIP = PHIP - phiprim | 
|---|
| 757 | EVTH(141) = -spinphi | 
|---|
| 758 | else | 
|---|
| 759 | PHIP = PHIP + phiprim | 
|---|
| 760 | EVTH(141) = spinphi | 
|---|
| 761 | endif | 
|---|
| 762 | PRMPAR(3) = COS(THETAP) | 
|---|
| 763 | PRMPAR(4) = PHIP | 
|---|
| 764 |  | 
|---|
| 765 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 766 |  | 
|---|
| 767 |  | 
|---|
| 768 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 769 | c>> Modification (HZA trick) cancelled >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 770 | c>> JCG Wed Sep 21 10:49:14 MET DST 1998 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 771 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 772 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 773 | C     Modificacion hecha por Aitor | 
|---|
| 774 | c         aitoth = THETAP | 
|---|
| 775 | C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 776 |  | 
|---|
| 777 | C  CALCULATE COORDINATE CORRECTION FOR TOP OF ATMOSPHERE | 
|---|
| 778 | CALL COORIN( PRMPAR(5) ) | 
|---|
| 779 |  | 
|---|
| 780 | C  COUNTER FOR PARTICLE OUTPUT | 
|---|
| 781 | LH = 0 | 
|---|
| 782 | C  COUNTER FOR CERENKOV OUTPUT | 
|---|
| 783 | IF ( LCERFI ) LHCER = 0 | 
|---|
| 784 | C  CALCULATE BUNCH SIZE FOR CERENKOV PHOTONS IF NOT SET IN DATAC | 
|---|
| 785 | IF ( ICRSIZ .EQ. 0 ) THEN | 
|---|
| 786 | CALL GETBUS( NINT(PRMPAR(1)),SNGL(PRMPAR(2)),SNGL(PRMPAR(3)), | 
|---|
| 787 | *                  CERSIZ ) | 
|---|
| 788 | WRITE(MONIOU,*)'CERENKOV BUNCH SIZE IS CALCULATED TO=',CERSIZ | 
|---|
| 789 | ENDIF | 
|---|
| 790 | C  GET GAMMA FACTOR FROM ENERGY | 
|---|
| 791 | C  FOR GAMMAS PRMPAR(2) STAYS = ENERGY | 
|---|
| 792 | IF ( PRMPAR(1) .NE. 1.D0 ) | 
|---|
| 793 | *              PRMPAR(2) = PRMPAR(2) / PAMA(NINT(PRMPAR(1))) | 
|---|
| 794 |  | 
|---|
| 795 | C  SET PRIMARY TO CURRENT PARTICLE | 
|---|
| 796 | DO 3  J = 1,8 | 
|---|
| 797 | CURPAR(J) = PRMPAR(J) | 
|---|
| 798 | NCOUN(J)  = 0 | 
|---|
| 799 | 3     CONTINUE | 
|---|
| 800 | C  SET WEIGHT | 
|---|
| 801 |  | 
|---|
| 802 | C  CALCULATE FIRST INTERACTION POINT IF HADRONIC | 
|---|
| 803 | GEN = 0.D0 | 
|---|
| 804 |  | 
|---|
| 805 | H = HEIGH(THICK0) | 
|---|
| 806 | CALL BOX2 | 
|---|
| 807 | IF ( FIX1I ) THEN | 
|---|
| 808 | CHI = THICK(FIXHEI) / PRMPAR(3) | 
|---|
| 809 | H = FIXHEI | 
|---|
| 810 | FDECAY = .FALSE. | 
|---|
| 811 | ELSE | 
|---|
| 812 | H = HEIGH ( CHI*PRMPAR(3) + THICK0 ) | 
|---|
| 813 | ENDIF | 
|---|
| 814 | CHISUM = CHISUM + CHI | 
|---|
| 815 | CHISM2 = CHISM2 + CHI**2 | 
|---|
| 816 | ALEVEL = H | 
|---|
| 817 | C  INITIALIZE COORDINATE CORRECTIONS FOR HADRONIC PRIMARIES | 
|---|
| 818 | C  FOR EM PRIMARIES IT IS DONE IN EGS | 
|---|
| 819 | HH = MAX( H, 0.D0 ) | 
|---|
| 820 | IF ( CURPAR(1) .GT. 3.D0 ) CALL COORIN( HH ) | 
|---|
| 821 |  | 
|---|
| 822 | IF ( FMUADD ) THEN | 
|---|
| 823 | IF ( CURPAR(1) .EQ. 5  .OR.  CURPAR(1) .EQ. 6) THEN | 
|---|
| 824 | DO J = 1,MAXLEN | 
|---|
| 825 | AMUPAR(J) = CURPAR(J) | 
|---|
| 826 | ENDDO | 
|---|
| 827 | AMUPAR(5) = PRMPAR(5) | 
|---|
| 828 | IF(DEBUG)WRITE(MDEBUG,*)'MAIN  : MUON STORED IN AMUPAR' | 
|---|
| 829 | FMUORG = .TRUE. | 
|---|
| 830 | ENDIF | 
|---|
| 831 | ENDIF | 
|---|
| 832 |  | 
|---|
| 833 | C  SET TARGET FLAG IF SELECTED FOR FIRST INTERACTION | 
|---|
| 834 | IF ( N1STTR .GT. 0 ) THEN | 
|---|
| 835 | FIXTAR  = .TRUE. | 
|---|
| 836 | FDECAY  = .FALSE. | 
|---|
| 837 | EVTH(6) = REAL(N1STTR) | 
|---|
| 838 | ELSE | 
|---|
| 839 | FIXTAR  = .FALSE. | 
|---|
| 840 | EVTH(6) = 0.0 | 
|---|
| 841 | ENDIF | 
|---|
| 842 |  | 
|---|
| 843 | C  INITIALIZE ARRAYS FOR NKG FOR EACH SHOWER | 
|---|
| 844 | IF ( FNKG ) CALL STANKG | 
|---|
| 845 |  | 
|---|
| 846 | C  STORE FIRST PARTICLE IN HEADER AND PRINT IT OUT | 
|---|
| 847 | EVTH( 2) = REAL(SHOWNO) | 
|---|
| 848 | EVTH( 3) = CURPAR(1) | 
|---|
| 849 | IF ( CURPAR(1) .EQ. 1.D0 ) THEN | 
|---|
| 850 | C  PRIMARY ENERGY FOR PHOTONS | 
|---|
| 851 | E00    = GAMMA | 
|---|
| 852 | E00PN  = GAMMA | 
|---|
| 853 | INUCL  = 1 | 
|---|
| 854 | ELSE | 
|---|
| 855 | E00    = GAMMA * PAMA(NINT(CURPAR(1))) | 
|---|
| 856 | INUCL  = INT(MAX(1.D0,CURPAR(1)/100.D0)) | 
|---|
| 857 | E00PN  = E00 / INUCL | 
|---|
| 858 | ENDIF | 
|---|
| 859 | EVTH(147) = 0. | 
|---|
| 860 |  | 
|---|
| 861 | IF ( FEGS ) THEN | 
|---|
| 862 | C  PARAMETER FOR ELECTRON AND PHOTON REJECT (CONVERT ENERGY TO MEV) | 
|---|
| 863 | EONCUT = .5E-9*SQRT(E00*1000.D0) | 
|---|
| 864 | CUTLN  = LOG(EONCUT) | 
|---|
| 865 | ENDIF | 
|---|
| 866 | EVTH( 4) = E00 | 
|---|
| 867 | EVTH( 5) = THICK0 | 
|---|
| 868 | EVTH( 7) = H | 
|---|
| 869 | PTOT0    = SQRT( E00**2 - PAMA(NINT(CURPAR(1)))**2 ) | 
|---|
| 870 | PTOT0N   = PTOT0 / INUCL | 
|---|
| 871 | ST       = SQRT(1.D0-COSTHE**2) | 
|---|
| 872 | EVTH( 8) = PTOT0 * ST * COS(PHI) | 
|---|
| 873 | EVTH( 9) = PTOT0 * ST * SIN(PHI) | 
|---|
| 874 | EVTH(10) = PTOT0 * COSTHE | 
|---|
| 875 |  | 
|---|
| 876 |  | 
|---|
| 877 | c | 
|---|
| 878 | c [*] one block from here sent above | 
|---|
| 879 | c | 
|---|
| 880 |  | 
|---|
| 881 | EVTH(85) = CERSIZ | 
|---|
| 882 |  | 
|---|
| 883 | IF ( CURPAR(1) .GT. 3.D0 ) THEN | 
|---|
| 884 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,102) (CURPAR(J),J = 1,8) | 
|---|
| 885 | 102      FORMAT (/' PRIMARY PARAMETERS AT FIRST INTERACTION POINT'/ | 
|---|
| 886 | *               16X,1P,8E10.3) | 
|---|
| 887 | ELSE | 
|---|
| 888 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,132) | 
|---|
| 889 | 132      FORMAT (/' PRIMARY PARTICLE IS ELECTROMAGNETIC') | 
|---|
| 890 | ENDIF | 
|---|
| 891 |  | 
|---|
| 892 | C  WRITE EVENT HEADER INTO BUFFER | 
|---|
| 893 | C  FOR EM PARTICLES EVTH IS WRITTEN TO BUFFER IN EGS (IF ACTIVE) | 
|---|
| 894 | IF ( EVTH(3) .GT. 3.0  .OR.  .NOT. FEGS ) THEN | 
|---|
| 895 | CALL TOBUF ( EVTH,0 ) | 
|---|
| 896 | IF ( LCERFI ) CALL TOBUFC( EVTH,0 ) | 
|---|
| 897 | ENDIF | 
|---|
| 898 |  | 
|---|
| 899 | C  PRINT HEADER FOR HIGH ENERGY PARTICLES | 
|---|
| 900 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,103) | 
|---|
| 901 | 103    FORMAT(/'                   TYPE      GAMMA   COSTHETA ', | 
|---|
| 902 | *          '    PHI     HEIGHT     TIME      X-CM      Y-CM   ', | 
|---|
| 903 | *          '    GEN      LEVEL  E ON STACK'/) | 
|---|
| 904 | NOPART = 0 | 
|---|
| 905 |  | 
|---|
| 906 | IF ( CURPAR(1) .LE. 3.D0  .OR. | 
|---|
| 907 | *      (CURPAR(1) .GE. 5.D0  .AND.  CURPAR(1) .LE. 7.D0) ) THEN | 
|---|
| 908 | C  GIVE PARTICLE TO EGS OR NKG IF ELECTROMAGNETIC | 
|---|
| 909 | C  AND TAKE THEN NEXT PARTICLE FROM STACK | 
|---|
| 910 | C  FLAG FOR NO PRIMARY INTERACTION IS SET FOR ALL BUT ELM. PRIMARIES | 
|---|
| 911 | IF ( CURPAR(1) .LE. 3.D0 ) THEN | 
|---|
| 912 | FNPRIM = .FALSE. | 
|---|
| 913 | ELSE | 
|---|
| 914 | FNPRIM = .TRUE. | 
|---|
| 915 | H = PRMPAR(5) | 
|---|
| 916 | ENDIF | 
|---|
| 917 | CALL BOX3 | 
|---|
| 918 | IF ( FEGS ) THEN | 
|---|
| 919 | CHISUM = CHISUM + THICK(DBLE(EVTH(7))) | 
|---|
| 920 | CHISM2 = CHISM2 + THICK(DBLE(EVTH(7)))**2 | 
|---|
| 921 | ENDIF | 
|---|
| 922 | FIRSTI = .FALSE. | 
|---|
| 923 | GOTO 4 | 
|---|
| 924 |  | 
|---|
| 925 | ELSE | 
|---|
| 926 | C  HADRONIC PARTICLES | 
|---|
| 927 | FNPRIM = .TRUE. | 
|---|
| 928 |  | 
|---|
| 929 | C  FILL LONGITUDINAL DISTRIBUTION FOR THE PRIMARY PARTICLE | 
|---|
| 930 | C  THE PARTICLE IS TRACKED FROM THICK0 DOWN TO THICK0+CHI*PRMPAR(3) | 
|---|
| 931 | C  COUNT THE PARTICLES FOR THE LONGITUDINAL DEVELOPMENT | 
|---|
| 932 | IF ( LLONGI ) THEN | 
|---|
| 933 | LPCT1 = INT( THICK0 * THSTPI ) | 
|---|
| 934 | LPCT2 = INT( (THICK0 + PRMPAR(3)*CHI) * THSTPI ) | 
|---|
| 935 | LPCT2 = MIN(NSTEP,LPCT2) | 
|---|
| 936 | C  GAMMAS, ELECTRONS AND POSITRONS ARE NOT TRANSPORTED HERE, SEE EGS | 
|---|
| 937 | C  MUONS ARE TRANSPORTED IN MUTRAC | 
|---|
| 938 | C  HADRONS | 
|---|
| 939 | IF     ( ITYPE .GE. 7 .AND. ITYPE .LE. 41 ) THEN | 
|---|
| 940 | DO 5004 L = LPCT1,LPCT2 | 
|---|
| 941 | PLONG(L,6) = PLONG(L,6) + 1. | 
|---|
| 942 | 5004         CONTINUE | 
|---|
| 943 | C  CHARGED HADRONS | 
|---|
| 944 | IF ( SIGNUM(ITYPE) .NE. 0.D0 ) THEN | 
|---|
| 945 | DO 5005 L = LPCT1,LPCT2 | 
|---|
| 946 | PLONG(L,7) = PLONG(L,7) + 1. | 
|---|
| 947 | 5005           CONTINUE | 
|---|
| 948 | ENDIF | 
|---|
| 949 | C  NUCLEI | 
|---|
| 950 | ELSEIF ( ITYPE .GT. 100 ) THEN | 
|---|
| 951 | DO 5006 L = LPCT1,LPCT2 | 
|---|
| 952 | PLONG(L,8) = PLONG(L,8) + 1. | 
|---|
| 953 | 5006         CONTINUE | 
|---|
| 954 | ENDIF | 
|---|
| 955 | ENDIF | 
|---|
| 956 |  | 
|---|
| 957 | C  CHECK OBSERVATION LEVEL PASSAGE AND UPDATE PARTICLE COORDINATES | 
|---|
| 958 | HNEW = H | 
|---|
| 959 | C  FOR UPDATE WE NEED THE START ALTITUDE H | 
|---|
| 960 | H = HEIGH(THICK0) | 
|---|
| 961 | DO  251  J = 1,NOBSLV | 
|---|
| 962 | C  JUMP INTO NORMAL PARTICLE TREATMENT FOR HADRONS | 
|---|
| 963 | IF ( HNEW .GT. OBSLEV(J) ) THEN | 
|---|
| 964 | H = HNEW | 
|---|
| 965 | GOTO 6 | 
|---|
| 966 | ENDIF | 
|---|
| 967 | IF ( H .LT. OBSLEV(J) ) GOTO 251 | 
|---|
| 968 | C  REMEMBER NUMBER OF LEVEL FOR OUTPUT | 
|---|
| 969 | LEVL   = J | 
|---|
| 970 | CALL UPDATE( OBSLEV(J),THCKOB(J),J ) | 
|---|
| 971 | IF (DEBUG) WRITE(MDEBUG,256) J,IRET1,IRET2 | 
|---|
| 972 | 256        FORMAT(' MAIN  : LEVEL ',I5,' IRET1,2=',2I5) | 
|---|
| 973 | C  IF PARTICLE IS NOT CUTTED, BRING IT TO OUTPUT | 
|---|
| 974 | IF ( IRET2 .EQ. 0 ) THEN | 
|---|
| 975 | CALL OUTPUT | 
|---|
| 976 | ENDIF | 
|---|
| 977 | 251      CONTINUE | 
|---|
| 978 | IF (DEBUG) WRITE(MDEBUG,*) | 
|---|
| 979 | *       'MAIN  : PRIMARY REACHED LOWEST OBSERVATION LEVEL' | 
|---|
| 980 | GOTO 4 | 
|---|
| 981 | ENDIF | 
|---|
| 982 |  | 
|---|
| 983 |  | 
|---|
| 984 | C----------------------------------------------------------------------- | 
|---|
| 985 | C  NORMAL CYCLE | 
|---|
| 986 | 7     CONTINUE | 
|---|
| 987 |  | 
|---|
| 988 | C  IF ENERGY TOO SMALL TAKE NEXT PARTICLE | 
|---|
| 989 | IF ( GAMMA .LE. 1.D0 ) THEN | 
|---|
| 990 | IF ( CURPAR(1) .NE. 1.D0 ) THEN | 
|---|
| 991 | IF ( CURPAR(1).EQ.5.D0 .OR. CURPAR(1).EQ.6.D0 ) | 
|---|
| 992 | *                                        FMUORG = .FALSE. | 
|---|
| 993 | GOTO 4 | 
|---|
| 994 | ENDIF | 
|---|
| 995 | C  SPECIAL TREATMENT FOR PHOTONS | 
|---|
| 996 | ITYPE = 1 | 
|---|
| 997 | CHI   = 0.D0 | 
|---|
| 998 | GOTO 5 | 
|---|
| 999 | ENDIF | 
|---|
| 1000 |  | 
|---|
| 1001 | C  DETERMINE PLACE OF NEXT INTERACTION | 
|---|
| 1002 | CALL BOX2 | 
|---|
| 1003 |  | 
|---|
| 1004 | C  CHECK PASSAGE THROUGH OBSERVATION LEVELS AND TRACK PARTICLES TO THE | 
|---|
| 1005 | C  PLACE OF INTERACTION | 
|---|
| 1006 | 5     CONTINUE | 
|---|
| 1007 | IRET1 = 0 | 
|---|
| 1008 | CALL BOX3 | 
|---|
| 1009 | IF ( IRET1 .NE. 0 ) GOTO 4 | 
|---|
| 1010 |  | 
|---|
| 1011 | 6     CONTINUE | 
|---|
| 1012 | IRET1 = 0 | 
|---|
| 1013 | MSMM  = 0 | 
|---|
| 1014 |  | 
|---|
| 1015 | C  INCREMENT PARTICLE GENERATION AND PROCESS NUCLEAR INTERACTION | 
|---|
| 1016 | GEN   = GEN + 1.D0 | 
|---|
| 1017 | C  INITIALIZE INTERMEDIATE STACK FOR ONE REACTION | 
|---|
| 1018 | CALL TSTINI | 
|---|
| 1019 | CALL NUCINT | 
|---|
| 1020 | C  TRANSFER INTERMEDIATE STACK FOR ONE REACTION | 
|---|
| 1021 | CALL TSTEND | 
|---|
| 1022 |  | 
|---|
| 1023 | C  ENERGY - MULTIPLICITY STATISTICS | 
|---|
| 1024 | IF ( EKINL .LE. 0.1D0 ) THEN | 
|---|
| 1025 | MEN = 1 | 
|---|
| 1026 | ELSE | 
|---|
| 1027 | MEN = 4.D0 + 3.D0 * LOG10(EKINL) | 
|---|
| 1028 | MEN = MIN( MEN, 37 ) | 
|---|
| 1029 | ENDIF | 
|---|
| 1030 | IF ( MSMM .LE. 1 ) THEN | 
|---|
| 1031 | MMU = 1 | 
|---|
| 1032 | ELSE | 
|---|
| 1033 | MMU = 1.D0 + 3.D0 * LOG10(DBLE(MSMM)) | 
|---|
| 1034 | MMU = MIN( MMU, 13 ) | 
|---|
| 1035 | ENDIF | 
|---|
| 1036 | MULTMA(MEN,MMU) = MULTMA(MEN,MMU) + 1 | 
|---|
| 1037 | MULTOT(MEN,MMU) = MULTOT(MEN,MMU) + 1 | 
|---|
| 1038 | IF ( DEBUG ) WRITE(MDEBUG,*) 'MAIN  : EKINL,MSMM=', | 
|---|
| 1039 | *                                  SNGL(EKINL),MSMM | 
|---|
| 1040 |  | 
|---|
| 1041 | IF ( IRET1 .EQ. 0 ) THEN | 
|---|
| 1042 | IF ( DEBUG ) WRITE(MDEBUG,666) (CURPAR(II),II=1,11) | 
|---|
| 1043 | 666      FORMAT(' MAIN  : CURPAR=',1P,11E10.3) | 
|---|
| 1044 | GOTO 7 | 
|---|
| 1045 | ENDIF | 
|---|
| 1046 |  | 
|---|
| 1047 | C  GET NEXT PARTICLE FROM STACK, IF IRET=1 ALL PARTICLES ARE DONE | 
|---|
| 1048 | 4     CONTINUE | 
|---|
| 1049 | IRET1 = 0 | 
|---|
| 1050 | CALL FSTACK | 
|---|
| 1051 | IF ( FMUADD ) THEN | 
|---|
| 1052 | IF ( (CURPAR(1) .EQ. 5  .OR.  CURPAR(1) .EQ. 6) | 
|---|
| 1053 | *         .AND.  IRET1 .EQ. 0  .AND.  .NOT. FMUORG ) THEN | 
|---|
| 1054 | DO J = 1,MAXLEN | 
|---|
| 1055 | AMUPAR(J) = CURPAR(J) | 
|---|
| 1056 | ENDDO | 
|---|
| 1057 | IF(DEBUG)WRITE(MDEBUG,*)'MAIN  : MUON STORED IN AMUPAR' | 
|---|
| 1058 | FMUORG = .TRUE. | 
|---|
| 1059 | ENDIF | 
|---|
| 1060 | ENDIF | 
|---|
| 1061 |  | 
|---|
| 1062 | IF ( IRET1 .EQ. 0 ) GOTO 7 | 
|---|
| 1063 |  | 
|---|
| 1064 | C----------------------------------------------------------------------- | 
|---|
| 1065 | C  FINISH SHOWER AND PRINT INFORMATION | 
|---|
| 1066 | CALL OUTEND | 
|---|
| 1067 |  | 
|---|
| 1068 | *       IF ( DEBUG ) WRITE(MDEBUG,442) NPARTO | 
|---|
| 1069 | *442    FORMAT(' MAIN  : NPARTO='/(' ',10F10.0)) | 
|---|
| 1070 |  | 
|---|
| 1071 | IF ( FPRINT .OR. DEBUG ) THEN | 
|---|
| 1072 | IOBSLV = MIN( 5, NOBSLV ) | 
|---|
| 1073 | WRITE(MONIOU,54) (K,K=1,IOBSLV) | 
|---|
| 1074 | 54      FORMAT (/' PARTICLES AT DETECTOR LEVEL :'/ | 
|---|
| 1075 | *             ' FOR LEVEL         ', 5I13) | 
|---|
| 1076 | WRITE(MONIOU,55) (OBSLEV(K),K=1,IOBSLV) | 
|---|
| 1077 | 55      FORMAT ( ' HEIGHT IN CM        ',1P, 5E13.3/) | 
|---|
| 1078 | WRITE(MONIOU,776) 'PROTONS      ',(NPROTO(K),K=1,IOBSLV) | 
|---|
| 1079 | WRITE(MONIOU,776) 'ANTIPROTONS  ',(NPROTB(K),K=1,IOBSLV) | 
|---|
| 1080 | WRITE(MONIOU,776) 'NEUTRONS     ',(NNEUTR(K),K=1,IOBSLV) | 
|---|
| 1081 | WRITE(MONIOU,776) 'ANTINEUTRONS ',(NNEUTB(K),K=1,IOBSLV) | 
|---|
| 1082 | WRITE(MONIOU,776) 'PHOTONS      ',(NPHOTO(K),K=1,IOBSLV) | 
|---|
| 1083 | WRITE(MONIOU,776) 'ELECTRONS    ',(NELECT(K),K=1,IOBSLV) | 
|---|
| 1084 | WRITE(MONIOU,776) 'POSITRONS    ',(NPOSIT(K),K=1,IOBSLV) | 
|---|
| 1085 | WRITE(MONIOU,776) 'NEUTRINOS    ',(NNU   (K),K=1,IOBSLV) | 
|---|
| 1086 | WRITE(MONIOU,776) 'MU -         ',(NMUM  (K),K=1,IOBSLV) | 
|---|
| 1087 | WRITE(MONIOU,776) 'MU +         ',(NMUP  (K),K=1,IOBSLV) | 
|---|
| 1088 | WRITE(MONIOU,776) 'PI 0         ',(NPI0  (K),K=1,IOBSLV) | 
|---|
| 1089 | WRITE(MONIOU,776) 'PI -         ',(NPIM  (K),K=1,IOBSLV) | 
|---|
| 1090 | WRITE(MONIOU,776) 'PI +         ',(NPIP  (K),K=1,IOBSLV) | 
|---|
| 1091 | WRITE(MONIOU,776) 'K0L          ',(NK0L  (K),K=1,IOBSLV) | 
|---|
| 1092 | WRITE(MONIOU,776) 'K0S          ',(NK0S  (K),K=1,IOBSLV) | 
|---|
| 1093 | WRITE(MONIOU,776) 'K -          ',(NKMI  (K),K=1,IOBSLV) | 
|---|
| 1094 | WRITE(MONIOU,776) 'K +          ',(NKPL  (K),K=1,IOBSLV) | 
|---|
| 1095 | WRITE(MONIOU,776) 'STR. BARYONS ',(NHYP  (K),K=1,IOBSLV) | 
|---|
| 1096 | WRITE(MONIOU,776) 'DEUTERONS    ',(NDEUT (K),K=1,IOBSLV) | 
|---|
| 1097 | WRITE(MONIOU,776) 'TRITONS      ',(NTRIT (K),K=1,IOBSLV) | 
|---|
| 1098 | WRITE(MONIOU,776) 'ALPHAS       ',(NALPHA(K),K=1,IOBSLV) | 
|---|
| 1099 | WRITE(MONIOU,776) 'OTHER PARTIC.',(NOTHER(K),K=1,IOBSLV) | 
|---|
| 1100 | WRITE(MONIOU,*) | 
|---|
| 1101 | WRITE(MONIOU,776) 'DECAYED MUONS',MUOND | 
|---|
| 1102 | 776      FORMAT(' NO OF ',A13, '= ',5F13.0) | 
|---|
| 1103 |  | 
|---|
| 1104 | IF ( NOBSLV .GT. 5 ) THEN | 
|---|
| 1105 | IOBSLV =  NOBSLV | 
|---|
| 1106 | WRITE(MONIOU,54) (K,K=6,IOBSLV) | 
|---|
| 1107 | WRITE(MONIOU,55) (OBSLEV(K),K=6,IOBSLV) | 
|---|
| 1108 | WRITE(MONIOU,776) 'PROTONS      ',(NPROTO(K),K=6,IOBSLV) | 
|---|
| 1109 | WRITE(MONIOU,776) 'ANTIPROTONS  ',(NPROTB(K),K=6,IOBSLV) | 
|---|
| 1110 | WRITE(MONIOU,776) 'NEUTRONS     ',(NNEUTR(K),K=6,IOBSLV) | 
|---|
| 1111 | WRITE(MONIOU,776) 'ANTINEUTRONS ',(NNEUTB(K),K=6,IOBSLV) | 
|---|
| 1112 | WRITE(MONIOU,776) 'PHOTONS      ',(NPHOTO(K),K=6,IOBSLV) | 
|---|
| 1113 | WRITE(MONIOU,776) 'ELECTRONS    ',(NELECT(K),K=6,IOBSLV) | 
|---|
| 1114 | WRITE(MONIOU,776) 'POSITRONS    ',(NPOSIT(K),K=6,IOBSLV) | 
|---|
| 1115 | WRITE(MONIOU,776) 'NEUTRINOS    ',(NNU   (K),K=6,IOBSLV) | 
|---|
| 1116 | WRITE(MONIOU,776) 'MU -         ',(NMUM  (K),K=6,IOBSLV) | 
|---|
| 1117 | WRITE(MONIOU,776) 'MU +         ',(NMUP  (K),K=6,IOBSLV) | 
|---|
| 1118 | WRITE(MONIOU,776) 'PI 0         ',(NPI0  (K),K=6,IOBSLV) | 
|---|
| 1119 | WRITE(MONIOU,776) 'PI -         ',(NPIM  (K),K=6,IOBSLV) | 
|---|
| 1120 | WRITE(MONIOU,776) 'PI +         ',(NPIP  (K),K=6,IOBSLV) | 
|---|
| 1121 | WRITE(MONIOU,776) 'K0L          ',(NK0L  (K),K=6,IOBSLV) | 
|---|
| 1122 | WRITE(MONIOU,776) 'K0S          ',(NK0S  (K),K=6,IOBSLV) | 
|---|
| 1123 | WRITE(MONIOU,776) 'K -          ',(NKMI  (K),K=6,IOBSLV) | 
|---|
| 1124 | WRITE(MONIOU,776) 'K +          ',(NKPL  (K),K=6,IOBSLV) | 
|---|
| 1125 | WRITE(MONIOU,776) 'STR. BARYONS ',(NHYP  (K),K=6,IOBSLV) | 
|---|
| 1126 | WRITE(MONIOU,776) 'DEUTERONS    ',(NDEUT (K),K=6,IOBSLV) | 
|---|
| 1127 | WRITE(MONIOU,776) 'TRITONS      ',(NTRIT (K),K=6,IOBSLV) | 
|---|
| 1128 | WRITE(MONIOU,776) 'ALPHAS       ',(NALPHA(K),K=6,IOBSLV) | 
|---|
| 1129 | WRITE(MONIOU,776) 'OTHER PARTIC.',(NOTHER(K),K=6,IOBSLV) | 
|---|
| 1130 | WRITE(MONIOU,*) | 
|---|
| 1131 | ENDIF | 
|---|
| 1132 | ENDIF | 
|---|
| 1133 |  | 
|---|
| 1134 | C  ADD UP FOR MEAN VALUES | 
|---|
| 1135 | DO 779  K = 1,25 | 
|---|
| 1136 | DO 779  J = 1,10 | 
|---|
| 1137 | MPARTO(J,K) = MPARTO(J,K) + NPARTO(J,K) | 
|---|
| 1138 | MPART2(J,K) = MPART2(J,K) + NPARTO(J,K)**2 | 
|---|
| 1139 | 779    CONTINUE | 
|---|
| 1140 | EVTE(2) = SHOWNO | 
|---|
| 1141 | DO 335  K = 1,NOBSLV | 
|---|
| 1142 | EVTE(3) = EVTE(3) + NPHOTO(K) | 
|---|
| 1143 | EVTE(4) = EVTE(4) + NELECT(K) + NPOSIT(K) | 
|---|
| 1144 | EVTE(5) = EVTE(5) + NPROTO(K) + NPROTB(K) + NNEUTR(K) + | 
|---|
| 1145 | *              NNEUTB(K) + NPI0(K) + NPIM(K) + NPIP(K) + NK0L(K) + | 
|---|
| 1146 | *              NK0S(K) + NKMI(K) + NKPL(K) + NHYP(K) + | 
|---|
| 1147 | *              NDEUT(K) + NTRIT(K) + NALPHA(K) + NOTHER(K) | 
|---|
| 1148 | EVTE(6) = EVTE(6) + NMUP(K) + NMUM(K) | 
|---|
| 1149 | 335    CONTINUE | 
|---|
| 1150 | EVTE(7)   = NOPART | 
|---|
| 1151 |  | 
|---|
| 1152 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,110) | 
|---|
| 1153 | *                  IFINNU,IFINPI,IFINET,IFINKA,IFINHY, | 
|---|
| 1154 | *                  IFINNU+IFINPI+IFINET+IFINKA+IFINHY,ELAST | 
|---|
| 1155 | 110    FORMAT(/' NO OF NUCLEONS  PRODUCED IN FIRST INTERACTION =',I10/ | 
|---|
| 1156 | *          ' NO OF PIONS     PRODUCED IN FIRST INTERACTION =',I10/ | 
|---|
| 1157 | *          ' NO OF ETAS      PRODUCED IN FIRST INTERACTION =',I10/ | 
|---|
| 1158 | *          ' NO OF KAONS     PRODUCED IN FIRST INTERACTION =',I10/ | 
|---|
| 1159 | *          ' NO OF S.BARYONS PRODUCED IN FIRST INTERACTION =',I10/ | 
|---|
| 1160 | *          ' TOTAL MULTIPLICITY       OF FIRST INTERACTION =',I10/ | 
|---|
| 1161 | *        ' ELASTICITY               OF FIRST INTERACTION =',F10.4) | 
|---|
| 1162 |  | 
|---|
| 1163 | C  PRINT OUT NKG RESULT FOR ONE SHOWER IF SELECTED | 
|---|
| 1164 | IF ( FNKG ) CALL AVAGE | 
|---|
| 1165 |  | 
|---|
| 1166 | IF ( LLONGI ) THEN | 
|---|
| 1167 | C  TREAT LONGITUDINAL DISTRIBUTIONS | 
|---|
| 1168 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1169 | c   calculated here again, 'cos it's rewrite I dont know where | 
|---|
| 1170 | LPCT1 = INT( THICK0 * THSTPI ) | 
|---|
| 1171 | LPCT2 = INT( (THICK0 + PRMPAR(3)*CHI) * THSTPI ) | 
|---|
| 1172 | LPCT2 = MIN(NSTEP,LPCT2) | 
|---|
| 1173 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1174 | DO 980  J = LPCT1,NSTEP | 
|---|
| 1175 | C  ADD ELECTRONS, POSITRONS, MUONS AND NUCLEI TO THE CHARGED PARTICLES | 
|---|
| 1176 | PLONG(J,7) = PLONG(J,7) + PLONG(J,2) + PLONG(J,3) | 
|---|
| 1177 | *                 + PLONG(J,4) + PLONG(J,5) + PLONG(J,8) | 
|---|
| 1178 | C  ADD UP FOR MEAN VALUES OF LONGITUDINAL DISTRIBUTION | 
|---|
| 1179 | DO 979  K = 1,9 | 
|---|
| 1180 | APLONG(J,K) = APLONG(J,K) + PLONG(J,K) | 
|---|
| 1181 | SPLONG(J,K) = SPLONG(J,K) + PLONG(J,K)**2 | 
|---|
| 1182 | 979        CONTINUE | 
|---|
| 1183 | 980      CONTINUE | 
|---|
| 1184 |  | 
|---|
| 1185 | C  PRINT LONGITUDINAL DISTRIBUTIONS PER SHOWER | 
|---|
| 1186 | IF ( FPRINT .OR. DEBUG )  WRITE(MONIOU,910) THSTEP, | 
|---|
| 1187 | *      'GAMMAS','POSITRONS','ELECTRONS','MU-','MU+','HADRONS', | 
|---|
| 1188 | *      'CHARGED','NUCLEI','CERENKOV', | 
|---|
| 1189 | *      (J*THSTEP,(PLONG(J,K),K=1,9),J=LPCT1,NSTEP) | 
|---|
| 1190 | 910      FORMAT(/' ---------- LONGITUDINAL DISTRIBUTION IN STEPS OF ', | 
|---|
| 1191 | *        F5.0,' G/CM**2 ----------------'/ | 
|---|
| 1192 | *        '  DEPTH ',3A12,3A11,A12,A11,A12/ | 
|---|
| 1193 | *        (' ',F6.0,F13.0,2F12.0,3F11.0,F12.0,F11.0,1P,E12.5,0P) ) | 
|---|
| 1194 | CJOK  ADAPTED FOR HEAT CALCULATION | 
|---|
| 1195 | C910      FORMAT(/ | 
|---|
| 1196 | C    *    ' LONGITUDINAL DISTRIBUTION IN STEPS OF ',F5.0,' G/CM**2' | 
|---|
| 1197 | C    *      /' ',92('=')/'  DEPTH',8A10,A12/1P | 
|---|
| 1198 | C    *      (' ',0P,F6.0,1P,9E11.4)) | 
|---|
| 1199 | CJOK | 
|---|
| 1200 |  | 
|---|
| 1201 | IF ( FLGFIT ) THEN | 
|---|
| 1202 | C  PERFORM FIT TO THE LONGITUDINAL DISTRIBUTION OF ALL CHARGED PARTICLES | 
|---|
| 1203 | C  IF EGS IS SELECTED THIS IS THE DISTRIBUTION WHICH IS TO BE TAKEN | 
|---|
| 1204 | IF ( FEGS ) THEN | 
|---|
| 1205 | DO 930 J=0,NSTEP-LPCT1 | 
|---|
| 1206 | DEP(J+1)    = (J+LPCT1)*THSTEP | 
|---|
| 1207 | CHAPAR(J+1) = PLONG(J+LPCT1,7) | 
|---|
| 1208 | 930          CONTINUE | 
|---|
| 1209 | NSTP = NSTEP + 1 - LPCT1 | 
|---|
| 1210 | WRITE(MONIOU,8229) 'ALL CHARGED PARTICLES' | 
|---|
| 1211 | 8229         FORMAT(/' FIT OF THE CURVE   ', | 
|---|
| 1212 | *      ' N(T) = P1*((T-P2)/(P3-P2))**((P3-T)/(P4+P5*T+P6*T**2))'/ | 
|---|
| 1213 | *      ' TO LONGITUDINAL DISTRIBUTION OF ',A35) | 
|---|
| 1214 | C  IF NKG IS SELECTED ONLY THE ELECTRON DISTRIBUTION IS AVAILABLE | 
|---|
| 1215 | ELSEIF ( FNKG ) THEN | 
|---|
| 1216 | DEP(1)    = 0.D0 | 
|---|
| 1217 | CHAPAR(1) = 0.D0 | 
|---|
| 1218 | DO 931 J = 1,IALT(1) | 
|---|
| 1219 | DEP(J+1)    = TLEV(J) | 
|---|
| 1220 | CHAPAR(J+1) = SL(J) | 
|---|
| 1221 | 931          CONTINUE | 
|---|
| 1222 | NSTP = IALT(1) + 1 | 
|---|
| 1223 | WRITE(MONIOU,8229) 'NKG ELECTRONS' | 
|---|
| 1224 | C  IF NONE IS SELECTED IT DOES NOT REALLY MAKE SENSE TO FIT | 
|---|
| 1225 | C  BUT LET'S TAKE THEN ALL CHARGED WHICH ARE MUONS AND HADRONS | 
|---|
| 1226 | ELSE | 
|---|
| 1227 | DO 932 J=0,NSTEP-LPCT1 | 
|---|
| 1228 | DEP(J+1)    = (J+LPCT1)*THSTEP | 
|---|
| 1229 | CHAPAR(J+1) = PLONG(J+LPCT1,7) | 
|---|
| 1230 | 932          CONTINUE | 
|---|
| 1231 | NSTP = NSTEP + 1 - LPCT1 | 
|---|
| 1232 | WRITE(MONIOU,8229) 'MUONS AND CHARGED HADRONS' | 
|---|
| 1233 | ENDIF | 
|---|
| 1234 | IF ( NSTP .GT. 6 ) THEN | 
|---|
| 1235 | C  THERE ARE MORE THAN 6 STEP VALUES, A FIT SHOULD BE POSSIBLE. | 
|---|
| 1236 | C  DO THE FIT: NPAR AND FPARAM GIVE THE NUMBER OF PARAMETERS USED | 
|---|
| 1237 | C  AND THE FINAL VALUES FOR THE PARAMETERS. CHISQ GIVES THE CHI**2/DOF | 
|---|
| 1238 | C  FOR THE FIT. | 
|---|
| 1239 | CALL LONGFT(FPARAM,CHI2) | 
|---|
| 1240 | WRITE(MONIOU,8230) FPARAM,CHI2,CHI2/SQRT(FPARAM(1))*100.D0 | 
|---|
| 1241 | 8230         FORMAT(' PARAMETERS         = ',1P,6E12.4,0P/ | 
|---|
| 1242 | *               ' CHI**2/DOF         = ',F10.1/ | 
|---|
| 1243 | *               ' AV. DEVIATION IN % = ',F10.4) | 
|---|
| 1244 | C  STORE RESULT IN END EVENT BLOCK | 
|---|
| 1245 | DO 933 K = 1,6 | 
|---|
| 1246 | EVTE(255+K) = FPARAM(K) | 
|---|
| 1247 | 933          CONTINUE | 
|---|
| 1248 | EVTE(262) = CHI2 | 
|---|
| 1249 | ELSE | 
|---|
| 1250 | WRITE(MONIOU,*) 'NO LONGI. FIT POSSIBLE, ', | 
|---|
| 1251 | *          ' NSTP = ',NSTP,'  TOO SMALL.' | 
|---|
| 1252 | DO 934 K = 1,6 | 
|---|
| 1253 | EVTE(255+K) = 0. | 
|---|
| 1254 | 934          CONTINUE | 
|---|
| 1255 | EVTE(262) = 0. | 
|---|
| 1256 | ENDIF | 
|---|
| 1257 | ENDIF | 
|---|
| 1258 | ENDIF | 
|---|
| 1259 |  | 
|---|
| 1260 | C | 
|---|
| 1261 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1262 | C | 
|---|
| 1263 | C     Modified by C. Bigongiari 2001 Jan 16 | 
|---|
| 1264 | C | 
|---|
| 1265 | C | 
|---|
| 1266 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1267 | c   Saves statistics to sta###### file | 
|---|
| 1268 | C        call jcstadata(EVTH,EVTE, | 
|---|
| 1269 | C     +      NPROTO,NPROTB,NNEUTR,NNEUTB,NPHOTO,NELECT,NPOSIT, | 
|---|
| 1270 | C     +      NNU   ,NMUM  ,NMUP  ,NPI0  ,NPIM  ,NPIP  ,NK0L  , | 
|---|
| 1271 | C     +      NK0S  ,NKMI  ,NKPL  ,NHYP  ,NDEUT ,NTRIT ,NALPHA, | 
|---|
| 1272 | C     +      NOTHER,IFINNU,IFINPI,IFINET,IFINKA,IFINHY, | 
|---|
| 1273 | C     +      CERELE,CERHAD,PLONG,LPCT1,NSTEP,THSTEP) | 
|---|
| 1274 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1275 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1276 | C  WRITE SHOWER END TO OUTPUT BUFFER | 
|---|
| 1277 | Cc        CALL TOBUF( EVTE,0 ) | 
|---|
| 1278 | C        CALL TOBUF( EVTE,1 ) | 
|---|
| 1279 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1280 | C        IF ( LCERFI ) THEN | 
|---|
| 1281 | C          CALL OUTND2 | 
|---|
| 1282 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1283 | Cc          CALL TOBUFC( EVTE,0 ) | 
|---|
| 1284 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1285 | C        ENDIF | 
|---|
| 1286 |  | 
|---|
| 1287 | C | 
|---|
| 1288 | C  WRITE SHOWER END TO OUTPUT BUFFER | 
|---|
| 1289 | CALL TOBUF( EVTE,0 ) | 
|---|
| 1290 | IF ( LCERFI ) THEN | 
|---|
| 1291 | CALL OUTND2 | 
|---|
| 1292 | CALL TOBUFC( EVTE,0 ) | 
|---|
| 1293 | ENDIF | 
|---|
| 1294 |  | 
|---|
| 1295 | C | 
|---|
| 1296 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1297 | C | 
|---|
| 1298 |  | 
|---|
| 1299 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,*) | 
|---|
| 1300 | *                 'CERENKOV PH. FROM ELECTRONS = ',SNGL(CERELE), | 
|---|
| 1301 | *                 '  CERENKOV PH. FROM HADRONS = ',SNGL(CERHAD) | 
|---|
| 1302 | CERELE = 0.D0 | 
|---|
| 1303 | CERHAD = 0.D0 | 
|---|
| 1304 | NRECER = 0 | 
|---|
| 1305 |  | 
|---|
| 1306 | IF ( FPRINT .OR. DEBUG ) WRITE(MONIOU,210) SHOWNO | 
|---|
| 1307 | 210    FORMAT(/'   END OF SHOWER NO ',I10) | 
|---|
| 1308 |  | 
|---|
| 1309 | DO 19  J = 1,37 | 
|---|
| 1310 | JNBIN(J) = JNBIN(J) + INBIN(J) | 
|---|
| 1311 | JPBIN(J) = JPBIN(J) + IPBIN(J) | 
|---|
| 1312 | JKBIN(J) = JKBIN(J) + IKBIN(J) | 
|---|
| 1313 | JHBIN(J) = JHBIN(J) + IHBIN(J) | 
|---|
| 1314 | 19    CONTINUE | 
|---|
| 1315 |  | 
|---|
| 1316 |  | 
|---|
| 1317 | 2   CONTINUE | 
|---|
| 1318 |  | 
|---|
| 1319 | C  END OF SHOWER LOOP | 
|---|
| 1320 |  | 
|---|
| 1321 | C----------------------------------------------------------------------- | 
|---|
| 1322 | 992  CONTINUE | 
|---|
| 1323 |  | 
|---|
| 1324 | C  RESET NUMBER OF SHOWERS TO CORRECT VALUE | 
|---|
| 1325 | ISHW = I | 
|---|
| 1326 |  | 
|---|
| 1327 | RUNE(3) = REAL(ISHW) | 
|---|
| 1328 | C  WRITE RUN END TO OUTPUT BUFFER AND FINISH OUTPUT | 
|---|
| 1329 | C | 
|---|
| 1330 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1331 | C | 
|---|
| 1332 | C     Modified by C. Bigongiari 2001 Jan 16 | 
|---|
| 1333 | C | 
|---|
| 1334 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1335 | Cc      CALL TOBUF ( RUNE,1 ) | 
|---|
| 1336 | C      call jcendrun(rune) | 
|---|
| 1337 | Cc      IF ( LCERFI ) CALL TOBUFC( RUNE,1 ) | 
|---|
| 1338 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1339 | C | 
|---|
| 1340 | C- write Run End | 
|---|
| 1341 | C | 
|---|
| 1342 |  | 
|---|
| 1343 | CALL TOBUF ( RUNE,1 ) | 
|---|
| 1344 | IF ( LCERFI ) CALL TOBUFC( RUNE,1) | 
|---|
| 1345 |  | 
|---|
| 1346 | C | 
|---|
| 1347 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1348 | C | 
|---|
| 1349 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1350 | C  TIME SINCE BEGINNING | 
|---|
| 1351 | c      ILEFTB = TIME() | 
|---|
| 1352 | ILEFTB = 1 | 
|---|
| 1353 | c>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1354 | TDIFF  = ILEFTB - ILEFTA | 
|---|
| 1355 |  | 
|---|
| 1356 | C  MEAN VALUE FOR FIRST INTERACTION ALTITUDE (G/CM**2) | 
|---|
| 1357 | IF ( ISHW .GT. 1 ) THEN | 
|---|
| 1358 | CHISM2 = SQRT( ABS(CHISM2-CHISUM**2/ISHW) / (ISHW-1) ) | 
|---|
| 1359 | CHISUM = CHISUM / ISHW | 
|---|
| 1360 | ELSE | 
|---|
| 1361 | CHISM2 = 0.D0 | 
|---|
| 1362 | ENDIF | 
|---|
| 1363 |  | 
|---|
| 1364 | C  OUTPUTS FOR ALL SHOWERS | 
|---|
| 1365 | WRITE(MONIOU,201) ISHW,TDIFF,TDIFF/ISHW,IRECOR,IRECOR/ISHW, | 
|---|
| 1366 | *                   CHISUM,CHISM2 | 
|---|
| 1367 | 201  FORMAT('1',10('='),' RUN SUMMARY ',56('=')// | 
|---|
| 1368 | *  ' NUMBER OF GENERATED EVENTS = ',I10,/ | 
|---|
| 1369 | *  ' TOTAL TIME USED            = ',E10.3,' SEC'/ | 
|---|
| 1370 | *  ' TIME PER EVENT             = ',E10.3,' SEC'/ | 
|---|
| 1371 | *  ' TOTAL SPACE ON PATAPE USED = ',I10,' WORDS'/ | 
|---|
| 1372 | *  ' SPACE PER EVENT ON PATAPE  = ',I10,' WORDS'/ | 
|---|
| 1373 | *  ' AVERAGE HEIGHT OF 1ST INT. = ',F10.3,' +-',F10.3,' G/CM**2'/) | 
|---|
| 1374 |  | 
|---|
| 1375 | C  ENERGY - MULTIPLICITY MATRIX FOR ALL SHOWERS | 
|---|
| 1376 | WRITE(MONIOU,209) (K,K=1,13), | 
|---|
| 1377 | *  (J,(MULTOT(J,K),K=1,13),10**((J-4.)/3.),10**((J-3.)/3.),J=1,37), | 
|---|
| 1378 | *   1,(INT(10**((K-1.)/3.)+1),K = 2,13), | 
|---|
| 1379 | *   2,(INT(10**((K   )/3.)  ),K = 2,13) | 
|---|
| 1380 | 209  FORMAT(//' ENERGY - MULTIPLICITY MATRIX FOR ALL SHOWERS'/ | 
|---|
| 1381 | *       ' ENERGY RUNS VERTICALLY, MULTIPLICITY HORIZONTALLY'//, | 
|---|
| 1382 | *       ' ',6X,5I9,3I8,5I7'   ENERGY RANGE (GEV)'/ | 
|---|
| 1383 | *       37(/' ',I4,1X,I10,4I9,3I8,5I7,1X,1P,2E10.1,0P)// | 
|---|
| 1384 | *       ' MULT. ',5I9,3I8,5I7,4X,'LOWER BIN LIMIT'/ | 
|---|
| 1385 | *       ' RANGE ',5I9,3I8,5I7,4X,'UPPER BIN LIMIT') | 
|---|
| 1386 |  | 
|---|
| 1387 | C  GET MEAN OF ELASTICITY FOR ENERGY BINS | 
|---|
| 1388 | DO 3377  J = 1,37 | 
|---|
| 1389 | NELMEA = 0 | 
|---|
| 1390 | DO 3378  K = 1,10 | 
|---|
| 1391 | NELMEA = NELMEA + IELDPA(J,K) | 
|---|
| 1392 | 3378   CONTINUE | 
|---|
| 1393 | IF ( NELMEA .NE. 0 ) ELMEAA(J) = ELMEAA(J) / NELMEA | 
|---|
| 1394 | 3377 CONTINUE | 
|---|
| 1395 |  | 
|---|
| 1396 | C  PRINT ENERGY - ELASTICITY MATRIX FOR ALL SHOWERS | 
|---|
| 1397 | WRITE(MONIOU,408) (K,K=1,10),  (J,(IELDPA(J,K),K=1,10), | 
|---|
| 1398 | *  ELMEAA(J),10**((J-4.D0)/3.D0),10**((J-3.)/3.D0),J=1,37), | 
|---|
| 1399 | *      ((K-1)*0.1D0,K=1,10),(K*0.1D0,K=1,10) | 
|---|
| 1400 | 408  FORMAT (//' ENERGY - ELASTICITY MATRIX FOR ALL SHOWERS'/ | 
|---|
| 1401 | *          ' ENERGY RUNS VERTICALLY, ELASTICITY HORIZONTALLY'// | 
|---|
| 1402 | *          ' ',5X,10I9,'   MEAN EL.   ENERGY RANGE (GEV)'/ | 
|---|
| 1403 | *          37(/' ',I4,1X,10I9,2X,1P,E10.3,2E10.1,0P)// | 
|---|
| 1404 | *          ' ELA. ',10F9.2,5X,'LOWER BIN LIMIT'/ | 
|---|
| 1405 | *          ' RANGE',10F9.2,5X,'UPPER BIN LIMIT') | 
|---|
| 1406 |  | 
|---|
| 1407 | WRITE(MONIOU,204) | 
|---|
| 1408 | 204  FORMAT (//' INTERACTIONS PER KINETIC ENERGY INTERVAL FOR ALL ', | 
|---|
| 1409 | *    'SHOWERS'//'   BIN    LOWER LIMIT    UPPER LIMIT     ', | 
|---|
| 1410 | *    'NUCLEON     PIONS     KAONS S.BARYONS      TOTAL'/ | 
|---|
| 1411 | *    12X,'IN GEV',9X,'IN GEV',7X, | 
|---|
| 1412 | *     '  EVENTS    EVENTS    EVENTS    EVENTS    '//) | 
|---|
| 1413 | WRITE(MONIOU,207) (I,SABIN(I),SBBIN(I),JNBIN(I),JPBIN(I),JKBIN(I) | 
|---|
| 1414 | *            ,JHBIN(I),JNBIN(I)+JPBIN(I)+JKBIN(I)+JHBIN(I),I=1,37) | 
|---|
| 1415 | 207  FORMAT(' ',I5,1P,2E15.4,0P,I12,3I10,I11) | 
|---|
| 1416 |  | 
|---|
| 1417 | IF ( .NOT.GHEISH ) THEN | 
|---|
| 1418 | C  PRINT ELASTICITY STATISTICS | 
|---|
| 1419 | WRITE(MONIOU,89) (I,(I-1)*.05,I*.05, | 
|---|
| 1420 | *                   IELIS(I),IELHM(I),IELNU(I),IELPI(I),I = 1,20) | 
|---|
| 1421 | 89    FORMAT (//' ELASTICITY STATISTICS '// | 
|---|
| 1422 | *          ' BIN   LOW  HIGH EDGE   FOR ISOBARS     HEAVY MESONS', | 
|---|
| 1423 | *          '  SINGLE NUCLEONS        AND PIONS'/ | 
|---|
| 1424 | *         (' ',I3,'  ',F4.2,'  ',F4.2,'  ',4I17)) | 
|---|
| 1425 | ENDIF | 
|---|
| 1426 |  | 
|---|
| 1427 | C  CALCULATE MEAN VALUES AND STANDARD DEVIATIONS OF PARTICLE NUMBERS | 
|---|
| 1428 | IF ( ISHW .GT. 1 ) THEN | 
|---|
| 1429 | DO 879  K = 1,25 | 
|---|
| 1430 | DO 879  J = 1,NOBSLV | 
|---|
| 1431 | MPART2(J,K) = SQRT( abs(MPART2(J,K)-MPARTO(J,K)**2/ISHW) | 
|---|
| 1432 | *                                                  /(ISHW-1) ) | 
|---|
| 1433 | MPARTO(J,K) = MPARTO(J,K)/ISHW | 
|---|
| 1434 | 879    CONTINUE | 
|---|
| 1435 | ELSE | 
|---|
| 1436 | DO 880  K = 1,25 | 
|---|
| 1437 | DO 880  J = 1,NOBSLV | 
|---|
| 1438 | MPART2(J,K) = 0.D0 | 
|---|
| 1439 | 880    CONTINUE | 
|---|
| 1440 | ENDIF | 
|---|
| 1441 |  | 
|---|
| 1442 | C  PRINT MEAN VALUES AND STANDARD DEVIATIONS OF PARTICLE NUMBERS | 
|---|
| 1443 | IOBSLV = MIN( 3, NOBSLV ) | 
|---|
| 1444 | WRITE(MONIOU,854) (K,K=1,IOBSLV) | 
|---|
| 1445 | 854  FORMAT (/ ' AVERAGE NUMBER OF PARTICLES PER EVENT :'/ | 
|---|
| 1446 | *          ' FROM LEVEL NUMBER ', 3(10X,I10,10X) ) | 
|---|
| 1447 | WRITE(MONIOU,855) (OBSLEV(K),K=1,IOBSLV) | 
|---|
| 1448 | 855  FORMAT (  ' HEIGHT IN CM',1P,3(20X,E10.3)/) | 
|---|
| 1449 |  | 
|---|
| 1450 | WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=1,IOBSLV) | 
|---|
| 1451 | WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=1,IOBSLV) | 
|---|
| 1452 | WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=1,IOBSLV) | 
|---|
| 1453 | WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=1,IOBSLV) | 
|---|
| 1454 | WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=1,IOBSLV) | 
|---|
| 1455 | WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=1,IOBSLV) | 
|---|
| 1456 | WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=1,IOBSLV) | 
|---|
| 1457 | WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=1,IOBSLV) | 
|---|
| 1458 | WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=1,IOBSLV) | 
|---|
| 1459 | WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=1,IOBSLV) | 
|---|
| 1460 | WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=1,IOBSLV) | 
|---|
| 1461 | WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=1,IOBSLV) | 
|---|
| 1462 | WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=1,IOBSLV) | 
|---|
| 1463 | WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=1,IOBSLV) | 
|---|
| 1464 | WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=1,IOBSLV) | 
|---|
| 1465 | WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=1,IOBSLV) | 
|---|
| 1466 | WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=1,IOBSLV) | 
|---|
| 1467 | WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=1,IOBSLV) | 
|---|
| 1468 | WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=1,IOBSLV) | 
|---|
| 1469 | WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=1,IOBSLV) | 
|---|
| 1470 | WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=1,IOBSLV) | 
|---|
| 1471 | WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=1,IOBSLV) | 
|---|
| 1472 | WRITE(MONIOU,*) | 
|---|
| 1473 | 778  FORMAT(' NO OF ',A12,' = ',3(F13.1,' +-',F13.1,' ')) | 
|---|
| 1474 |  | 
|---|
| 1475 | IF ( NOBSLV .GT. 3 ) THEN | 
|---|
| 1476 | IOBSLV = MIN( 6, NOBSLV ) | 
|---|
| 1477 | WRITE(MONIOU,854) (K,K=4,IOBSLV) | 
|---|
| 1478 | WRITE(MONIOU,855) (OBSLEV(K),K=4,IOBSLV) | 
|---|
| 1479 | WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=4,IOBSLV) | 
|---|
| 1480 | WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=4,IOBSLV) | 
|---|
| 1481 | WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=4,IOBSLV) | 
|---|
| 1482 | WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=4,IOBSLV) | 
|---|
| 1483 | WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=4,IOBSLV) | 
|---|
| 1484 | WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=4,IOBSLV) | 
|---|
| 1485 | WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=4,IOBSLV) | 
|---|
| 1486 | WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=4,IOBSLV) | 
|---|
| 1487 | WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=4,IOBSLV) | 
|---|
| 1488 | WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=4,IOBSLV) | 
|---|
| 1489 | WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=4,IOBSLV) | 
|---|
| 1490 | WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=4,IOBSLV) | 
|---|
| 1491 | WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=4,IOBSLV) | 
|---|
| 1492 | WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=4,IOBSLV) | 
|---|
| 1493 | WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=4,IOBSLV) | 
|---|
| 1494 | WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=4,IOBSLV) | 
|---|
| 1495 | WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=4,IOBSLV) | 
|---|
| 1496 | WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=4,IOBSLV) | 
|---|
| 1497 | WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=4,IOBSLV) | 
|---|
| 1498 | WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=4,IOBSLV) | 
|---|
| 1499 | WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=4,IOBSLV) | 
|---|
| 1500 | WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=4,IOBSLV) | 
|---|
| 1501 | WRITE(MONIOU,*) | 
|---|
| 1502 |  | 
|---|
| 1503 | IF ( NOBSLV .GT. 6 ) THEN | 
|---|
| 1504 | IOBSLV = MIN( 9, NOBSLV ) | 
|---|
| 1505 | WRITE(MONIOU,854) (K,K=7,IOBSLV) | 
|---|
| 1506 | WRITE(MONIOU,855) (OBSLEV(K),K=7,IOBSLV) | 
|---|
| 1507 | WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=7,IOBSLV) | 
|---|
| 1508 | WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=7,IOBSLV) | 
|---|
| 1509 | WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=7,IOBSLV) | 
|---|
| 1510 | WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=7,IOBSLV) | 
|---|
| 1511 | WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=7,IOBSLV) | 
|---|
| 1512 | WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=7,IOBSLV) | 
|---|
| 1513 | WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=7,IOBSLV) | 
|---|
| 1514 | WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=7,IOBSLV) | 
|---|
| 1515 | WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=7,IOBSLV) | 
|---|
| 1516 | WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=7,IOBSLV) | 
|---|
| 1517 | WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=7,IOBSLV) | 
|---|
| 1518 | WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=7,IOBSLV) | 
|---|
| 1519 | WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=7,IOBSLV) | 
|---|
| 1520 | WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=7,IOBSLV) | 
|---|
| 1521 | WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=7,IOBSLV) | 
|---|
| 1522 | WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=7,IOBSLV) | 
|---|
| 1523 | WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=7,IOBSLV) | 
|---|
| 1524 | WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=7,IOBSLV) | 
|---|
| 1525 | WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=7,IOBSLV) | 
|---|
| 1526 | WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=7,IOBSLV) | 
|---|
| 1527 | WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=7,IOBSLV) | 
|---|
| 1528 | WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=7,IOBSLV) | 
|---|
| 1529 | WRITE(MONIOU,*) | 
|---|
| 1530 |  | 
|---|
| 1531 | IF ( NOBSLV .GT. 9 ) THEN | 
|---|
| 1532 | IOBSLV = MIN( 10, NOBSLV ) | 
|---|
| 1533 | WRITE(MONIOU,854) (K,K=9,IOBSLV) | 
|---|
| 1534 | WRITE(MONIOU,855) (OBSLEV(K),K=9,IOBSLV) | 
|---|
| 1535 | WRITE(MONIOU,778)'PROTONS     ',(MPROTO(K),MPROT2(K),K=9,IOBSLV) | 
|---|
| 1536 | WRITE(MONIOU,778)'ANTIPROTONS ',(MPROTB(K),MPRTB2(K),K=9,IOBSLV) | 
|---|
| 1537 | WRITE(MONIOU,778)'NEUTRONS    ',(MNEUTR(K),MNETR2(K),K=9,IOBSLV) | 
|---|
| 1538 | WRITE(MONIOU,778)'ANTINEUTRONS',(MNEUTB(K),MNETB2(K),K=9,IOBSLV) | 
|---|
| 1539 | WRITE(MONIOU,778)'PHOTONS     ',(MPHOTO(K),MPHOT2(K),K=9,IOBSLV) | 
|---|
| 1540 | WRITE(MONIOU,778)'ELECTRONS   ',(MELECT(K),MELEC2(K),K=9,IOBSLV) | 
|---|
| 1541 | WRITE(MONIOU,778)'POSITRONS   ',(MPOSIT(K),MPOSI2(K),K=9,IOBSLV) | 
|---|
| 1542 | WRITE(MONIOU,778)'NEUTRINOS   ',(MNU   (K),MNU2  (K),K=9,IOBSLV) | 
|---|
| 1543 | WRITE(MONIOU,778)'MU -        ',(MMUM  (K),MMUM2 (K),K=9,IOBSLV) | 
|---|
| 1544 | WRITE(MONIOU,778)'MU +        ',(MMUP  (K),MMUP2 (K),K=9,IOBSLV) | 
|---|
| 1545 | WRITE(MONIOU,778)'PI 0        ',(MPI0  (K),MPI02 (K),K=9,IOBSLV) | 
|---|
| 1546 | WRITE(MONIOU,778)'PI -        ',(MPIM  (K),MPIM2 (K),K=9,IOBSLV) | 
|---|
| 1547 | WRITE(MONIOU,778)'PI +        ',(MPIP  (K),MPIP2 (K),K=9,IOBSLV) | 
|---|
| 1548 | WRITE(MONIOU,778)'K0L         ',(MK0L  (K),MK0L2 (K),K=9,IOBSLV) | 
|---|
| 1549 | WRITE(MONIOU,778)'K0S         ',(MK0S  (K),MK0S2 (K),K=9,IOBSLV) | 
|---|
| 1550 | WRITE(MONIOU,778)'K -         ',(MKMI  (K),MKMI2 (K),K=9,IOBSLV) | 
|---|
| 1551 | WRITE(MONIOU,778)'K +         ',(MKPL  (K),MKPL2 (K),K=9,IOBSLV) | 
|---|
| 1552 | WRITE(MONIOU,778)'STR. BARYONS',(MHYP  (K),MHYP2 (K),K=9,IOBSLV) | 
|---|
| 1553 | WRITE(MONIOU,778)'DEUTERONS   ',(MDEUT (K),MDEUT2(K),K=9,IOBSLV) | 
|---|
| 1554 | WRITE(MONIOU,778)'TRITONS     ',(MTRIT (K),MTRIT2(K),K=9,IOBSLV) | 
|---|
| 1555 | WRITE(MONIOU,778)'ALPHAS      ',(MALPHA(K),MALPH2(K),K=9,IOBSLV) | 
|---|
| 1556 | WRITE(MONIOU,778)'OTHER PART. ',(MOTHER(K),MOTH2 (K),K=9,IOBSLV) | 
|---|
| 1557 | WRITE(MONIOU,*) | 
|---|
| 1558 | ENDIF | 
|---|
| 1559 |  | 
|---|
| 1560 | ENDIF | 
|---|
| 1561 | ENDIF | 
|---|
| 1562 |  | 
|---|
| 1563 | C  PRINT OUT NKG RESULT FOR ALL SHOWERS IF SELECTED | 
|---|
| 1564 | IF ( FNKG ) CALL MITAGE | 
|---|
| 1565 |  | 
|---|
| 1566 | C  CALCULATE MEAN VALUES AND SIGMAS OF LONGITUDINAL DISTRIBUTION | 
|---|
| 1567 | IF ( LLONGI ) THEN | 
|---|
| 1568 | IF ( ISHW .GT. 1 ) THEN | 
|---|
| 1569 | DO 790  K = 1,9 | 
|---|
| 1570 | DO 789  J = LPCT1,NSTEP | 
|---|
| 1571 | SPLONG(J,K) = SQRT( abs(SPLONG(J,K)-APLONG(J,K)**2/ISHW) | 
|---|
| 1572 | *                                                   /(ISHW-1) ) | 
|---|
| 1573 | APLONG(J,K) = APLONG(J,K)/ISHW | 
|---|
| 1574 | 789        CONTINUE | 
|---|
| 1575 | 790      CONTINUE | 
|---|
| 1576 | ELSE | 
|---|
| 1577 | DO 990  K = 1,9 | 
|---|
| 1578 | DO 989  J = LPCT1,NSTEP | 
|---|
| 1579 | SPLONG(J,K) = 0.D0 | 
|---|
| 1580 | 989        CONTINUE | 
|---|
| 1581 | 990      CONTINUE | 
|---|
| 1582 | ENDIF | 
|---|
| 1583 |  | 
|---|
| 1584 | C  PRINT AVERAGE LONGITUDINAL DISTRIBUTIONS | 
|---|
| 1585 | WRITE(MONIOU,911) THSTEP, | 
|---|
| 1586 | *     'GAMMAS ','POSITRONS','ELECTRONS','MU-  ','MU+  ', | 
|---|
| 1587 | *     (J*THSTEP,(APLONG(J,K),SPLONG(J,K),K=1,5),J=LPCT1,NSTEP) | 
|---|
| 1588 | 911    FORMAT(/' AVERAGE LONGITUDINAL DISTRIBUTION IN STEPS OF ', | 
|---|
| 1589 | *      F5.0,' G/CM**2 '/' ',131('=')/ | 
|---|
| 1590 | *      ' DEPTH',8X,3(A10,16X),A9,15X,A9 // | 
|---|
| 1591 | *     (' ',F5.0,2X,1P,E11.4,'+-',E11.4,0P,1X,F12.0,'+-',F11.0, | 
|---|
| 1592 | *                1X,F12.0,'+-',E11.4,1X,F11.1,'+-',F10.1, | 
|---|
| 1593 | *                1X,F11.1,'+-',F10.1 )) | 
|---|
| 1594 | WRITE(MONIOU,912) THSTEP, | 
|---|
| 1595 | *     'HADRONS','CHARGED','NUCLEI','CERENKOV', | 
|---|
| 1596 | *     (J*THSTEP,(APLONG(J,K),SPLONG(J,K),K=6,9),J=LPCT1,NSTEP) | 
|---|
| 1597 | 912    FORMAT(/' AVERAGE LONGITUDINAL DISTRIBUTION IN STEPS OF ', | 
|---|
| 1598 | *      F5.0,' G/CM**2 '/' ',115('=')/ | 
|---|
| 1599 | *      ' DEPTH',8X,A9,16X,A10,16X,A9,21X,A9 // | 
|---|
| 1600 | *     (' ',F5.0,1X,F11.1,'+-',F11.1,1X,F12.0,'+-',F12.0, | 
|---|
| 1601 | *                2X,F10.1,'+-',F10.1,1X,1P,E16.6,'+-',E16.6,0P)) | 
|---|
| 1602 | ENDIF | 
|---|
| 1603 |  | 
|---|
| 1604 | IF ( FLGFIT ) THEN | 
|---|
| 1605 | C  PERFORM FIT TO THE LONGITUDINAL DISTRIBUTION OF ALL CHARGED PARTICLES | 
|---|
| 1606 | C  IF EGS IS SELECTED THIS IS THE DISTRIBUTION WHICH IS TO BE TAKEN | 
|---|
| 1607 | IF ( FEGS ) THEN | 
|---|
| 1608 | DO 730 J=0,NSTEP-LPCT1 | 
|---|
| 1609 | DEP(J+1)    = (J+LPCT1)*THSTEP | 
|---|
| 1610 | CHAPAR(J+1) = APLONG(J+LPCT1,7) | 
|---|
| 1611 | 730      CONTINUE | 
|---|
| 1612 | NSTP = NSTEP + 1 - LPCT1 | 
|---|
| 1613 | WRITE(MONIOU,8229) 'AVERAGE ALL CHARGED PARTICLES' | 
|---|
| 1614 | C  IF NKG IS SELECTED ONLY THE ELECTRON DISTRIBUTION IS AVAILABLE | 
|---|
| 1615 | ELSEIF ( FNKG ) THEN | 
|---|
| 1616 | DEP(1)    = 0.D0 | 
|---|
| 1617 | CHAPAR(1) = 0.D0 | 
|---|
| 1618 | DO 731 J = 1,IALT(1) | 
|---|
| 1619 | DEP(J+1)    = TLEV(J) | 
|---|
| 1620 | CHAPAR(J+1) = SEL(J)/ISHW | 
|---|
| 1621 | 731      CONTINUE | 
|---|
| 1622 | NSTP = IALT(1) + 1 | 
|---|
| 1623 | WRITE(MONIOU,8229) 'AVERAGE NKG ELECTRONS' | 
|---|
| 1624 | C  IF NONE IS SELECTED IT DOES NOT REALLY MAKE SENSE TO FIT | 
|---|
| 1625 | C  BUT LET'S TAKE THEN ALL CHARGED WHICH ARE MUONS AND HADRONS | 
|---|
| 1626 | ELSE | 
|---|
| 1627 | DO 732 J=0,NSTEP-LPCT1 | 
|---|
| 1628 | DEP(J+1)    = (J+LPCT1)*THSTEP | 
|---|
| 1629 | CHAPAR(J+1) = APLONG(J+LPCT1,7) | 
|---|
| 1630 | 732      CONTINUE | 
|---|
| 1631 | NSTP = NSTEP + 1 - LPCT1 | 
|---|
| 1632 | WRITE(MONIOU,8229) 'AVERAGE MUONS AND CHARGED HADRONS' | 
|---|
| 1633 | ENDIF | 
|---|
| 1634 | IF ( NSTP .GT. 6 ) THEN | 
|---|
| 1635 | C  THERE ARE MORE THAN 6 STEP VALUES, A FIT SHOULD BE POSSIBLE. | 
|---|
| 1636 | C  DO THE FIT: NPAR AND FPARAM GIVE THE NUMBER OF PARAMETERS USED | 
|---|
| 1637 | C  AND THE FINAL VALUES FOR THE PARAMETERS. CHISQ GIVES THE CHI**2/DOF | 
|---|
| 1638 | C  FOR THE FIT. | 
|---|
| 1639 | CALL LONGFT(FPARAM,CHI2) | 
|---|
| 1640 | WRITE(MONIOU,8230) FPARAM,CHI2,CHI2/SQRT(FPARAM(1))*100.D0 | 
|---|
| 1641 | ELSE | 
|---|
| 1642 | WRITE(MONIOU,*) 'NO LONGI. FIT POSSIBLE, ', | 
|---|
| 1643 | *                      ' NSTP = ',NSTP,'  TOO SMALL.' | 
|---|
| 1644 | ENDIF | 
|---|
| 1645 | ENDIF | 
|---|
| 1646 |  | 
|---|
| 1647 |  | 
|---|
| 1648 | C  CONTROL PRINT OUTPUT OF CONSTANTS | 
|---|
| 1649 | IF ( DEBUG ) THEN | 
|---|
| 1650 | CALL STAEND | 
|---|
| 1651 | WRITE(MDEBUG,*) 'MAIN  : STAEND CALLED' | 
|---|
| 1652 | ENDIF | 
|---|
| 1653 |  | 
|---|
| 1654 | C | 
|---|
| 1655 | CBC+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1656 | C | 
|---|
| 1657 | C     Modified by C. Bigongiari 2001 Jan 16 | 
|---|
| 1658 | C | 
|---|
| 1659 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1660 | C      call jcenddata(runh,rune) | 
|---|
| 1661 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1662 | C | 
|---|
| 1663 | C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1664 |  | 
|---|
| 1665 | WRITE(MONIOU,*)' ' | 
|---|
| 1666 | CALL PRTIME(TTIME) | 
|---|
| 1667 | WRITE(MONIOU,101) | 
|---|
| 1668 | 101  FORMAT (/' ',10('='),' END OF RUN ',67('=')) | 
|---|
| 1669 |  | 
|---|
| 1670 | C  CLOSE ALL OPEN UNITS | 
|---|
| 1671 | IF ( MONIOU .NE. 6 ) CLOSE( MONIOU ) | 
|---|
| 1672 | IF ( MDEBUG .NE. 6 ) CLOSE( MDEBUG ) | 
|---|
| 1673 | CLOSE( EXST ) | 
|---|
| 1674 |  | 
|---|
| 1675 | C | 
|---|
| 1676 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1677 | C | 
|---|
| 1678 | C     Modified by C. Bigongiari 2001 Jan 16 | 
|---|
| 1679 | C | 
|---|
| 1680 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1681 | Cc      CLOSE( PATAPE ) | 
|---|
| 1682 | Cc      IF ( LCERFI ) CLOSE( CETAPE ) | 
|---|
| 1683 | Cc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> | 
|---|
| 1684 | C | 
|---|
| 1685 | C- close files | 
|---|
| 1686 | C | 
|---|
| 1687 |  | 
|---|
| 1688 | CLOSE( PATAPE ) | 
|---|
| 1689 | IF ( LCERFI ) CLOSE( CETAPE ) | 
|---|
| 1690 | C      CALL JCENDRUN( RUNE ) | 
|---|
| 1691 |  | 
|---|
| 1692 | C | 
|---|
| 1693 | CBC++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | 
|---|
| 1694 | C | 
|---|
| 1695 |  | 
|---|
| 1696 | STOP | 
|---|
| 1697 | END | 
|---|