| 1 | SUBROUTINE SHOWER
|
|---|
| 2 | C
|
|---|
| 3 | C*********************************************************************
|
|---|
| 4 | C DESIGN : D. HECK IK3 FZK KARLSRUHE
|
|---|
| 5 | C DATE : AUG 11, 1988
|
|---|
| 6 | C*********************************************************************
|
|---|
| 7 | C THIS ROUTINE LOOKS, WHAT IS ON TOP OF STACK, AND CALLS THE
|
|---|
| 8 | C APPROPRIATE ROUTINE TO TREAT THIS PARTICLE.
|
|---|
| 9 | C*********************************************************************
|
|---|
| 10 | COMMON/MISC/KMPI,KMPO,DUNIT,NOSCAT,MED(6),RHOR(6),IRAYLR(6)
|
|---|
| 11 | *KEEP,RUNPAR.
|
|---|
| 12 | COMMON /RUNPAR/ FIXHEI,THICK0,HILOECM,HILOELB,
|
|---|
| 13 | * STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
|
|---|
| 14 | * MONIOU,MDEBUG,NUCNUC,
|
|---|
| 15 | * CETAPE,
|
|---|
| 16 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
|---|
| 17 | * N1STTR,MDBASE,
|
|---|
| 18 | * DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
|---|
| 19 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
|---|
| 20 | * ,GHEISH,GHESIG
|
|---|
| 21 | COMMON /RUNPAC/ DSN,HOST,USER
|
|---|
| 22 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
|
|---|
| 23 | REAL STEPFC
|
|---|
| 24 | INTEGER NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
|
|---|
| 25 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
|---|
| 26 | * N1STTR,MDBASE
|
|---|
| 27 | INTEGER CETAPE
|
|---|
| 28 | CHARACTER*79 DSN
|
|---|
| 29 | CHARACTER*20 HOST,USER
|
|---|
| 30 |
|
|---|
| 31 | LOGICAL DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
|---|
| 32 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
|---|
| 33 | * ,GHEISH,GHESIG
|
|---|
| 34 | *KEEP,STACKE.
|
|---|
| 35 | COMMON/STACKE/ E,TIME,X,Y,Z,U,V,W,DNEAR,IQ,IGEN,IR,IOBS,LPCTE,NP
|
|---|
| 36 | DOUBLE PRECISION E(60),TIME(60)
|
|---|
| 37 | REAL X(60),Y(60),Z(60),U(60),V(60),W(60),DNEAR(60)
|
|---|
| 38 | INTEGER IQ(60),IGEN(60),IR(60),IOBS(60),LPCTE(60),NP
|
|---|
| 39 | *KEND.
|
|---|
| 40 | C*** TAKE FIRST PARTICLE IN STACK
|
|---|
| 41 | NP=1
|
|---|
| 42 | IF((DEBUG))CALL AUSGB2
|
|---|
| 43 | 251 CONTINUE
|
|---|
| 44 | C *** DECIDE WHAT IS ON TOP OF STACK
|
|---|
| 45 | 261 CONTINUE
|
|---|
| 46 | C *** JUMP TO PARTICLE IN QUESTION
|
|---|
| 47 | C *** THE FOLLOWING PARTICLE IDENTIFICATION IS MADE BY THE
|
|---|
| 48 | C *** VALUE OF IQ(NP) (ACCORDING TO PROGRAM 'GEANT')
|
|---|
| 49 | C *** IQ = 1 PHOTON
|
|---|
| 50 | C *** = 2 POSITRON E (+)
|
|---|
| 51 | C *** = 3 ELECTRON E (-)
|
|---|
| 52 | C *** = 5 POSITIVE MUON (+)
|
|---|
| 53 | C *** = 6 NEGATIVE MUON (-)
|
|---|
| 54 | C *** = 7 NEUTRAL PION (0)
|
|---|
| 55 | C *** = 8 POSITIVE PION (+)
|
|---|
| 56 | C *** = 9 NEGATIVE PION (-)
|
|---|
| 57 | C *** IF IQ = OTHER VALUE, JUMP TO ERROR MESSAGE
|
|---|
| 58 | GO TO(270,280,280,290, 300,300,300,300,300) (IQ(NP))
|
|---|
| 59 | C *** IQ OUT OF RANGE?
|
|---|
| 60 | 290 WRITE(KMPO,320) IQ(NP)
|
|---|
| 61 | 320 FORMAT(' SHOWER: PARTICLE TYPE ',I5,' NOT IDENTIFIED')
|
|---|
| 62 | CALL AUSGB2
|
|---|
| 63 | NP=NP-1
|
|---|
| 64 | GO TO262
|
|---|
| 65 | 300 CALL MPPROP
|
|---|
| 66 | GO TO262
|
|---|
| 67 | 270 CALL PHOTON(IRCODE)
|
|---|
| 68 | C *** PHOTON DISCARDED ?
|
|---|
| 69 | IF((IRCODE.EQ.2))GO TO262
|
|---|
| 70 | IF((IQ(NP).LT.2 .OR. IQ(NP).GT.3))GO TO261
|
|---|
| 71 | 280 CALL ELECTR(IRCODE)
|
|---|
| 72 | C *** ELECTRON DISCARDED ?
|
|---|
| 73 | IF((IRCODE.EQ.2))GO TO262
|
|---|
| 74 | IF((IQ(NP).EQ.1))GO TO 270
|
|---|
| 75 | C *** LOOP BACK UP TO PARTICLE SELECTION
|
|---|
| 76 | GO TO 261
|
|---|
| 77 | 262 CONTINUE
|
|---|
| 78 | C *** CHECK TO SEE IF ANYTHING LEFT ON STACK
|
|---|
| 79 | C *** NOTHING ON STACK, SO JUMP OUT OF LOOP
|
|---|
| 80 | IF((NP.LE.0))GO TO252
|
|---|
| 81 | GO TO 251
|
|---|
| 82 | 252 CONTINUE
|
|---|
| 83 | C*** TOP STACK LOOP END
|
|---|
| 84 | RETURN
|
|---|
| 85 | END
|
|---|