1 | SUBROUTINE NKG( ENERN )
|
---|
2 |
|
---|
3 | C-----------------------------------------------------------------------
|
---|
4 | C N(ISHIMURA) K(AMATA) G(REISEN)
|
---|
5 | C
|
---|
6 | C CALCULATES ELECTROMAGNETIC COMPONENT OF SHOWERS USING THE ANALYTIC
|
---|
7 | C NKG FORMULAS, INCLUDING ELECTRON ENERGY THRESHOLD ELCUT(3)
|
---|
8 | C SEE J.N. CAPDEVIELLE, 22ND ICRC, DUBLIN 1991, CONTRIB. HE 3.5.10
|
---|
9 | C THIS SUBROUTINE IS CALLED FROM EM
|
---|
10 | C ARGUMENTS:
|
---|
11 | C ENERN = ENERGY OF ELECTRON/PHOTON GENERATING A SUBSHOWER
|
---|
12 | C NEGATIVE FOR SUBSHOWERS TO BE SUBTRACTED AFTER
|
---|
13 | C PHOTONUCLEAR REACTION
|
---|
14 | C-----------------------------------------------------------------------
|
---|
15 |
|
---|
16 | IMPLICIT NONE
|
---|
17 | *KEEP,CONST.
|
---|
18 | COMMON /CONST/ PI,PI2,OB3,TB3,ENEPER
|
---|
19 | DOUBLE PRECISION PI,PI2,OB3,TB3,ENEPER
|
---|
20 | *KEEP,ELABCT.
|
---|
21 | COMMON /ELABCT/ ELCUT
|
---|
22 | DOUBLE PRECISION ELCUT(4)
|
---|
23 | *KEEP,NKGI.
|
---|
24 | COMMON /NKGI/ SEL,SELLG,STH,ZEL,ZELLG,ZSL,DIST,
|
---|
25 | * DISX,DISY,DISXY,DISYX,DLAX,DLAY,DLAXY,DLAYX,
|
---|
26 | * OBSATI,RADNKG,RMOL,TLEV,TLEVCM,IALT
|
---|
27 | DOUBLE PRECISION SEL(10),SELLG(10),STH(10),ZEL(10),ZELLG(10),
|
---|
28 | * ZSL(10),DIST(10),
|
---|
29 | * DISX(-10:10),DISY(-10:10),
|
---|
30 | * DISXY(-10:10,2),DISYX(-10:10,2),
|
---|
31 | * DLAX (-10:10,2),DLAY (-10:10,2),
|
---|
32 | * DLAXY(-10:10,2),DLAYX(-10:10,2),
|
---|
33 | * OBSATI(2),RADNKG,RMOL(2),TLEV(10),TLEVCM(10)
|
---|
34 | INTEGER IALT(2)
|
---|
35 | *KEEP,NKGS.
|
---|
36 | COMMON /NKGS/ CZX,CZY,CZXY,CZYX,SAH,SL,ZNE
|
---|
37 | DOUBLE PRECISION CZX(-10:10,2),CZY(-10:10,2),CZXY(-10:10,2),
|
---|
38 | * CZYX(-10:10,2),SAH(10),SL(10),ZNE(10)
|
---|
39 | *KEEP,OBSPAR.
|
---|
40 | COMMON /OBSPAR/ OBSLEV,THCKOB,XOFF,YOFF,THETAP,PHIP,
|
---|
41 | * THETPR,PHIPR,NOBSLV
|
---|
42 | DOUBLE PRECISION OBSLEV(10),THCKOB(10),XOFF(10),YOFF(10),
|
---|
43 | * THETAP,THETPR(2),PHIP,PHIPR(2)
|
---|
44 | INTEGER NOBSLV
|
---|
45 | *KEEP,PARPAR.
|
---|
46 | COMMON /PARPAR/ CURPAR,SECPAR,PRMPAR,OUTPAR,C,
|
---|
47 | * E00,E00PN,PTOT0,PTOT0N,THICKH,ITYPE,LEVL
|
---|
48 | DOUBLE PRECISION CURPAR(14),SECPAR(14),PRMPAR(14),OUTPAR(14),
|
---|
49 | * C(50),E00,E00PN,PTOT0,PTOT0N,THICKH
|
---|
50 | INTEGER ITYPE,LEVL
|
---|
51 | *KEEP,PARPAE.
|
---|
52 | DOUBLE PRECISION GAMMA,COSTHE,PHI,H,T,X,Y,CHI,BETA,GCM,ECM
|
---|
53 | EQUIVALENCE (CURPAR(2),GAMMA), (CURPAR(3),COSTHE),
|
---|
54 | * (CURPAR(4), PHI ), (CURPAR(5), H ),
|
---|
55 | * (CURPAR(6), T ), (CURPAR(7), X ),
|
---|
56 | * (CURPAR(8), Y ), (CURPAR(9), CHI ),
|
---|
57 | * (CURPAR(10),BETA), (CURPAR(11),GCM ),
|
---|
58 | * (CURPAR(12),ECM )
|
---|
59 | *KEEP,RUNPAR.
|
---|
60 | COMMON /RUNPAR/ FIXHEI,THICK0,HILOECM,HILOELB,
|
---|
61 | * STEPFC,NRRUN,NSHOW,PATAPE,MONIIN,
|
---|
62 | * MONIOU,MDEBUG,NUCNUC,
|
---|
63 | * CETAPE,
|
---|
64 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
65 | * N1STTR,MDBASE,
|
---|
66 | * DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
67 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
68 | * ,GHEISH,GHESIG
|
---|
69 | COMMON /RUNPAC/ DSN,HOST,USER
|
---|
70 | DOUBLE PRECISION FIXHEI,THICK0,HILOECM,HILOELB
|
---|
71 | REAL STEPFC
|
---|
72 | INTEGER NRRUN,NSHOW,PATAPE,MONIIN,MONIOU,MDEBUG,NUCNUC,
|
---|
73 | * SHOWNO,ISHW,NOPART,NRECS,NBLKS,MAXPRT,NDEBDL,
|
---|
74 | * N1STTR,MDBASE
|
---|
75 | INTEGER CETAPE
|
---|
76 | CHARACTER*79 DSN
|
---|
77 | CHARACTER*20 HOST,USER
|
---|
78 |
|
---|
79 | LOGICAL DEBDEL,DEBUG,FDECAY,FEGS,FIRSTI,FIXINC,FIXTAR,
|
---|
80 | * FIX1I,FMUADD,FNKG,FPRINT,FDBASE
|
---|
81 | * ,GHEISH,GHESIG
|
---|
82 | *KEND.
|
---|
83 |
|
---|
84 | DOUBLE PRECISION AE,AS,ASE,AUXIL,BS,CCP,CPC,CPCP,CPH,CSGA,
|
---|
85 | * DE,DISTL,ECRI,ECR1,ECR2,ENERN,GAM,GRCUT,
|
---|
86 | * G1,G2,G3,S,SC1,SC2,SIGNE,SM,SMRM,
|
---|
87 | * SQRZ1I,SQZC1I,SQZC2I,SS2,SS45,TEX,THICK,THICKP,
|
---|
88 | * XMOL,XNE,XS,X0,YM,YS,ZC1,ZC2,ZG1,ZG2,ZG3,Z1
|
---|
89 | INTEGER IL,IOL,M
|
---|
90 | EXTERNAL GAM,THICK
|
---|
91 | C X0 IS RADIATON LENGTH IN AIR (G/CM**2)
|
---|
92 | C (SEE ALSO MIKOCKI ET AL. J.PHYS.G.:NUCL.PART.PHYS. 17 (1991) 1303 )
|
---|
93 | C GRCUT IS GREISEN CUT OFF, ECRI IS CRITICAL ENERGY IN AIR
|
---|
94 | C ECR2 IS 0.4 * ECRI
|
---|
95 | DATA X0 / 37.1D0 /, GRCUT / 0.1D0 /, ECRI / 0.082D0 /
|
---|
96 | DATA ECR2 / 0.0328D0 /
|
---|
97 | C-----------------------------------------------------------------------
|
---|
98 |
|
---|
99 | IF (DEBUG) WRITE(MDEBUG,*)'NKG : ',SNGL(SECPAR(1)),SNGL(ENERN)
|
---|
100 |
|
---|
101 | C CHECK WETHER SUBSHOWER IS SUBTRACTED
|
---|
102 | IF ( ENERN .GE. 0.D0 ) THEN
|
---|
103 | SIGNE = +1.D0
|
---|
104 | ELSE
|
---|
105 | ENERN = -ENERN
|
---|
106 | SIGNE = -1.D0
|
---|
107 | ENDIF
|
---|
108 |
|
---|
109 | C ENERGY CUT OFF IN GREISEN FORMULA
|
---|
110 | C (EM PARTICLE BELOW THIS CUT CAN NOT PRODUCE A SHOWER)
|
---|
111 | IF ( ENERN .LT. GRCUT ) RETURN
|
---|
112 | C DON'T CALCULATE NKG FOR BACKWARD GOING PARTICLES
|
---|
113 | IF ( SECPAR(3) .LE. 0.D0 ) RETURN
|
---|
114 | C DON'T CALCULATE NKG IF PARTICLE BELOW THE LOWEST OBSERVATION LEVEL
|
---|
115 | IF ( SECPAR(5) .LT. OBSATI(1) ) RETURN
|
---|
116 |
|
---|
117 | Z1 = LOG(ENERN / ECRI)
|
---|
118 | SQRZ1I = 1.D0 / SQRT(Z1)
|
---|
119 |
|
---|
120 | C THIS CUT IS ONLY IMPORTANT FOR ELCUT > .0672
|
---|
121 | ECR1 = ECR2 + ELCUT(3)
|
---|
122 | IF ( ENERN .LT. ECR1 ) RETURN
|
---|
123 | ZC1 = LOG(ENERN / ECR1)
|
---|
124 | SQZC1I = 1.D0 / SQRT(ZC1)
|
---|
125 | C LOG(ENERN/ECR2) IS LOG(ENERN / ECRI) - LOG(0.4)
|
---|
126 | ZC2 = Z1 + 0.916290732D0
|
---|
127 | SQZC2I = 1.D0 / SQRT(ZC2)
|
---|
128 | THICKP = THICK(SECPAR(5))
|
---|
129 |
|
---|
130 | C LOOP OVER LEVELS
|
---|
131 | DO 14 IL = 1,IALT(1)
|
---|
132 | C DISREGARD LEVELS ABOVE THE PARTICLE
|
---|
133 | IF ( TLEVCM(IL) .GT. SECPAR(5) ) GOTO 14
|
---|
134 | C DISTANCE IN G/CM**2 .... (ALONG PHOTON-AXIS) IN RADIATION LENGTHS
|
---|
135 | XMOL = (TLEV(IL) - THICKP) / ( X0 * SECPAR(3) )
|
---|
136 | C CORRECT DEPTH FOR SUBSHOWERS TO BE SUBTRACTED BY 9/7
|
---|
137 | IF ( SIGNE .LT. 0.D0 ) XMOL = XMOL + 1.285714286D0
|
---|
138 | C XMOL IS DEPTH IN RADIATION LENGTHS
|
---|
139 | IF ( XMOL .GT. 60.D0 .OR. XMOL .LT. 1.D0 ) GOTO 14
|
---|
140 | C S IS AGE PARAMETER
|
---|
141 | S = 3.D0 * XMOL / (XMOL + 2.D0 * Z1)
|
---|
142 | IF ( S .LE. 0.2D0 ) GOTO 14
|
---|
143 | SC1 = 3.D0 * XMOL / (XMOL + 2.D0 * ZC1)
|
---|
144 | SC2 = 3.D0 * XMOL / (XMOL + 2.D0 * ZC2)
|
---|
145 | C ELECTRON NUMBER AT OBSERVATION LEVEL
|
---|
146 | CPH = .31D0 * EXP( XMOL * (1.D0 - 1.5D0 * LOG(S) ) ) * SQRZ1I
|
---|
147 | CPC = EXP( XMOL * ( 1.D0 - 1.5D0 * LOG(SC1) ) ) * SQZC1I
|
---|
148 | CCP = EXP( XMOL * ( 1.D0 - 1.5D0 * LOG(SC2) ) ) * SQZC2I
|
---|
149 | CPCP = SIGNE * CPH * CPC / CCP
|
---|
150 | C INTERMEDIATE FACTORS FOR LATERAL DISTRIBUTION AND AGE PARAMETER
|
---|
151 | AE = 4.D0 * EXP( 0.915D0 * (S - 1.D0) ) / S
|
---|
152 | DE = ( 1.D0 + S ) / ( 1.15D0 + 0.15D0 * S )
|
---|
153 | ASE = AE**DE
|
---|
154 | ZG3 = GAM( (S + 2.D0) * DE )
|
---|
155 | IF ( ZG3 .LE. 0.D0 ) GOTO 14
|
---|
156 | ZG1 = GAM(S * DE)
|
---|
157 | ZG2 = GAM( (S + 1.D0) * DE )
|
---|
158 | AUXIL = 4.D0 / (S * ASE)
|
---|
159 | XNE = CPCP * ( ZG2 + AUXIL * ZG3 ) / ( ASE * (ZG1 + AUXIL*ZG2) )
|
---|
160 | C SUM OF N_E AT FIXED LEVEL
|
---|
161 | ZNE(IL) = ZNE(IL) + XNE
|
---|
162 | SL(IL) = SL(IL) + CPCP
|
---|
163 |
|
---|
164 | C CALCULATE THE ELECTRON LATERAL DISTRIBUTION FOR THE 2 SELECTED
|
---|
165 | C OBSERVATION LEVELS
|
---|
166 | IF ( IL .EQ. IALT(1) ) THEN
|
---|
167 | IOL = 1
|
---|
168 | ELSEIF ( IL .EQ. IALT(2) ) THEN
|
---|
169 | IOL = 2
|
---|
170 | ELSE
|
---|
171 | GOTO 14
|
---|
172 | ENDIF
|
---|
173 |
|
---|
174 | C CALCULATION OF LATERAL ELECTRON DISTRIBUTION
|
---|
175 | IF ( SC1 .GE. 2.25D0 ) GOTO 14
|
---|
176 | G1 = GAM(4.5D0 - SC1)
|
---|
177 | G2 = GAM(SC1)
|
---|
178 | G3 = GAM(4.5D0 - 2.D0 * SC1)
|
---|
179 | C DISTANCE IN CM BETWEEN PHOTON INITIATION AND OBSERVATION (VERTICAL)
|
---|
180 | DISTL = SECPAR(5) - TLEVCM(IL)
|
---|
181 | C MODULATION BY AGE PARAMETER FOLLOWING LAGUTIN & UCHAIKIN
|
---|
182 | C (AGE PARAMETER LIES BETWEEN 0.2 AND 2.25)
|
---|
183 | SM = 0.78D0 - 0.21D0 * SC1
|
---|
184 | SMRM = 1.D0 / ( SM * RMOL(IOL) )
|
---|
185 |
|
---|
186 | CSGA = CPCP * SMRM**2 * G1 / ( PI2 * G2 * G3 )
|
---|
187 | SS2 = SC1 - 2.D0
|
---|
188 | SS45 = SC1 - 4.5D0
|
---|
189 | AS = SIN( SECPAR(4) )
|
---|
190 | BS = COS( SECPAR(4) )
|
---|
191 | TEX = DISTL * SQRT( 1.D0 - SECPAR(3)**2 ) / SECPAR(3)
|
---|
192 | C DISTANCE TO THE CENTER OF THE CASCADE (IN CM)
|
---|
193 | XS = SECPAR(7) + TEX * BS - XOFF(NOBSLV+1-IOL)
|
---|
194 | YS = SECPAR(8) + TEX * AS - YOFF(NOBSLV+1-IOL)
|
---|
195 |
|
---|
196 | C NKG-FORMULA
|
---|
197 | C LOOP OVER ALL LATERAL DISTANCES GETTING THE DENSITY IN MOLIERE UNITS
|
---|
198 | DO 171 M = -10,10
|
---|
199 | IF ( M .EQ. 0 ) GOTO 171
|
---|
200 | C X DIRECTION
|
---|
201 | YM = SMRM * MAX( SQRT((DISX(M)-XS)**2 + YS**2), 1.D0 )
|
---|
202 | CZX (M,IOL) = CZX (M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
|
---|
203 | C Y DIRECTION
|
---|
204 | YM = SMRM * MAX( SQRT(XS**2 + (DISY(M)-YS)**2), 1.D0 )
|
---|
205 | CZY (M,IOL) = CZY (M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
|
---|
206 | C XY DIRECTION
|
---|
207 | YM = SMRM *
|
---|
208 | * MAX( SQRT((DISXY(M,1)-XS)**2 + (DISXY(M,2)-YS)**2), 1.D0 )
|
---|
209 | CZXY(M,IOL) = CZXY(M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
|
---|
210 | C YX DIRECTION
|
---|
211 | YM = SMRM *
|
---|
212 | * MAX( SQRT((DISYX(M,1)-XS)**2 + (DISYX(M,2)-YS)**2), 1.D0 )
|
---|
213 | CZYX(M,IOL) = CZYX(M,IOL) + CSGA * YM**SS2 * (YM+1.D0)**SS45
|
---|
214 | 171 CONTINUE
|
---|
215 |
|
---|
216 | 14 CONTINUE
|
---|
217 |
|
---|
218 | RETURN
|
---|
219 | END
|
---|